Comparing version 5.2.0 to 6.0.0
#!/usr/bin/env node | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const fs_1 = __importDefault(require("fs")); | ||
const path_1 = __importDefault(require("path")); | ||
const init_1 = require("./commands/init"); | ||
const install_1 = require("./commands/install"); | ||
const set_add_1 = require("./commands/set_add"); | ||
const uninstall_1 = require("./commands/uninstall"); | ||
const fs = require("fs"); | ||
const path = require("path"); | ||
const _1 = require("./"); | ||
function readPkg() { | ||
return JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, '../package.json'), 'utf-8')); | ||
return JSON.parse(fs.readFileSync(path.join(__dirname, '../package.json'), 'utf-8')); | ||
} | ||
@@ -23,68 +17,24 @@ const pkg = readPkg(); | ||
console.log(`Usage | ||
husky init | ||
husky install [dir] (default: .husky) | ||
husky uninstall | ||
husky set <file> [cmd] | ||
husky add <file> [cmd] | ||
Examples | ||
husky init | ||
husky install | ||
husky install .config/husky | ||
husky set .husky/pre-commit | ||
husky set .husky/pre-commit "npm test" | ||
husky set .config/husky/pre-commit "npm test" | ||
husky add .husky/pre-commit | ||
husky add .husky/pre-commit "npm test" | ||
husky add .config/husky/pre-commit "npm test" | ||
`); | ||
husky set|add <file> [cmd]`); | ||
} | ||
switch (cmd) { | ||
case 'init': { | ||
const isYarn2 = String(process.env.npm_config_user_agent).startsWith('yarn/2'); | ||
init_1.init(isYarn2); | ||
break; | ||
} | ||
case 'install': { | ||
if (args.length > 2) { | ||
help(); | ||
process.exit(2); | ||
} | ||
install_1.install(args[0]); | ||
break; | ||
} | ||
case 'uninstall': { | ||
uninstall_1.uninstall(); | ||
break; | ||
} | ||
case 'set': { | ||
if (args.length === 0 || args.length > 2) { | ||
help(); | ||
process.exit(2); | ||
} | ||
set_add_1.set(args[0], args[1]); | ||
break; | ||
} | ||
case 'add': { | ||
if (args.length === 0 || args.length > 2) { | ||
help(); | ||
process.exit(2); | ||
} | ||
set_add_1.add(args[0], args[1]); | ||
break; | ||
} | ||
case '--version': { | ||
version(); | ||
break; | ||
} | ||
case '-v': { | ||
version(); | ||
break; | ||
} | ||
default: | ||
help(); | ||
function misuse() { | ||
help(); | ||
process.exit(2); | ||
} | ||
const cmds = { | ||
install(dir) { | ||
args.length > 1 ? misuse() : _1.install(dir); | ||
}, | ||
uninstall: _1.uninstall, | ||
set(...args) { | ||
args.length === 0 || args.length > 2 ? misuse() : _1.set(args[0], args[1]); | ||
}, | ||
add(...args) { | ||
args.length === 0 || args.length > 2 ? misuse() : _1.add(args[0], args[1]); | ||
}, | ||
'--version': version, | ||
'-v': version, | ||
}; | ||
cmds[cmd] ? cmds[cmd](...args) : help(); |
{ | ||
"name": "husky", | ||
"version": "5.2.0", | ||
"description": "Git hooks made easy", | ||
"bin": { | ||
"husky": "lib/bin.js" | ||
}, | ||
"version": "6.0.0", | ||
"description": "Modern native Git hooks made easy", | ||
"bin": "lib/bin.js", | ||
"main": "lib/index.js", | ||
"files": [ | ||
"/lib", | ||
"/scripts", | ||
"LICENSE", | ||
"LICENSE-MIT", | ||
"LICENSE-PARITY", | ||
"LICENSE-PATRON" | ||
"lib" | ||
], | ||
"devDependencies": { | ||
"@commitlint/cli": "^12.0.1", | ||
"@commitlint/config-conventional": "^12.0.1", | ||
"@commitlint/prompt-cli": "^12.0.1", | ||
"@tsconfig/node10": "^1.0.7", | ||
"@types/node": "^14.14.25", | ||
"@typicode/eslint-config": "^0.1.2", | ||
"del-cli": "^3.0.1", | ||
"docsify-cli": "^4.4.2", | ||
"type-fest": "^0.21.2", | ||
"typescript": "^4.1.3" | ||
}, | ||
"scripts": { | ||
"prebuild": "del-cli lib", | ||
"build": "tsc", | ||
"serve": "docsify serve docs", | ||
"lint": "eslint . --ext .js,.ts --ignore-path .gitignore", | ||
"prepare": "npm run build && node lib/bin install", | ||
"preuninstall": "node lib/bin uninstall", | ||
"preversion": "npm run build", | ||
"postversion": "git push && git push --tags && npm publish", | ||
"pretest": "npm run build --silent && npm pack --silent", | ||
"test": "sh ./test/init.sh && sh ./test/init-yarn-2.sh && sh ./test/default.sh && sh ./test/sub-dir.sh && sh ./test/config-dir.sh && sh ./test/not-git-dir.sh && sh ./test/set-add.sh", | ||
"posttest": "rm husky-*.tgz", | ||
"commit": "commit" | ||
}, | ||
"engines": { | ||
"node": ">= 10" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/typicode/husky.git" | ||
}, | ||
"keywords": [ | ||
"git", | ||
"hook", | ||
"hooks", | ||
"test", | ||
"lint", | ||
"applypatch-msg", | ||
"pre-applypatch", | ||
"post-applypatch", | ||
"pre-commit", | ||
"pre-merge-commit", | ||
"prepare-commit-msg", | ||
"commit-msg", | ||
"post-commit", | ||
"pre-rebase", | ||
"post-checkout", | ||
"post-merge", | ||
"pre-push", | ||
"post-update", | ||
"push-to-checkout", | ||
"pre-auto-gc", | ||
"post-rewrite", | ||
"sendemail-validate" | ||
"pre-commit" | ||
], | ||
"author": "Typicode <typicode@gmail.com>", | ||
"license": "Parity-7.0.0 AND MIT WITH Patron-1.0.0", | ||
"bugs": { | ||
"url": "https://github.com/typicode/husky/issues" | ||
}, | ||
"homepage": "https://github.com/typicode/husky#readme", | ||
"funding": [ | ||
{ | ||
"type": "github", | ||
"url": "https://github.com/sponsors/typicode" | ||
}, | ||
{ | ||
"type": "opencollective", | ||
"url": "https://opencollective.com/husky" | ||
} | ||
] | ||
"license": "MIT", | ||
"homepage": "https://typicode.github.io/husky", | ||
"repository": "github:typicode/husky", | ||
"funding": "https://github.com/sponsors/typicode", | ||
"gitHead": "cb4e3b913e2d8963af3179650ed550d3a0e210f5" | ||
} |
# husky | ||
[![Financial Contributors on Open Collective](https://opencollective.com/husky/all/badge.svg?label=financial+contributors)](https://opencollective.com/husky) [![](https://img.shields.io/npm/dm/husky.svg?style=flat)](https://www.npmjs.org/package/husky) [![Node.js CI](https://github.com/typicode/husky/workflows/Node.js%20CI/badge.svg)](https://github.com/typicode/husky/actions) | ||
[![Open Collective](https://opencollective.com/husky/all/badge.svg?label=financial+contributors)](https://opencollective.com/husky) | ||
> Git hooks made easy | ||
> Modern native Git hooks made easy | ||
Husky improves your commits and more 🐶 *woof!* | ||
- [**Documentation v5 (recommended for Open Source and Sponsors)**](https://typicode.github.io/husky) | ||
- [Documentation v4](https://github.com/typicode/husky/tree/master) | ||
# Usage | ||
__👋 [Read husky 5 announcement and see what's new](https://dev.to/typicode/what-s-new-in-husky-5-32g5)__ | ||
Edit `package.json > prepare` script and run it once: | ||
__Note: husky 5 is a major version with breaking changes. Upgrading from v4 to v5 requires additional steps, please see the docs.__ | ||
```sh | ||
npm set-script prepare "husky install" && npm run prepare | ||
``` | ||
--- | ||
Add a hook: | ||
You're viewing documentation for husky v5, which is free to use in Open Source projects ❤️ and in early access for Sponsors 🎁. | ||
```sh | ||
npx husky add .husky/pre-commit "npm test" | ||
``` | ||
To use this new version at work, you can become a sponsor on [GitHub Sponsors](https://github.com/sponsors/typicode) or [Open Collective](https://opencollective.com/husky) (monthly or yearly donations are supported). | ||
Make a commit: | ||
If you can't sponsor Husky, that's okay, [husky v4](https://github.com/typicode/husky/tree/master) is free to use in any project. During the early access, v4 will continue to receive maintainance updates. | ||
```sh | ||
$ git commit -m "Keep calm and commit" | ||
``` | ||
After the early access, husky v5 will be MIT again. | ||
# Documentation | ||
--- | ||
https://typicode.github.io/husky | ||
# Sponsors | ||
__Important__ upgrading from v4 to v6 requires additional steps, please see the docs. | ||
## Companies | ||
## License | ||
<!-- for (let i = 0; i < 40; i++) console.log(`[![Husky Sponsor](https://opencollective.com/husky/backer/${i}/avatar)](https://opencollective.com/husky/backer/${i}/website)`) --> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/0/website"><img src="https://opencollective.com/husky/tiers/sponsor/0/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/1/website"><img src="https://opencollective.com/husky/tiers/sponsor/1/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/2/website"><img src="https://opencollective.com/husky/tiers/sponsor/2/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/3/website"><img src="https://opencollective.com/husky/tiers/sponsor/3/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/4/website"><img src="https://opencollective.com/husky/tiers/sponsor/4/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/5/website"><img src="https://opencollective.com/husky/tiers/sponsor/5/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/6/website"><img src="https://opencollective.com/husky/tiers/sponsor/6/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/7/website"><img src="https://opencollective.com/husky/tiers/sponsor/7/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/8/website"><img src="https://opencollective.com/husky/tiers/sponsor/8/avatar.svg" height="60px"></a> | ||
<a href="https://opencollective.com/husky/tiers/sponsor/9/website"><img src="https://opencollective.com/husky/tiers/sponsor/9/avatar.svg" height="60px"></a> | ||
## Individuals | ||
Find Husky helpful? Become a backer and show your appreciation with a monthly donation on [Open Collective](https://opencollective.com/husky). You can also tip with a one-time donation. | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/0/avatar)](https://opencollective.com/husky/backer/0/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/1/avatar)](https://opencollective.com/husky/backer/1/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/2/avatar)](https://opencollective.com/husky/backer/2/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/3/avatar)](https://opencollective.com/husky/backer/3/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/4/avatar)](https://opencollective.com/husky/backer/4/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/5/avatar)](https://opencollective.com/husky/backer/5/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/6/avatar)](https://opencollective.com/husky/backer/6/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/7/avatar)](https://opencollective.com/husky/backer/7/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/8/avatar)](https://opencollective.com/husky/backer/8/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/9/avatar)](https://opencollective.com/husky/backer/9/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/10/avatar)](https://opencollective.com/husky/backer/10/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/11/avatar)](https://opencollective.com/husky/backer/11/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/12/avatar)](https://opencollective.com/husky/backer/12/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/13/avatar)](https://opencollective.com/husky/backer/13/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/14/avatar)](https://opencollective.com/husky/backer/14/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/15/avatar)](https://opencollective.com/husky/backer/15/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/16/avatar)](https://opencollective.com/husky/backer/16/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/17/avatar)](https://opencollective.com/husky/backer/17/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/18/avatar)](https://opencollective.com/husky/backer/18/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/19/avatar)](https://opencollective.com/husky/backer/19/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/20/avatar)](https://opencollective.com/husky/backer/20/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/21/avatar)](https://opencollective.com/husky/backer/21/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/22/avatar)](https://opencollective.com/husky/backer/22/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/23/avatar)](https://opencollective.com/husky/backer/23/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/24/avatar)](https://opencollective.com/husky/backer/24/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/25/avatar)](https://opencollective.com/husky/backer/25/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/26/avatar)](https://opencollective.com/husky/backer/26/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/27/avatar)](https://opencollective.com/husky/backer/27/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/28/avatar)](https://opencollective.com/husky/backer/28/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/29/avatar)](https://opencollective.com/husky/backer/29/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/30/avatar)](https://opencollective.com/husky/backer/30/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/31/avatar)](https://opencollective.com/husky/backer/31/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/32/avatar)](https://opencollective.com/husky/backer/32/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/33/avatar)](https://opencollective.com/husky/backer/33/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/34/avatar)](https://opencollective.com/husky/backer/34/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/35/avatar)](https://opencollective.com/husky/backer/35/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/36/avatar)](https://opencollective.com/husky/backer/36/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/37/avatar)](https://opencollective.com/husky/backer/37/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/38/avatar)](https://opencollective.com/husky/backer/38/website) | ||
[![Husky Sponsor](https://opencollective.com/husky/backer/39/avatar)](https://opencollective.com/husky/backer/39/website) | ||
GitHub sponsors can be viewed on my [profile](https://github.com/typicode). All past and current Open Collective sponsors can be viewed on [Husky's Open Collective](https://opencollective.com/husky). | ||
MIT |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Copyleft License
License(Experimental) Copyleft license information was found.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
License exception
License(Experimental) Contains an SPDX license exception.
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
Non-permissive License
License(Experimental) A license not known to be considered permissive was found.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 2 instances in 1 package
0
0
100
3
6098
8
110
1
38