diff --git a/.eslintrc.json b/.eslintrc.json index a2598f50..785fa5ca 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,8 @@ "env": { "browser": true, "commonjs": true, - "es6": true + "es6": true, + "node": true }, "rules": { "quotes": [2, "single", { "avoidEscape": false, "allowTemplateLiterals": true }], diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..3fa7f0e0 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npm run eslint diff --git a/package-lock.json b/package-lock.json index 67f070b8..14df81a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,7 @@ "gulp": "^4.0.2", "gulp-eslint": "^6.0.0", "gulp-jsonlint": "^1.3.2", + "husky": "^8.0.2", "in-publish": "^2.0.0", "mstranslator": "^3.0.0", "parse5": "^2.2.1", @@ -3734,6 +3735,21 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "node_modules/husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -10752,6 +10768,12 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", diff --git a/package.json b/package.json index 36edc5f5..88f029bf 100644 --- a/package.json +++ b/package.json @@ -48,12 +48,15 @@ "gulp": "^4.0.2", "gulp-eslint": "^6.0.0", "gulp-jsonlint": "^1.3.2", + "husky": "^8.0.2", "in-publish": "^2.0.0", "mstranslator": "^3.0.0", "parse5": "^2.2.1", "pretty-data": "^0.40.0" }, "scripts": { - "update-loc": "node ./tools/i18n/update" + "update-loc": "node ./tools/i18n/update", + "eslint": "npx eslint .", + "prepare": "husky install" } } diff --git a/tools/i18n/update.js b/tools/i18n/update.js index 6ac929b8..3580fddb 100644 --- a/tools/i18n/update.js +++ b/tools/i18n/update.js @@ -365,6 +365,7 @@ function findLowestNode(nodes) { return lowestNode; } +/*eslint-disable no-unused-vars*/ function getNodeDepth(node) { var depth = 0; var parentNode = node.parent; diff --git a/tools/i18n/xliff-json-conv.js b/tools/i18n/xliff-json-conv.js index 5017eee0..d5e80e39 100644 --- a/tools/i18n/xliff-json-conv.js +++ b/tools/i18n/xliff-json-conv.js @@ -81,11 +81,12 @@ function parseJson(xlfJsons) { var ids = Object.getOwnPropertyNames(items); // Create an array of strings to be translated, for machine translation + // eslint-disable-next-line no-unused-vars var fromStrings = ids.map(function (id) { return items[id].text; }); - ids.forEach(function (id, index) { + ids.forEach(function (id) { var item = items[id]; var transUnitNode = xliffDoc.createElement('trans-unit');