From e1e4348ae923b1f99421a84589231df6a165c3bf Mon Sep 17 00:00:00 2001 From: Singwai Chan Date: Thu, 5 May 2022 08:27:45 -0400 Subject: [PATCH 1/2] [feat] added ts parser for eslint and enabled desired rules --- .eslintrc | 10 ++++--- .yarnrc | 1 + package.json | 1 + yarn.lock | 73 +++++++++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 .yarnrc diff --git a/.eslintrc b/.eslintrc index b7f99085e..d842369cf 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,9 +9,13 @@ }, "rules": { "strict": 0, - "quotes": [0, "single"], - "eol-last": [0], + "quotes": ["error", "single"], + "eol-last": ["error", "always"], "no-mixed-requires": [0], "no-underscore-dangle": [0] - } + }, + "overrides": [{ + "files": ["*.ts"], + "parser": "@typescript-eslint/parser" + }] } diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 000000000..142dad817 --- /dev/null +++ b/.yarnrc @@ -0,0 +1 @@ +registry "https://registry.npmjs.org" diff --git a/package.json b/package.json index 4ecf2c981..c6645cddc 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@babel/cli": "^7.15.7", "@babel/preset-typescript": "^7.16.7", "@types/backbone": "^1.4.15", + "@typescript-eslint/parser": "^5.22.0", "@vuepress/plugin-google-analytics": "^1.8.2", "documentation": "^13.2.5", "eslint": "^8.12.0", diff --git a/yarn.lock b/yarn.lock index c4387a6df..3ab5d9cc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1386,6 +1386,50 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/parser@^5.22.0": + version "5.22.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.22.0.tgz#7bedf8784ef0d5d60567c5ba4ce162460e70c178" + integrity sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ== + dependencies: + "@typescript-eslint/scope-manager" "5.22.0" + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/typescript-estree" "5.22.0" + debug "^4.3.2" + +"@typescript-eslint/scope-manager@5.22.0": + version "5.22.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz#590865f244ebe6e46dc3e9cab7976fc2afa8af24" + integrity sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA== + dependencies: + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/visitor-keys" "5.22.0" + +"@typescript-eslint/types@5.22.0": + version "5.22.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.22.0.tgz#50a4266e457a5d4c4b87ac31903b28b06b2c3ed0" + integrity sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw== + +"@typescript-eslint/typescript-estree@5.22.0": + version "5.22.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz#e2116fd644c3e2fda7f4395158cddd38c0c6df97" + integrity sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw== + dependencies: + "@typescript-eslint/types" "5.22.0" + "@typescript-eslint/visitor-keys" "5.22.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@5.22.0": + version "5.22.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz#f49c0ce406944ffa331a1cfabeed451ea4d0909c" + integrity sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg== + dependencies: + "@typescript-eslint/types" "5.22.0" + eslint-visitor-keys "^3.0.0" + "@vue/babel-helper-vue-jsx-merge-props@^1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz" @@ -4501,9 +4545,10 @@ eslint-visitor-keys@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" -eslint-visitor-keys@^3.3.0: +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.12.0: version "8.12.0" @@ -5284,9 +5329,10 @@ globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" -globby@^11.0.1: +globby@^11.0.1, globby@^11.0.4: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -9955,6 +10001,13 @@ semver@^7.1.1, semver@^7.3.4: dependencies: lru-cache "^6.0.0" +semver@^7.3.5: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" @@ -10971,14 +11024,22 @@ ts-loader@^9.2.6: micromatch "^4.0.0" semver "^7.3.4" -tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.1.0: version "2.3.1" resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" From a57d1d8682d3f51246002a445990cfeb9cdb0019 Mon Sep 17 00:00:00 2001 From: Singwai Chan Date: Thu, 5 May 2022 08:58:29 -0400 Subject: [PATCH 2/2] enable eslint for the entire project --- .eslintrc | 9 ++++++--- package.json | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.eslintrc b/.eslintrc index d842369cf..5dd1c7e6e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,13 +9,16 @@ }, "rules": { "strict": 0, - "quotes": ["error", "single"], - "eol-last": ["error", "always"], + "quotes": ["warn", "single"], + "eol-last": ["warn", "always"], "no-mixed-requires": [0], "no-underscore-dangle": [0] }, "overrides": [{ "files": ["*.ts"], "parser": "@typescript-eslint/parser" - }] + }], + "ignorePatterns": [ + "dist/*" + ] } diff --git a/package.json b/package.json index c6645cddc..df28c83b1 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "docs:build-vp": "vuepress build docs", "docs:build": "npm run docs:api && npm run docs:build-vp", "docs:deploy": "docs/deploy.sh", - "lint": "eslint src", + "lint": "eslint . --ext .ts,.js", "check": "npm run lint && npm run test", "build": "npm run check && run-s build:*", "build:js": "grapesjs-cli build --targets=\"> 1%, ie 11, safari 8, not dead\" --statsOutput=\"stats.json\" --localePath=\"src/i18n/locale\"",