4
4
*/
5
5
"use strict"
6
6
7
- const { merge } = require ( "../utils" )
8
- const modulesConfig = require ( "./+modules" )
9
-
10
7
module . exports = {
11
8
parserOptions : {
12
- ecmaVersion : 2019 ,
9
+ ecmaFeatures : { globalReturn : true } ,
10
+ ecmaVersion : 2020 ,
11
+ sourceType : "script" ,
13
12
} ,
14
13
globals : {
15
14
// ECMAScript (experimental)
@@ -38,12 +37,31 @@ module.exports = {
38
37
process : "readonly" ,
39
38
root : "readonly" ,
40
39
setImmediate : "readonly" ,
40
+
41
+ // CommonJS
42
+ __dirname : "readonly" ,
43
+ __filename : "readonly" ,
44
+ exports : "writable" ,
45
+ module : "readonly" ,
46
+ require : "readonly" ,
41
47
} ,
42
48
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
+ ] ,
43
55
"@mysticatea/node/no-callback-literal" : "off" ,
44
56
"@mysticatea/node/no-deprecated-api" : "error" ,
45
57
"@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" ,
46
62
"@mysticatea/node/no-unpublished-bin" : "error" ,
63
+ "@mysticatea/node/no-unpublished-import" : "error" ,
64
+ "@mysticatea/node/no-unpublished-require" : "error" ,
47
65
"@mysticatea/node/no-unsupported-features/es-builtins" : "error" ,
48
66
"@mysticatea/node/no-unsupported-features/es-syntax" : "error" ,
49
67
"@mysticatea/node/no-unsupported-features/node-builtins" : "error" ,
@@ -59,44 +77,24 @@ module.exports = {
59
77
"@mysticatea/node/process-exit-as-throw" : "error" ,
60
78
"@mysticatea/node/shebang" : "error" ,
61
79
} ,
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
+ ] ,
81
92
} ,
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 : [
95
95
{
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" ) ] ,
100
98
} ,
101
99
] ,
102
100
}
0 commit comments