chore(lint): add import rule checks (#3199)

This commit is contained in:
Erik Demaine
2021-10-30 03:33:05 -04:00
committed by GitHub
parent 167f38dede
commit a3c79047da
3 changed files with 259 additions and 7 deletions

View File

@@ -6,14 +6,23 @@
"extends": [
"eslint:recommended",
"plugin:flowtype/recommended",
"plugin:actions/recommended"
"plugin:actions/recommended",
"plugin:import/recommended"
],
"rules": {
"arrow-spacing": 2,
"brace-style": [2, "1tbs", { "allowSingleLine": true }],
// We'd possibly like to remove the 'properties': 'never' one day.
"camelcase": [2, { "properties": "never" }],
"comma-dangle": [2, "always-multiline"],
// Require dangling commas for all but function calls
// (a feature added in ECMAScript 2017).
"comma-dangle": [2, {
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "only-multiline",
}],
"comma-spacing": [2, { "before": false, "after": true }],
"constructor-super": 2,
"curly": 2,
@@ -71,7 +80,12 @@
// Might be nice to turn this on one day, but since we don't
// use jsdoc anywhere it seems silly to require it yet.
"valid-jsdoc": 0,
"require-jsdoc": 0
"require-jsdoc": 0,
// We frequently `import` and `import type` from the same module.
"import/no-duplicates": 0,
// We use `import mod from "mod"` a lot.
"import/no-named-as-default": 0,
"import/no-named-as-default-member": 0,
},
"env": {
"es6": true,
@@ -80,6 +94,12 @@
"jest": true
},
"settings": {
"import/external-module-folders": [".yarn", "node_modules"],
"import/resolver": {
"webpack": {
"config-index": 0
}
},
"react": {
"version": "16.8"
}

View File

@@ -45,8 +45,10 @@
"css-loader": "^6.0.0",
"cssnano": "^5.0.0-rc.1",
"eslint": "^8.0.0",
"eslint-import-resolver-webpack": "^0.13.2",
"eslint-plugin-actions": "^2.0.0",
"eslint-plugin-flowtype": "^8.0.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-react": "^7.20.3",
"flow-bin": "^0.135.0",
"fs-extra": "^10.0.0",

238
yarn.lock
View File

@@ -2423,6 +2423,13 @@ __metadata:
languageName: node
linkType: hard
"@types/json5@npm:^0.0.29":
version: 0.0.29
resolution: "@types/json5@npm:0.0.29"
checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac
languageName: node
linkType: hard
"@types/keyv@npm:*":
version: 3.1.1
resolution: "@types/keyv@npm:3.1.1"
@@ -3043,6 +3050,13 @@ __metadata:
languageName: node
linkType: hard
"array-find@npm:^1.0.0":
version: 1.0.0
resolution: "array-find@npm:1.0.0"
checksum: 6588ebfd15841296923f7c8c70f9f4cfd0e803c9f66cf53382431e5d5c763f1a866120181ba80aba7ebed73b27c5756fdb2202054e7ef475290239839185544b
languageName: node
linkType: hard
"array-flatten@npm:1.1.1":
version: 1.1.1
resolution: "array-flatten@npm:1.1.1"
@@ -3077,6 +3091,19 @@ __metadata:
languageName: node
linkType: hard
"array-includes@npm:^3.1.4":
version: 3.1.4
resolution: "array-includes@npm:3.1.4"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.3
es-abstract: ^1.19.1
get-intrinsic: ^1.1.1
is-string: ^1.0.7
checksum: 69967c38c52698f84b50a7aed5554aadc89c6ac6399b6d92ad061a5952f8423b4bba054c51d40963f791dfa294d7247cdd7988b6b1f2c5861477031c6386e1c0
languageName: node
linkType: hard
"array-union@npm:^2.1.0":
version: 2.1.0
resolution: "array-union@npm:2.1.0"
@@ -3084,6 +3111,17 @@ __metadata:
languageName: node
linkType: hard
"array.prototype.flat@npm:^1.2.5":
version: 1.2.5
resolution: "array.prototype.flat@npm:1.2.5"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.3
es-abstract: ^1.19.0
checksum: 9cc6414b111abfc7717e39546e4887b1e5ec74df8f1618d83425deaa95752bf05d475d1d241253b4d88d4a01f8e1bc84845ad5b7cc2047f8db2f614512acd40e
languageName: node
linkType: hard
"array.prototype.flatmap@npm:^1.2.4":
version: 1.2.4
resolution: "array.prototype.flatmap@npm:1.2.4"
@@ -4519,7 +4557,7 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:2.6.9":
"debug@npm:2.6.9, debug@npm:^2.6.9":
version: 2.6.9
resolution: "debug@npm:2.6.9"
dependencies:
@@ -4540,7 +4578,7 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:^3.1.1, debug@npm:^3.2.6":
"debug@npm:^3.1.1, debug@npm:^3.2.6, debug@npm:^3.2.7":
version: 3.2.7
resolution: "debug@npm:3.2.7"
dependencies:
@@ -5008,6 +5046,17 @@ __metadata:
languageName: node
linkType: hard
"enhanced-resolve@npm:^0.9.1":
version: 0.9.1
resolution: "enhanced-resolve@npm:0.9.1"
dependencies:
graceful-fs: ^4.1.2
memory-fs: ^0.2.0
tapable: ^0.1.8
checksum: 397106771257d12177a3f07fd86db33b6dd6881a087ef2d43054d82b5e1fb8c1ce9add36f1f0c57e226e5d40e5764c44127f4adeb76bcd7fe0bd0a194c24f98c
languageName: node
linkType: hard
"enhanced-resolve@npm:^5.8.3":
version: 5.8.3
resolution: "enhanced-resolve@npm:5.8.3"
@@ -5120,6 +5169,34 @@ __metadata:
languageName: node
linkType: hard
"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1":
version: 1.19.1
resolution: "es-abstract@npm:1.19.1"
dependencies:
call-bind: ^1.0.2
es-to-primitive: ^1.2.1
function-bind: ^1.1.1
get-intrinsic: ^1.1.1
get-symbol-description: ^1.0.0
has: ^1.0.3
has-symbols: ^1.0.2
internal-slot: ^1.0.3
is-callable: ^1.2.4
is-negative-zero: ^2.0.1
is-regex: ^1.1.4
is-shared-array-buffer: ^1.0.1
is-string: ^1.0.7
is-weakref: ^1.0.1
object-inspect: ^1.11.0
object-keys: ^1.1.1
object.assign: ^4.1.2
string.prototype.trimend: ^1.0.4
string.prototype.trimstart: ^1.0.4
unbox-primitive: ^1.0.1
checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949
languageName: node
linkType: hard
"es-module-lexer@npm:^0.9.0":
version: 0.9.0
resolution: "es-module-lexer@npm:0.9.0"
@@ -5192,6 +5269,49 @@ __metadata:
languageName: node
linkType: hard
"eslint-import-resolver-node@npm:^0.3.6":
version: 0.3.6
resolution: "eslint-import-resolver-node@npm:0.3.6"
dependencies:
debug: ^3.2.7
resolve: ^1.20.0
checksum: 6266733af1e112970e855a5bcc2d2058fb5ae16ad2a6d400705a86b29552b36131ffc5581b744c23d550de844206fb55e9193691619ee4dbf225c4bde526b1c8
languageName: node
linkType: hard
"eslint-import-resolver-webpack@npm:^0.13.2":
version: 0.13.2
resolution: "eslint-import-resolver-webpack@npm:0.13.2"
dependencies:
array-find: ^1.0.0
debug: ^3.2.7
enhanced-resolve: ^0.9.1
find-root: ^1.1.0
has: ^1.0.3
interpret: ^1.4.0
is-core-module: ^2.7.0
is-regex: ^1.1.4
lodash: ^4.17.21
resolve: ^1.20.0
semver: ^5.7.1
peerDependencies:
eslint-plugin-import: ">=1.4.0"
webpack: ">=1.11.0"
checksum: 6c40164747bf894a0e34cbc9626566193471062e8809cef7aa8be74e0346c962d03aa7b8f3579a3d348245269860c1f241eba5379ec04acc89daffa4fb6b5f17
languageName: node
linkType: hard
"eslint-module-utils@npm:^2.7.0":
version: 2.7.1
resolution: "eslint-module-utils@npm:2.7.1"
dependencies:
debug: ^3.2.7
find-up: ^2.1.0
pkg-dir: ^2.0.0
checksum: c30dfa125aafe65e5f6a30a31c26932106fcf09934a2f47d7f8a393ed9106da7b07416f2337b55c85f9db0175c873ee0827be5429a24ec381b49940f342b9ac3
languageName: node
linkType: hard
"eslint-plugin-actions@npm:^2.0.0":
version: 2.0.0
resolution: "eslint-plugin-actions@npm:2.0.0"
@@ -5217,6 +5337,29 @@ __metadata:
languageName: node
linkType: hard
"eslint-plugin-import@npm:^2.25.2":
version: 2.25.2
resolution: "eslint-plugin-import@npm:2.25.2"
dependencies:
array-includes: ^3.1.4
array.prototype.flat: ^1.2.5
debug: ^2.6.9
doctrine: ^2.1.0
eslint-import-resolver-node: ^0.3.6
eslint-module-utils: ^2.7.0
has: ^1.0.3
is-core-module: ^2.7.0
is-glob: ^4.0.3
minimatch: ^3.0.4
object.values: ^1.1.5
resolve: ^1.20.0
tsconfig-paths: ^3.11.0
peerDependencies:
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
checksum: 4ca36e37faf72fb1ed25361ea8a6abbcc9daa65f3a9ac1dc0a660029000456e8c8b98a87b8cc2316541b13c6e5915df41d2dc4a1d7fe0729d9b72b9a3bd5b909
languageName: node
linkType: hard
"eslint-plugin-react@npm:^7.20.3":
version: 7.26.1
resolution: "eslint-plugin-react@npm:7.26.1"
@@ -5701,7 +5844,14 @@ __metadata:
languageName: node
linkType: hard
"find-up@npm:^2.0.0":
"find-root@npm:^1.1.0":
version: 1.1.0
resolution: "find-root@npm:1.1.0"
checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf
languageName: node
linkType: hard
"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
version: 2.1.0
resolution: "find-up@npm:2.1.0"
dependencies:
@@ -6755,6 +6905,13 @@ __metadata:
languageName: node
linkType: hard
"interpret@npm:^1.4.0":
version: 1.4.0
resolution: "interpret@npm:1.4.0"
checksum: 2e5f51268b5941e4a17e4ef0575bc91ed0ab5f8515e3cf77486f7c14d13f3010df9c0959f37063dcc96e78d12dc6b0bb1b9e111cdfe69771f4656d2993d36155
languageName: node
linkType: hard
"interpret@npm:^2.2.0":
version: 2.2.0
resolution: "interpret@npm:2.2.0"
@@ -6871,6 +7028,15 @@ __metadata:
languageName: node
linkType: hard
"is-core-module@npm:^2.7.0":
version: 2.8.0
resolution: "is-core-module@npm:2.8.0"
dependencies:
has: ^1.0.3
checksum: f8b52714891e1a6c6577fcb8d5e057bab064a7a30954aab6beb5092e311473eb8da57afd334de4981dc32409ffca998412efc3a2edceb9e397cef6098d21dd91
languageName: node
linkType: hard
"is-date-object@npm:^1.0.1":
version: 1.0.2
resolution: "is-date-object@npm:1.0.2"
@@ -7059,6 +7225,13 @@ __metadata:
languageName: node
linkType: hard
"is-shared-array-buffer@npm:^1.0.1":
version: 1.0.1
resolution: "is-shared-array-buffer@npm:1.0.1"
checksum: 2ffb92533e64e2876e6cfe6906871d28400b6f1a53130fe652ec8007bc0e5044d05e7af8e31bdc992fbba520bd92938cfbeedd0f286be92f250c7c76191c4d90
languageName: node
linkType: hard
"is-stream@npm:^2.0.0":
version: 2.0.0
resolution: "is-stream@npm:2.0.0"
@@ -7100,6 +7273,15 @@ __metadata:
languageName: node
linkType: hard
"is-weakref@npm:^1.0.1":
version: 1.0.1
resolution: "is-weakref@npm:1.0.1"
dependencies:
call-bind: ^1.0.0
checksum: fdafb7b955671dd2f9658ff47c86e4025c0650fc68a3542a40e5a75898a763b1abd6b1e1f9f13207eed49541cdd76af67d73c44989ea358b201b70274cf8f6c1
languageName: node
linkType: hard
"is-what@npm:^3.7.1":
version: 3.12.0
resolution: "is-what@npm:3.12.0"
@@ -8038,8 +8220,10 @@ __metadata:
css-loader: ^6.0.0
cssnano: ^5.0.0-rc.1
eslint: ^8.0.0
eslint-import-resolver-webpack: ^0.13.2
eslint-plugin-actions: ^2.0.0
eslint-plugin-flowtype: ^8.0.0
eslint-plugin-import: ^2.25.2
eslint-plugin-react: ^7.20.3
flow-bin: ^0.135.0
fs-extra: ^10.0.0
@@ -8722,6 +8906,13 @@ __metadata:
languageName: node
linkType: hard
"memory-fs@npm:^0.2.0":
version: 0.2.0
resolution: "memory-fs@npm:0.2.0"
checksum: 7a8268eab60ff7214ab25d9248ac0b9c51124193e4999f18a4190e64a997d9a5302704c0e5ba9e2e365acb8ab59c9f49139c9eff9bf6e9c5eca783442437b1d6
languageName: node
linkType: hard
"meow@npm:^8.0.0":
version: 8.1.2
resolution: "meow@npm:8.1.2"
@@ -9652,6 +9843,17 @@ __metadata:
languageName: node
linkType: hard
"object.values@npm:^1.1.5":
version: 1.1.5
resolution: "object.values@npm:1.1.5"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.3
es-abstract: ^1.19.1
checksum: 0f17e99741ebfbd0fa55ce942f6184743d3070c61bd39221afc929c8422c4907618c8da694c6915bc04a83ab3224260c779ba37fc07bb668bdc5f33b66a902a4
languageName: node
linkType: hard
"obuf@npm:^1.0.0, obuf@npm:^1.1.2":
version: 1.1.2
resolution: "obuf@npm:1.1.2"
@@ -10157,6 +10359,15 @@ __metadata:
languageName: node
linkType: hard
"pkg-dir@npm:^2.0.0":
version: 2.0.0
resolution: "pkg-dir@npm:2.0.0"
dependencies:
find-up: ^2.1.0
checksum: 8c72b712305b51e1108f0ffda5ec1525a8307e54a5855db8fb1dcf77561a5ae98e2ba3b4814c9806a679f76b2f7e5dd98bde18d07e594ddd9fdd25e9cf242ea1
languageName: node
linkType: hard
"pkg-dir@npm:^3.0.0":
version: 3.0.0
resolution: "pkg-dir@npm:3.0.0"
@@ -11893,7 +12104,7 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0":
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0, semver@npm:^5.7.1":
version: 5.7.1
resolution: "semver@npm:5.7.1"
bin:
@@ -12773,6 +12984,13 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
"tapable@npm:^0.1.8":
version: 0.1.10
resolution: "tapable@npm:0.1.10"
checksum: fe02f5f4ce696b44c0c2d1176e41427a2fa54c2d59e80a2d16d9c8bab308c2603c3c78327a58b71e5a57abd427ddc54698736201039cc4f3d5d8b9c37b7940bb
languageName: node
linkType: hard
"tapable@npm:^2.1.1, tapable@npm:^2.2.0":
version: 2.2.0
resolution: "tapable@npm:2.2.0"
@@ -13052,6 +13270,18 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
"tsconfig-paths@npm:^3.11.0":
version: 3.11.0
resolution: "tsconfig-paths@npm:3.11.0"
dependencies:
"@types/json5": ^0.0.29
json5: ^1.0.1
minimist: ^1.2.0
strip-bom: ^3.0.0
checksum: e14aaa6883f316d611db41cbb0fc8779b59c66b31d1e045565ad4540c77ccd3d2bb66f7c261b74ff535d3cc6b4a1ce21dc84774bf2a2a603ed6b0fb96f7e0cc7
languageName: node
linkType: hard
"tslib@npm:^1.9.0":
version: 1.13.0
resolution: "tslib@npm:1.13.0"