diff --git a/solarkraft/.husky/pre-commit b/solarkraft/.husky/pre-commit new file mode 100644 index 00000000..5975f5db --- /dev/null +++ b/solarkraft/.husky/pre-commit @@ -0,0 +1,5 @@ +cd solarkraft +set -e +npm run lint +npm run license +npm run format diff --git a/solarkraft/eslint.config.js b/solarkraft/eslint.config.js index 7d3e80e0..8e7b24ff 100644 --- a/solarkraft/eslint.config.js +++ b/solarkraft/eslint.config.js @@ -1,3 +1,7 @@ +/** + * @license + * [Apache-2.0](https://github.com/freespek/solarkraft/blob/main/LICENSE) + */ // @ts-check import eslint from '@eslint/js'; diff --git a/solarkraft/package-lock.json b/solarkraft/package-lock.json index 5c480339..973869de 100644 --- a/solarkraft/package-lock.json +++ b/solarkraft/package-lock.json @@ -26,6 +26,7 @@ "copyfiles": "^2.4.1", "eslint": "^8.57.0", "genversion": "^3.2.0", + "husky": "^9.0.11", "mocha": "^10.3.0", "prettier": "^3.2.5", "ts-node": "^10.9.2", @@ -1585,6 +1586,21 @@ "he": "bin/he" } }, + "node_modules/husky": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", + "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "dev": true, + "bin": { + "husky": "bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -4150,6 +4166,12 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "husky": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", + "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "dev": true + }, "ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", diff --git a/solarkraft/package.json b/solarkraft/package.json index 4426e0a3..2f3c526f 100644 --- a/solarkraft/package.json +++ b/solarkraft/package.json @@ -32,11 +32,12 @@ "scripts": { "compile": "genversion -e src/version.ts && tsc", "e2e": "./test/e2e/run-tests.sh", + "format": "prettier --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' --write", "license": "source-licenser --config-file licenser-config.yaml .", - "snapshot": "git archive --format=tar.gz -o solarkraft-`git rev-parse --short HEAD`.tar.gz --prefix=solarkraft/ HEAD", - "test": "mocha --loader=ts-node/esm test/**/*.test.ts", "lint": "eslint src test", - "format": "prettier --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' --write" + "prepare": "cd .. && husky solarkraft/.husky", + "snapshot": "git archive --format=tar.gz -o solarkraft-`git rev-parse --short HEAD`.tar.gz --prefix=solarkraft/ HEAD", + "test": "mocha --loader=ts-node/esm test/**/*.test.ts" }, "dependencies": { "@sweet-monads/either": "^3.3.1", @@ -53,6 +54,7 @@ "copyfiles": "^2.4.1", "eslint": "^8.57.0", "genversion": "^3.2.0", + "husky": "^9.0.11", "mocha": "^10.3.0", "prettier": "^3.2.5", "ts-node": "^10.9.2", @@ -62,4 +64,4 @@ "engines": { "node": ">=18" } -} +} \ No newline at end of file