/lint-prepush

Lint committed files on pre-push 🔬

Primary LanguageJavaScriptMIT LicenseMIT

lint-prepush

npm version npm downloads GitHub license Build Status

Run linters on committed files of a GIT Branch🔬

Getting Started 🔮

This package will run linters on your project for the committed files in your branch.

Prerequisites🔭

It require Node.js v6 or newer. It also requires a package to manage git hooks. I strongly suggest Husky which I use for most of my projects.

// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm test",
      "pre-push": "npm test",
      "...": "..."
    }
  }
}

Installing

  • This project requires a package to manage git hooks depending.
  • I strongly suggest Husky which pauses the git push by overriding pre-commit hook (it almost overrides all hooks, here we need only pre-push hook) and allow us to run our custom scripts and resumes pushing.

npm

npm install --save-dev husky lint-prepush

or using yarn:

yarn add --dev husky lint-prepush

Usage

Configure the following scripts in package.json to lint your committed files 🔧. You can also follow any of the cosmiconfig methods to configure lint-prepush.

{
  "scripts": {
+   "prepush": "lint-prepush"
  },
+ "lint-prepush": {
+   "base": "master",
+    "tasks": {
+      "*.js": [
+        "eslint"
+      ]
+    }
+  }
}

The above scrips will lint the js files while pushing to git. It will terminate the process if there are any errors, otherwise, the changes will be pushed.

With Errors

With Erros

Without Errors

WithoutErrors

Built With

Contributing

  • If you have any ideas, just open an issue and tell me what you think.
  • Pull requests are warmly welcome, If you would like to contribute to this Project.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

Acknowledgments

License

MIT @ Theena Dayalan