diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg new file mode 100644 index 00000000..6f64b455 --- /dev/null +++ b/.husky/prepare-commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx devmoji -e --lint diff --git a/package-lock.json b/package-lock.json index c5c759d8..785c3b4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "devDependencies": { "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", + "devmoji": "^2.3.0", "eslint-config-wikimedia": "0.23.0", "grunt-banana-checker": "0.10.0", "husky": "^8.0.1", @@ -1793,6 +1794,20 @@ "node": ">=8" } }, + "node_modules/devmoji": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/devmoji/-/devmoji-2.3.0.tgz", + "integrity": "sha512-ErQdYUsE7tKxqDzQzRos6fKWaRIFUOJvMkQODq9iYDI3o5X6nxD78XEdGNYaW5AaJW4uxj+XQTkCuJkV86Qg6g==", + "dev": true, + "dependencies": { + "chalk": "^4.1.1", + "commander": "7.2.0", + "ts-interface-checker": "1.0.0" + }, + "bin": { + "devmoji": "bin/devmoji.js" + } + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -5596,6 +5611,12 @@ "node": ">=8" } }, + "node_modules/ts-interface-checker": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-1.0.0.tgz", + "integrity": "sha512-yUeWbFBDiwPodNqrqpvQpGWheL6PvNu2/pVAb9yy2vzdkkflCgwVA4U2akByPCXzYTum3/5/nB92yKuiLpSo/Q==", + "dev": true + }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -7356,6 +7377,17 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "devmoji": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/devmoji/-/devmoji-2.3.0.tgz", + "integrity": "sha512-ErQdYUsE7tKxqDzQzRos6fKWaRIFUOJvMkQODq9iYDI3o5X6nxD78XEdGNYaW5AaJW4uxj+XQTkCuJkV86Qg6g==", + "dev": true, + "requires": { + "chalk": "^4.1.1", + "commander": "7.2.0", + "ts-interface-checker": "1.0.0" + } + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -10220,6 +10252,12 @@ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, + "ts-interface-checker": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-1.0.0.tgz", + "integrity": "sha512-yUeWbFBDiwPodNqrqpvQpGWheL6PvNu2/pVAb9yy2vzdkkflCgwVA4U2akByPCXzYTum3/5/nB92yKuiLpSo/Q==", + "dev": true + }, "ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", diff --git a/package.json b/package.json index 5b3f4bb8..dda8afcf 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "devDependencies": { "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", + "devmoji": "^2.3.0", "eslint-config-wikimedia": "0.23.0", "grunt-banana-checker": "0.10.0", "husky": "^8.0.1",