@yamato-daiwa/style_guides 0.3.0-alpha.5 → 0.3.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ECMAScript.js CHANGED
@@ -38,9 +38,7 @@ module.exports = [
38
38
 
39
39
  plugins: {
40
40
  "@stylistic": stylisticPlugin,
41
- n: nodePlugin,
42
- vue: vuePlugin,
43
- react: reactPlugin
41
+ n: nodePlugin
44
42
  },
45
43
 
46
44
  rules: {
@@ -87,6 +85,10 @@ module.exports = [
87
85
  sourceType: "module"
88
86
  }
89
87
  },
88
+ plugins: {
89
+ vue: vuePlugin
90
+ },
91
+ processor: "vue/vue",
90
92
  rules: vueRules
91
93
  },
92
94
 
@@ -97,6 +99,9 @@ module.exports = [
97
99
  ecmaFeatures: { jsx: true }
98
100
  }
99
101
  },
102
+ plugins: {
103
+ react: reactPlugin
104
+ },
100
105
  rules: reactRules
101
106
  },
102
107
 
@@ -0,0 +1,8 @@
1
+ module.exports = {
2
+
3
+ "max-nested-callbacks": "off",
4
+
5
+ "no-magic-numbers": "off",
6
+ "@typescript-eslint/no-magic-numbers": "off"
7
+
8
+ };
@@ -0,0 +1,375 @@
1
+ module.exports = {
2
+
3
+ /* ━━━ ECMAScript Code Validity ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
4
+ "array-callback-return": "error",
5
+ "constructor-super": "error",
6
+ "getter-return": "error",
7
+ "no-class-assign": "error",
8
+ "no-const-assign": "error",
9
+ "no-constructor-return": "error",
10
+ "no-import-assign": "error",
11
+ "no-invalid-regexp": "error",
12
+ "no-new-native-nonconstructor": "error",
13
+ "no-obj-calls": "error",
14
+ "no-promise-executor-return": "error",
15
+ "no-setter-return": "error",
16
+ "no-this-before-super": "error",
17
+ "no-undef": "error",
18
+ "no-unreachable": "error",
19
+ "no-delete-var": "error",
20
+
21
+
22
+ /* ━━━ Algorithmic Errors Preventing ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
23
+ "for-direction": "error",
24
+ "no-async-promise-executor": "error",
25
+ "no-compare-neg-zero": "error",
26
+ "no-cond-assign": "error",
27
+ "no-constant-condition": "error",
28
+ "no-control-regex": "error",
29
+ "no-dupe-args": "error",
30
+ "no-dupe-class-members": "error",
31
+ "no-dupe-else-if": "error",
32
+ "no-dupe-keys": "error",
33
+ "no-duplicate-case": "error",
34
+ "no-empty-character-class": "error",
35
+ "no-empty-pattern": "error",
36
+ "no-ex-assign": "error",
37
+ "no-fallthrough": "error",
38
+ "no-func-assign": "error",
39
+ "no-inner-declarations": "error",
40
+ "no-irregular-whitespace": [
41
+ "error",
42
+ {
43
+ skipStrings: true,
44
+ skipTemplates: true,
45
+ skipComments: true,
46
+ skipRegExps: true
47
+ }
48
+ ],
49
+ "no-loss-of-precision": "error",
50
+ "no-misleading-character-class": "error",
51
+ "no-prototype-builtins": "error",
52
+ "no-unmodified-loop-condition": "error",
53
+ "no-unreachable-loop": "error",
54
+ "no-unsafe-finally": "error",
55
+ "no-unsafe-negation": "error",
56
+ "no-unsafe-optional-chaining": "error",
57
+ "no-use-before-define": [ "error", { functions: false } ],
58
+ "require-atomic-updates": "error",
59
+ "use-isnan": "error",
60
+ "valid-typeof": "error",
61
+ "guard-for-in": "error",
62
+ "no-case-declarations": "error",
63
+ "no-global-assign": "error",
64
+ "no-loop-func": "error",
65
+ "no-shadow": "error",
66
+ "no-shadow-restricted-names": "error",
67
+ "operator-assignment": [ "error", "never" ],
68
+ "prefer-object-has-own": [ "error" ],
69
+ radix: "error",
70
+ "require-unicode-regexp": "error",
71
+ yoda: "error",
72
+
73
+
74
+ /* ━━━ Must not be in Production Code ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
75
+ "no-debugger": "warn",
76
+ "no-console": "warn",
77
+
78
+
79
+ /* ━━━ Prevention of the Confusing & Stupid Mistakes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
80
+ "no-constant-binary-expression": "error",
81
+ "no-self-assign": "error",
82
+ "no-self-compare": "error",
83
+ "no-sparse-arrays": "error",
84
+ "no-template-curly-in-string": "error",
85
+ "no-unexpected-multiline": "error",
86
+ "class-methods-use-this": "warn",
87
+ "default-case-last": "error",
88
+ "default-param-last": "error",
89
+ "func-names": [ "error", "always" ],
90
+ "func-style": [ "error", "declaration", { allowArrowFunctions: true } ],
91
+ "new-cap": [ "error", { capIsNew: false } ],
92
+ "no-array-constructor": "error",
93
+ "no-bitwise": "error",
94
+ "@stylistic/no-confusing-arrow": [ "error", { allowParens: true } ],
95
+ "no-div-regex": "error",
96
+ "no-extend-native": "error",
97
+ "no-extra-boolean-cast": "error",
98
+ "no-implicit-coercion": "error",
99
+ "no-implicit-globals": "error",
100
+ "no-invalid-this": "error",
101
+ "@stylistic/no-mixed-operators": "error",
102
+ "no-multi-assign": "error",
103
+ "no-negated-condition": "error",
104
+ "no-new": "error",
105
+ "no-new-func": "error",
106
+ "no-param-reassign": "error",
107
+ "no-regex-spaces": "error",
108
+ "no-return-assign": "error",
109
+ "no-sequences": "error",
110
+ "no-throw-literal": "error",
111
+ "no-undefined": "error",
112
+ "no-underscore-dangle": "warn",
113
+ "no-unused-expressions": "error",
114
+ "no-useless-escape": "error",
115
+ "no-useless-rename": "error",
116
+ "no-useless-return": "error",
117
+ "no-void": "error",
118
+ "prefer-numeric-literals": "error",
119
+ "prefer-promise-reject-errors": "error",
120
+ "prefer-rest-params": "error",
121
+ "prefer-spread": "error",
122
+ "require-await": "error",
123
+ "require-yield": "error",
124
+ "symbol-description": "error",
125
+
126
+
127
+ /* ━━━ Elimination of Useless Code ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
128
+ "no-useless-assignment": "error",
129
+ "no-useless-backreference": "error",
130
+ "arrow-body-style": [ "warn", "as-needed" ],
131
+ "no-else-return": "error",
132
+ "no-extra-bind": "error",
133
+ "no-extra-label": "error",
134
+ "@stylistic/no-extra-semi": "error",
135
+ "no-new-wrappers": "error",
136
+ "no-object-constructor": "error",
137
+ "no-undef-init": "error",
138
+ "no-unneeded-ternary": "error",
139
+ "no-useless-call": "error",
140
+ "no-useless-catch": "error",
141
+ "no-useless-computed-key": "error",
142
+ "no-useless-concat": "error",
143
+ "no-useless-constructor": "error",
144
+ "object-shorthand": [
145
+ "warn",
146
+ "always",
147
+ {
148
+ avoidQuotes: true,
149
+ avoidExplicitReturnArrows: true
150
+ }
151
+ ],
152
+ "@stylistic/no-extra-parens": [
153
+ "warn",
154
+ "all",
155
+ {
156
+ nestedBinaryExpressions: false,
157
+ enforceForArrowConditionals: false
158
+ }
159
+ ],
160
+
161
+
162
+ /* ━━━ Unification of Equivalent Writings ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
163
+ curly: "error",
164
+ "dot-notation": "warn",
165
+ "one-var": [ "error", "never" ],
166
+ "@stylistic/one-var-declaration-per-line": [ "error", "initializations" ],
167
+ "prefer-object-spread": "error",
168
+ "prefer-regex-literals": [ "error", { disallowRedundantWrapping: true } ],
169
+ "@stylistic/array-bracket-newline": [ "warn", "consistent" ],
170
+ "@stylistic/array-bracket-spacing": [ "warn", "always" ],
171
+ "@stylistic/array-element-newline": [ "warn", "consistent" ],
172
+ "@stylistic/arrow-parens": [ "warn", "always" ],
173
+ "@stylistic/arrow-spacing": [ "warn", { before: true, after: true } ],
174
+ "@stylistic/block-spacing": [ "warn", "always" ],
175
+ "@stylistic/brace-style": [ "warn", "1tbs", { allowSingleLine: true } ],
176
+ "@stylistic/comma-dangle": [ "warn", "never" ],
177
+ "@stylistic/comma-spacing": [ "warn", { before: false, after: true } ],
178
+ "@stylistic/comma-style": [ "error", "last" ],
179
+ "@stylistic/computed-property-spacing": [ "warn", "never" ],
180
+ "@stylistic/dot-location": [ "warn", "object" ],
181
+ "@stylistic/function-call-argument-newline": [ "warn", "consistent" ],
182
+ "@stylistic/function-call-spacing": "warn",
183
+ "@stylistic/function-paren-newline": [ "warn", "consistent" ],
184
+ "@stylistic/generator-star-spacing": [ "warn", { before: true, after: false } ],
185
+ "@stylistic/jsx-quotes": [ "error", "prefer-double" ],
186
+ "@stylistic/key-spacing": [
187
+ "warn",
188
+ {
189
+ beforeColon: false,
190
+ afterColon: true,
191
+ mode: "strict"
192
+ }
193
+ ],
194
+ "@stylistic/keyword-spacing": [
195
+ "warn",
196
+ {
197
+ before: true,
198
+ after: true
199
+ }
200
+ ],
201
+
202
+ "logical-assignment-operators": [ "warn", "never" ],
203
+ "@stylistic/max-statements-per-line": [ "warn", { max: 2 } ],
204
+ "@stylistic/member-delimiter-style": [
205
+ "warn",
206
+ {
207
+ multiline: {
208
+ delimiter: "semi",
209
+ requireLast: true
210
+ },
211
+ singleline: {
212
+ delimiter: "semi",
213
+ requireLast: true
214
+ }
215
+ }
216
+ ],
217
+ "@stylistic/new-parens": "error",
218
+ "@stylistic/newline-per-chained-call": [ "warn", { ignoreChainWithDepth: 2 } ],
219
+ "@stylistic/no-floating-decimal": "error",
220
+ "@stylistic/no-whitespace-before-property": "warn",
221
+ "@stylistic/object-curly-spacing": [ "warn", "always" ],
222
+ "@stylistic/object-property-newline": [ "warn", { allowAllPropertiesOnSameLine: true } ],
223
+ "@stylistic/operator-linebreak": [ "warn", "after" ],
224
+ "@stylistic/quote-props": [ "warn", "as-needed" ],
225
+ "@stylistic/quotes": [ "error", "double", { avoidEscape: true } ],
226
+ "@stylistic/rest-spread-spacing": [ "warn", "never" ],
227
+ "@stylistic/semi": "error",
228
+ "@stylistic/semi-spacing": [ "warn", { before: false, after: true } ],
229
+ "@stylistic/semi-style": [ "warn", "last" ],
230
+ "@stylistic/space-before-blocks": "warn",
231
+ "@stylistic/space-before-function-paren": [ "warn", { anonymous: "always", named: "never", asyncArrow: "always" } ],
232
+ "@stylistic/space-in-parens": [ "warn", "never" ],
233
+ "@stylistic/space-infix-ops": "warn",
234
+ "@stylistic/space-unary-ops": "warn",
235
+ "@stylistic/switch-colon-spacing": "warn",
236
+ "@stylistic/template-curly-spacing": [ "warn", "always" ],
237
+ "@stylistic/template-tag-spacing": [ "warn", "never" ],
238
+ "@stylistic/wrap-iife": [ "error", "inside" ],
239
+ "@stylistic/wrap-regex": [ "error" ],
240
+ "@stylistic/yield-star-spacing": "warn",
241
+
242
+
243
+ /* ━━━ Neatness ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
244
+ "@stylistic/lines-around-comment": [ "warn", { beforeBlockComment: true } ],
245
+
246
+ "@stylistic/lines-between-class-members": [
247
+ "warn",
248
+ {
249
+ enforce: [
250
+ { blankLine: "always", prev: "field", next: "method" },
251
+ { blankLine: "always", prev: "method", next: "method" },
252
+ { blankLine: "always", prev: "method", next: "field" }
253
+ ]
254
+ }
255
+ ],
256
+
257
+ "@stylistic/max-len": [
258
+ "warn",
259
+ {
260
+ code: 130,
261
+ ignoreUrls: true,
262
+ ignorePattern: "^\\s{4}\"[@~]?[\\w/:.-]+\";\\s*$"
263
+ }
264
+ ],
265
+
266
+ "no-duplicate-imports": "error",
267
+ "no-unused-private-class-members": "error",
268
+ "no-unused-vars": [
269
+ "error",
270
+ { destructuredArrayIgnorePattern: "^_" }
271
+ ],
272
+ "capitalized-comments": "warn",
273
+ "grouped-accessor-pairs": [ "warn", "getBeforeSet" ],
274
+ "id-denylist": [
275
+ "error",
276
+ "args",
277
+ "argv",
278
+ "brsr",
279
+ "param",
280
+ "params",
281
+ "prop",
282
+ "props"
283
+ ],
284
+ "id-length": [
285
+ "error",
286
+ {
287
+
288
+ min: 4,
289
+ properties: "never",
290
+
291
+ /* [ API ] Case is matters */
292
+ exceptions: [
293
+ "add",
294
+ "id",
295
+ "ID",
296
+ "key",
297
+ "Pug",
298
+ "pug",
299
+ "Vue",
300
+ "vue"
301
+ ]
302
+
303
+ }
304
+ ],
305
+ "max-classes-per-file": "error",
306
+ "max-depth": [ "warn", 3 ],
307
+ "max-nested-callbacks": [ "error", 2 ],
308
+ "max-params": [ "error", 3 ],
309
+ "@stylistic/multiline-comment-style": [ "warn", "bare-block" ],
310
+ "no-empty": "error",
311
+ "no-empty-function": "error",
312
+ "no-empty-static-block": "warn",
313
+ "no-inline-comments": "error",
314
+ "no-lone-blocks": "error",
315
+ "no-lonely-if": "error",
316
+ "no-magic-numbers": [
317
+ "error",
318
+ {
319
+ "enforceConst": true,
320
+ "ignore": [
321
+ -1,
322
+ 0,
323
+ 0.5,
324
+ 1,
325
+ 2,
326
+ 10,
327
+ 100
328
+ ]
329
+ }
330
+ ],
331
+ "no-nested-ternary": "error",
332
+ "no-warning-comments": "warn",
333
+ "prefer-named-capture-group": "error",
334
+ "@stylistic/spaced-comment": [ "warn", "always", { block: { markers: [ "!" ], balanced: true } } ],
335
+ "@stylistic/no-mixed-spaces-and-tabs": "warn",
336
+ "@stylistic/no-multi-spaces": "warn",
337
+ "@stylistic/no-multiple-empty-lines": [
338
+ "warn",
339
+ {
340
+ max: 2,
341
+ maxBOF: 0,
342
+ maxEOF: 1
343
+ }
344
+ ],
345
+ "@stylistic/object-curly-newline": [ "warn", { consistent: true } ],
346
+
347
+
348
+ /* ━━━ Preventing of Deprecated or not Recommended Functionality ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
349
+ eqeqeq: [ "error", "always" ],
350
+ "no-alert": "error",
351
+ "no-caller": "error",
352
+ "no-eq-null": "error",
353
+ "no-eval": "error",
354
+ "no-implied-eval": "error",
355
+ "no-iterator": "error",
356
+ "no-label-var": "error",
357
+ "no-labels": "error",
358
+ "no-nonoctal-decimal-escape": "error",
359
+ "no-octal": "error",
360
+ "no-octal-escape": "error",
361
+ "no-proto": "error",
362
+ "no-script-url": "error",
363
+ "no-var": "error",
364
+ "no-with": "error",
365
+ strict: "error",
366
+
367
+
368
+ /* ━━━ Other ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
369
+ "no-await-in-loop": "error",
370
+ "prefer-arrow-callback": "warn",
371
+ "prefer-const": "error",
372
+ "@stylistic/eol-last": [ "warn" ],
373
+ "unicode-bom": "error"
374
+
375
+ };
@@ -0,0 +1,37 @@
1
+ module.exports = {
2
+
3
+ "n/handle-callback-err": "error",
4
+ "n/no-callback-literal": "error",
5
+ "n/no-exports-assign": "error",
6
+ "n/no-extraneous-import": "error",
7
+ // "n/no-extraneous-require": "error",
8
+ // "n/no-missing-import": [ "error", { tryExtensions: [ ".ts", ".js", ".mjs", ".json", ".node" ] } ],
9
+ // "n/no-missing-require": "error",
10
+ // "n/no-new-require": "error",
11
+ "n/no-path-concat": "error",
12
+ "n/no-process-exit": "error",
13
+ "n/no-unpublished-bin": "error",
14
+ "n/no-unpublished-import": "error",
15
+
16
+ "n/no-unpublished-require": "error",
17
+ "n/no-unsupported-features/es-builtins": "error",
18
+ // "n/no-unsupported-features/es-syntax": "error",
19
+ "n/no-unsupported-features/node-builtins": "error",
20
+ "n/process-exit-as-throw": "error",
21
+ "n/shebang": "error",
22
+
23
+ "n/no-deprecated-api": "error",
24
+
25
+ "n/global-require": "error",
26
+ "n/no-process-env": "error",
27
+ "n/prefer-global/buffer": [ "error", "always" ],
28
+ "n/prefer-global/console": [ "error", "always" ],
29
+ "n/prefer-global/process": [ "error", "always" ],
30
+ "n/prefer-global/text-decoder": [ "error", "always" ],
31
+ "n/prefer-global/text-encoder": [ "error", "always" ],
32
+ "n/prefer-global/url-search-params": ["error", "always" ],
33
+ "n/prefer-global/url": [ "error", "always" ],
34
+ "n/prefer-promises/dns": "error",
35
+ "n/prefer-promises/fs": "error"
36
+
37
+ };
@@ -0,0 +1,30 @@
1
+ module.exports = {
2
+
3
+ "@stylistic/jsx-child-element-spacing": [ "error" ],
4
+ "@stylistic/jsx-closing-bracket-location": [ "warn" ],
5
+ "@stylistic/jsx-closing-tag-location": [ "warn" ],
6
+ "@stylistic/jsx-curly-brace-presence": [ "warn" ],
7
+ "@stylistic/jsx-curly-newline": [ "warn" ],
8
+ "@stylistic/jsx-curly-spacing": [ "warn", { when: "always" } ],
9
+ "@stylistic/jsx-equals-spacing": [ "warn" ],
10
+ "@stylistic/jsx-first-prop-new-line": [ "warn", "multiline" ],
11
+ "@stylistic/jsx-indent-props": [ "warn", 2 ],
12
+ "@stylistic/jsx-max-props-per-line": [ "warn" ],
13
+ "@stylistic/jsx-one-expression-per-line": [ "warn", { allow: "single-child" } ],
14
+ "@stylistic/jsx-props-no-multi-spaces": [ "warn" ],
15
+ "@stylistic/jsx-quotes": [ "error" ],
16
+ "@stylistic/jsx-self-closing-comp": [ "error" ],
17
+ "@stylistic/jsx-tag-spacing": [
18
+ "warn",
19
+ {
20
+ closingSlash: "never",
21
+ beforeSelfClosing: "never",
22
+ afterOpening: "never",
23
+ beforeClosing: "allow"
24
+ }
25
+ ],
26
+ "@stylistic/jsx-wrap-multilines": [ "warn" ],
27
+
28
+ "react/button-has-type": [ "error" ]
29
+
30
+ };
@@ -0,0 +1,356 @@
1
+ const ECMA_ScriptBasicRules = require("./ECMA_ScriptBasicRules");
2
+
3
+
4
+ module.exports = {
5
+
6
+ /* ━━━ Type Safety ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
7
+ "@typescript-eslint/consistent-type-assertions": [ "error", { assertionStyle: "never" } ],
8
+
9
+ "@typescript-eslint/no-base-to-string": "error",
10
+
11
+ "@typescript-eslint/no-explicit-any": "error",
12
+
13
+ "@typescript-eslint/explicit-function-return-type": [
14
+ "error",
15
+ {
16
+ allowExpressions: false,
17
+ allowTypedFunctionExpressions: false,
18
+ allowHigherOrderFunctions: false,
19
+ allowDirectConstAssertionInArrowFunctions: false,
20
+ allowConciseArrowFunctionExpressionsStartingWithVoid: false
21
+ }
22
+ ],
23
+
24
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
25
+
26
+ "@typescript-eslint/no-non-null-assertion": "error",
27
+
28
+ "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
29
+
30
+ "@typescript-eslint/no-unsafe-argument": "error",
31
+
32
+ "@typescript-eslint/no-unsafe-call": "error",
33
+
34
+ "@typescript-eslint/no-unsafe-declaration-merging": "error",
35
+
36
+ "@typescript-eslint/no-unsafe-member-access": "error",
37
+
38
+ "@typescript-eslint/no-unsafe-unary-minus": "error",
39
+
40
+ "@typescript-eslint/prefer-return-this-type": "warn",
41
+
42
+ "@typescript-eslint/strict-boolean-expressions": "error",
43
+
44
+ "@typescript-eslint/typedef": [
45
+ "error",
46
+ {
47
+ arrayDestructuring: true,
48
+ arrowParameter: true,
49
+ memberVariableDeclaration: true,
50
+ objectDestructuring: true,
51
+ parameter: true,
52
+ propertyDeclaration: true,
53
+ variableDeclaration: true
54
+ }
55
+ ],
56
+
57
+ "@typescript-eslint/use-unknown-in-catch-callback-variable": "error",
58
+
59
+
60
+ /* ━━━ Algorithmic Errors Preventing ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
61
+ "@typescript-eslint/no-array-delete": "error",
62
+
63
+ "no-dupe-class-members": "off",
64
+ "@typescript-eslint/no-dupe-class-members": "error",
65
+
66
+ "no-loop-func": "off",
67
+ "@typescript-eslint/no-loop-func": "error",
68
+
69
+ "no-redeclare": "off",
70
+ "@typescript-eslint/no-redeclare": [ "error", { ignoreDeclarationMerge: true } ],
71
+
72
+ "no-shadow": "off",
73
+ "@typescript-eslint/no-shadow": "error",
74
+
75
+ "no-use-before-define": "off",
76
+ "@typescript-eslint/no-use-before-define": [
77
+ ...ECMA_ScriptBasicRules["no-use-before-define"].slice(0, 1),
78
+ {
79
+ ...ECMA_ScriptBasicRules["no-use-before-define"][1],
80
+ ...{ typedefs: false }
81
+ }
82
+ ],
83
+
84
+ "@typescript-eslint/unbound-method": [ "error", { ignoreStatic: true } ],
85
+
86
+
87
+ /* ━━━ Type Safety ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
88
+ "@typescript-eslint/await-thenable": "error",
89
+
90
+ "class-methods-use-this": "off",
91
+ "@typescript-eslint/class-methods-use-this": [
92
+ "error",
93
+ {
94
+ ignoreOverrideMethods: true,
95
+ ignoreClassesThatImplementAnInterface: true
96
+ }
97
+ ],
98
+
99
+ "@typescript-eslint/no-confusing-non-null-assertion": "error",
100
+
101
+ "@typescript-eslint/no-for-in-array": "error",
102
+
103
+ "default-param-last": "off",
104
+ "@typescript-eslint/default-param-last": "error",
105
+
106
+ "@typescript-eslint/no-array-constructor": "error",
107
+
108
+ "@typescript-eslint/no-confusing-void-expression": "error",
109
+
110
+ "@typescript-eslint/no-duplicate-enum-values": "error",
111
+
112
+ "@typescript-eslint/no-duplicate-type-constituents": "error",
113
+
114
+ "no-invalid-this": "off",
115
+ "@typescript-eslint/no-invalid-this": "error",
116
+
117
+ "@typescript-eslint/no-invalid-void-type": "error",
118
+
119
+ "@typescript-eslint/no-meaningless-void-operator": "error",
120
+
121
+ "@typescript-eslint/no-misused-new": "error",
122
+
123
+ "@typescript-eslint/no-misused-promises": [
124
+ "error",
125
+ {
126
+ checksVoidReturn: {
127
+
128
+ /* See https://stackoverflow.com/q/78559257/4818123 */
129
+ arguments: false
130
+
131
+ }
132
+ }
133
+ ],
134
+
135
+ "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
136
+
137
+ "@typescript-eslint/no-redundant-type-constituents": "error",
138
+
139
+ "@typescript-eslint/no-this-alias": "error",
140
+
141
+ "@typescript-eslint/only-throw-error": "error",
142
+
143
+ "@typescript-eslint/no-unnecessary-condition": "error",
144
+
145
+ "@typescript-eslint/no-unnecessary-type-arguments": "error",
146
+
147
+ "@typescript-eslint/no-unnecessary-type-constraint": "error",
148
+
149
+ "@typescript-eslint/no-unsafe-enum-comparison": "error",
150
+
151
+ "no-unused-expressions": "off",
152
+ "@typescript-eslint/no-unused-expressions": "error",
153
+
154
+ "@typescript-eslint/prefer-literal-enum-member": "error",
155
+
156
+ "@typescript-eslint/prefer-readonly": "error",
157
+
158
+ "@typescript-eslint/require-array-sort-compare": "error",
159
+
160
+ "require-await": "off",
161
+ "@typescript-eslint/require-await": "error",
162
+
163
+ "@typescript-eslint/restrict-plus-operands": "error",
164
+
165
+ "@typescript-eslint/restrict-template-expressions": [
166
+ "error",
167
+ {
168
+ allowNumber: true,
169
+ allowBoolean: true,
170
+ allowNullish: true
171
+ }
172
+ ],
173
+
174
+ "@typescript-eslint/switch-exhaustiveness-check": "error",
175
+
176
+
177
+ /* ━━━ Elimination of Useless Code ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
178
+ "@typescript-eslint/no-extra-non-null-assertion": "error",
179
+
180
+ "@typescript-eslint/no-unnecessary-qualifier": "error",
181
+
182
+ "@typescript-eslint/no-unnecessary-type-assertion": "error",
183
+
184
+ "no-useless-constructor": "off",
185
+ "@typescript-eslint/no-useless-constructor": "error",
186
+
187
+ "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error",
188
+ "@typescript-eslint/no-unnecessary-template-expression": "warn",
189
+
190
+ "@typescript-eslint/return-await": "error",
191
+
192
+
193
+ /* ━━━ Neatness ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
194
+ "@typescript-eslint/adjacent-overload-signatures": "warn",
195
+
196
+ "@typescript-eslint/member-ordering": [
197
+ "warn",
198
+ {
199
+ default: [
200
+
201
+ "signature",
202
+
203
+ "public-static-field",
204
+ "protected-static-field",
205
+ "private-static-field",
206
+ "static-initialization",
207
+
208
+ "public-abstract-field",
209
+ "protected-abstract-field",
210
+
211
+ "public-instance-field",
212
+ "protected-instance-field",
213
+ "private-instance-field",
214
+
215
+ "public-static-method",
216
+
217
+ "constructor",
218
+
219
+ "public-abstract-method",
220
+ "protected-abstract-method",
221
+
222
+ "public-instance-method",
223
+ "protected-instance-method",
224
+ "private-instance-method",
225
+
226
+ "protected-static-method",
227
+ "private-static-method"
228
+ ]
229
+ }
230
+ ],
231
+
232
+ /*
233
+ "no-duplicate-imports": "off",
234
+ "import/no-duplicates": "error",
235
+ */
236
+
237
+ "no-empty-function": "off",
238
+ "@typescript-eslint/no-empty-function": "error",
239
+
240
+ "no-magic-numbers": "off",
241
+ "@typescript-eslint/no-magic-numbers": [
242
+ ...ECMA_ScriptBasicRules["no-magic-numbers"].slice(0, 1),
243
+ {
244
+ ...ECMA_ScriptBasicRules["no-magic-numbers"][1],
245
+ ...{
246
+ ignoreReadonlyClassProperties: true,
247
+ ignoreEnums: true
248
+ }
249
+ }
250
+ ],
251
+
252
+ "no-unused-vars": "off",
253
+ "@typescript-eslint/no-unused-vars": ECMA_ScriptBasicRules["no-unused-vars"],
254
+
255
+
256
+ /* ━━━ Unification of Equivalent Writings ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
257
+ "@typescript-eslint/array-type": [ "warn", { default: "generic" } ],
258
+
259
+ "@typescript-eslint/class-literal-property-style": "warn",
260
+
261
+ "@typescript-eslint/consistent-generic-constructors": [ "error", "type-annotation" ],
262
+
263
+ "@typescript-eslint/consistent-indexed-object-style": [ "warn", "index-signature" ],
264
+
265
+ "dot-notation": "off",
266
+ "@typescript-eslint/dot-notation": "warn",
267
+
268
+ "@typescript-eslint/no-extraneous-class": [
269
+ "error",
270
+ {
271
+ allowStaticOnly: true,
272
+ allowWithDecorator: true
273
+ }
274
+ ],
275
+
276
+ "@typescript-eslint/no-var-requires": "error",
277
+
278
+ "@typescript-eslint/prefer-function-type": "warn",
279
+
280
+ "@typescript-eslint/prefer-includes": "warn",
281
+
282
+ "@typescript-eslint/prefer-namespace-keyword": "error",
283
+
284
+ "@typescript-eslint/prefer-nullish-coalescing": "warn",
285
+
286
+ "@typescript-eslint/prefer-optional-chain": "warn",
287
+
288
+ "@typescript-eslint/prefer-reduce-type-parameter": "warn",
289
+
290
+ "@typescript-eslint/prefer-regexp-exec": "warn",
291
+
292
+ "@typescript-eslint/prefer-string-starts-ends-with": "warn",
293
+
294
+ "@typescript-eslint/promise-function-async": "error",
295
+
296
+ "@stylistic/type-annotation-spacing": "warn",
297
+ "@stylistic/type-generic-spacing": "warn",
298
+ "@stylistic/type-named-tuple-spacing": "warn",
299
+
300
+ "@typescript-eslint/unified-signatures": "warn",
301
+
302
+
303
+ /* ━━━ Fast-and-dirty Code Prevention ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
304
+ "@typescript-eslint/ban-ts-comment": [
305
+ "error",
306
+ {
307
+ "ts-expect-error": { descriptionFormat: "^: TS\\d+\\s" },
308
+ "ts-ignore": { descriptionFormat: "^: TS\\d+\\s" },
309
+ "ts-nocheck": { descriptionFormat: "^: TS\\d+\\s" },
310
+ minimumDescriptionLength: 20
311
+ }
312
+ ],
313
+
314
+ "@typescript-eslint/explicit-member-accessibility": [ "error", { accessibility: "explicit" } ],
315
+
316
+ "@typescript-eslint/no-empty-interface": "error",
317
+ "@typescript-eslint/no-empty-object-type": "error",
318
+
319
+ "@typescript-eslint/no-floating-promises": "error",
320
+
321
+ "@typescript-eslint/no-unsafe-function-type": "error",
322
+ "@typescript-eslint/no-useless-empty-export": "error",
323
+ "@typescript-eslint/no-wrapper-object-types": "error",
324
+
325
+ "@typescript-eslint/prefer-enum-initializers": "error",
326
+
327
+
328
+ /* ━━━ Preventing of Deprecated or not Recommended Functionality ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
329
+ "@typescript-eslint/ban-tslint-comment": "error",
330
+
331
+ "@typescript-eslint/method-signature-style": "error",
332
+
333
+ "@typescript-eslint/no-deprecated": "error",
334
+
335
+ "no-implied-eval": "off",
336
+ "@typescript-eslint/no-implied-eval": "error",
337
+
338
+ "@typescript-eslint/triple-slash-reference": "error",
339
+
340
+
341
+ /* ━━━ Other ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
342
+ "@typescript-eslint/consistent-type-exports": [ "error", { fixMixedExportsWithInlineTypeSpecifier: true } ],
343
+
344
+ "@typescript-eslint/consistent-type-imports": [ "error" ],
345
+
346
+ "@typescript-eslint/no-dynamic-delete": "error",
347
+
348
+ "@typescript-eslint/no-require-imports": "error",
349
+
350
+ "@typescript-eslint/prefer-for-of": "error"
351
+
352
+
353
+ /* ━━━ Experimental ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
354
+ // "@typescript-eslint/prefer-readonly-parameter-types": "warn"
355
+
356
+ };
@@ -0,0 +1,95 @@
1
+ module.exports = {
2
+
3
+ /* ━━━ Essential ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
4
+ "vue/comment-directive": "error",
5
+ "vue/jsx-uses-vars": "error",
6
+ "vue/multi-word-component-names": "error",
7
+ "vue/no-arrow-functions-in-watch": "error",
8
+ "vue/no-async-in-computed-properties": "error",
9
+ "vue/no-child-content": "error",
10
+ "vue/no-dupe-keys": "error",
11
+ "vue/no-dupe-v-else-if": "error",
12
+ "vue/no-duplicate-attributes": "error",
13
+ "vue/no-export-in-script-setup": "error",
14
+ "vue/no-mutating-props": "error",
15
+ "vue/no-parsing-error": "error",
16
+ "vue/no-ref-as-operand": "error",
17
+ "vue/no-reserved-component-names": "error",
18
+ "vue/no-reserved-keys": "error",
19
+ "vue/no-reserved-props": "error",
20
+ "vue/no-setup-props-destructure": "error",
21
+ "vue/no-shared-component-data": "error",
22
+ "vue/no-side-effects-in-computed-properties": "error",
23
+ "vue/no-template-key": "error",
24
+ "vue/no-textarea-mustache": "error",
25
+ "vue/no-unused-components": "error",
26
+ "vue/no-unused-vars": "error",
27
+ "vue/no-use-computed-property-like-method": "error",
28
+ "vue/no-use-v-if-with-v-for": "error",
29
+ "vue/no-useless-template-attributes": "error",
30
+ "vue/no-v-text-v-html-on-component": "error",
31
+ "vue/require-component-is": "error",
32
+ "vue/require-prop-type-constructor": "error",
33
+ "vue/require-render-return": "error",
34
+ "vue/require-v-for-key": "error",
35
+ "vue/require-valid-default-prop": "error",
36
+ "vue/return-in-computed-property": "error",
37
+ "vue/return-in-emits-validator": "error",
38
+ "vue/use-v-on-exact": "error",
39
+ "vue/valid-attribute-name": "error",
40
+ "vue/valid-define-emits": "error",
41
+ "vue/valid-define-props": "error",
42
+ "vue/valid-next-tick": "error",
43
+ "vue/valid-template-root": "error",
44
+ "vue/valid-v-bind": "error",
45
+ "vue/valid-v-cloak": "error",
46
+ "vue/valid-v-else-if": "error",
47
+ "vue/valid-v-else": "error",
48
+ "vue/valid-v-for": "error",
49
+ "vue/valid-v-html": "error",
50
+ "vue/valid-v-if": "error",
51
+ "vue/valid-v-model": "error",
52
+ "vue/valid-v-on": "error",
53
+ "vue/valid-v-once": "error",
54
+ "vue/valid-v-pre": "error",
55
+ "vue/valid-v-show": "error",
56
+ "vue/valid-v-slot": "error",
57
+ "vue/valid-v-text": "error",
58
+
59
+ /* ━━━ Essential Vue 3 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
60
+ "vue/no-deprecated-data-object-declaration": "error",
61
+ "vue/no-deprecated-destroyed-lifecycle": "error",
62
+ "vue/no-deprecated-dollar-listeners-api": "error",
63
+ "vue/no-deprecated-dollar-scopedslots-api": "error",
64
+ "vue/no-deprecated-events-api": "error",
65
+ "vue/no-deprecated-filter": "error",
66
+ "vue/no-deprecated-functional-template": "error",
67
+ "vue/no-deprecated-html-element-is": "error",
68
+ "vue/no-deprecated-inline-template": "error",
69
+ "vue/no-deprecated-props-default-this": "error",
70
+ "vue/no-deprecated-router-link-tag-prop": "error",
71
+ "vue/no-deprecated-scope-attribute": "error",
72
+ "vue/no-deprecated-slot-attribute": "error",
73
+ "vue/no-deprecated-slot-scope-attribute": "error",
74
+ "vue/no-deprecated-v-bind-sync": "error",
75
+ "vue/no-deprecated-v-is": "error",
76
+ "vue/no-deprecated-v-on-native-modifier": "error",
77
+ "vue/no-deprecated-v-on-number-modifiers": "error",
78
+ "vue/no-deprecated-vue-config-keycodes": "error",
79
+ "vue/no-expose-after-await": "error",
80
+ "vue/no-lifecycle-after-await": "error",
81
+ "vue/no-v-for-template-key-on-child": "error",
82
+ "vue/no-watch-after-await": "error",
83
+ "vue/prefer-import-from-vue": "error",
84
+ "vue/require-slots-as-functions": "error",
85
+ "vue/require-toggle-inside-transition": "error",
86
+ "vue/valid-v-is": "error",
87
+ "vue/valid-v-memo": "error",
88
+
89
+ /* ━━━ Other ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
90
+ "class-methods-use-this": "off",
91
+ "@typescript-eslint/indent": "off",
92
+ "@typescript-eslint/member-ordering": "off",
93
+ "vue/script-indent": "off"
94
+
95
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yamato-daiwa/style_guides",
3
- "version": "0.3.0-alpha.5",
3
+ "version": "0.3.0-alpha.7",
4
4
  "description": "The guidelines for ESLint, Pug and Stylus.",
5
5
  "engines": {
6
6
  "node": ">=18.18.0"
@@ -42,7 +42,8 @@
42
42
  "vue-facing-decorator": "3.0.4"
43
43
  },
44
44
  "files": [
45
- "Partials",
45
+ "Overridings",
46
+ "Rules",
46
47
  "ECMAScript.js",
47
48
  "Markup.js"
48
49
  ],