Skip to content

Commit 38a90d5

Browse files
committed
💥 update ESLint to 6.4.0 and refactor configs
1 parent 277ceff commit 38a90d5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1365
-1290
lines changed

.nycrc.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
include:
2+
- lib
3+
exclude:
4+
- lib/processors/vue.js
5+
reporter:
6+
- text-summary
7+
- lcov

lib/configs/+eslint-plugin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
const { rulesDocumentUrl } = require("../utils")
88

99
module.exports = {
10-
extends: ["plugin:@mysticatea/+node"],
10+
extends: [require.resolve("./+node.js")],
1111
overrides: [
1212
{
1313
files: ["**/rules/**", "**/internal-rules/**"],

lib/configs/+modules.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,16 @@
66

77
module.exports = {
88
parserOptions: {
9+
ecmaFeatures: { globalReturn: false },
910
sourceType: "module",
1011
},
12+
globals: {
13+
__dirname: "off",
14+
__filename: "off",
15+
exports: "off",
16+
module: "off",
17+
require: "off",
18+
},
1119
rules: {
1220
"@mysticatea/node/no-extraneous-import": "error",
1321
"@mysticatea/node/file-extension-in-import": [
@@ -17,5 +25,17 @@ module.exports = {
1725
],
1826
"@mysticatea/node/no-missing-import": "error",
1927
"@mysticatea/node/no-unpublished-import": "error",
28+
"@mysticatea/node/no-unsupported-features/es-syntax": [
29+
"error",
30+
{ ignores: ["modules", "dynamicImport"] },
31+
],
2032
},
33+
overrides: [
34+
{
35+
files: ["*.ts", "*.tsx", "*.vue"],
36+
rules: {
37+
"@mysticatea/node/no-unsupported-features/es-syntax": "off",
38+
},
39+
},
40+
],
2141
}

lib/configs/+node.js

Lines changed: 38 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
*/
55
"use strict"
66

7-
const { merge } = require("../utils")
8-
const modulesConfig = require("./+modules")
9-
107
module.exports = {
118
parserOptions: {
12-
ecmaVersion: 2019,
9+
ecmaFeatures: { globalReturn: true },
10+
ecmaVersion: 2020,
11+
sourceType: "script",
1312
},
1413
globals: {
1514
// ECMAScript (experimental)
@@ -38,12 +37,31 @@ module.exports = {
3837
process: "readonly",
3938
root: "readonly",
4039
setImmediate: "readonly",
40+
41+
// CommonJS
42+
__dirname: "readonly",
43+
__filename: "readonly",
44+
exports: "writable",
45+
module: "readonly",
46+
require: "readonly",
4147
},
4248
rules: {
49+
"@mysticatea/node/exports-style": ["error", "module.exports"],
50+
"@mysticatea/node/file-extension-in-import": [
51+
"error",
52+
"always",
53+
{ ".js": "never", ".ts": "never", ".tsx": "never" },
54+
],
4355
"@mysticatea/node/no-callback-literal": "off",
4456
"@mysticatea/node/no-deprecated-api": "error",
4557
"@mysticatea/node/no-exports-assign": "error",
58+
"@mysticatea/node/no-extraneous-import": "error",
59+
"@mysticatea/node/no-extraneous-require": "error",
60+
"@mysticatea/node/no-missing-import": "error",
61+
"@mysticatea/node/no-missing-require": "error",
4662
"@mysticatea/node/no-unpublished-bin": "error",
63+
"@mysticatea/node/no-unpublished-import": "error",
64+
"@mysticatea/node/no-unpublished-require": "error",
4765
"@mysticatea/node/no-unsupported-features/es-builtins": "error",
4866
"@mysticatea/node/no-unsupported-features/es-syntax": "error",
4967
"@mysticatea/node/no-unsupported-features/node-builtins": "error",
@@ -59,44 +77,24 @@ module.exports = {
5977
"@mysticatea/node/process-exit-as-throw": "error",
6078
"@mysticatea/node/shebang": "error",
6179
},
62-
overrides: [
63-
{
64-
files: ["*.js"],
65-
globals: {
66-
__dirname: false,
67-
__filename: false,
68-
exports: false,
69-
module: false,
70-
require: false,
71-
},
72-
parserOptions: {
73-
ecmaFeatures: { globalReturn: true },
74-
},
75-
rules: {
76-
"@mysticatea/node/exports-style": ["error", "module.exports"],
77-
"@mysticatea/node/no-extraneous-require": "error",
78-
"@mysticatea/node/no-missing-require": "error",
79-
"@mysticatea/node/no-unpublished-require": "error",
80-
},
80+
settings: {
81+
node: {
82+
tryExtensions: [
83+
".vue",
84+
".tsx",
85+
".ts",
86+
".mjs",
87+
".cjs",
88+
".js",
89+
".json",
90+
".node",
91+
],
8192
},
82-
merge({ files: ["*.mjs"] }, modulesConfig, {
83-
rules: {
84-
"@mysticatea/node/no-unsupported-features/es-syntax": [
85-
"error",
86-
{ ignores: ["modules"] },
87-
],
88-
},
89-
settings: {
90-
node: {
91-
tryExtensions: [".mjs", ".js", ".json", ".node"],
92-
},
93-
},
94-
}),
93+
},
94+
overrides: [
9595
{
96-
files: ["*.ts", "*.vue"],
97-
rules: {
98-
"@mysticatea/node/no-unsupported-features/es-syntax": "off",
99-
},
96+
files: ["*.mjs", "*.ts", "*.tsx", "*.vue"],
97+
extends: [require.resolve("./+modules.js")],
10098
},
10199
],
102100
}

0 commit comments

Comments
 (0)