@jsse/eslint-config 0.4.9 → 0.4.11

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.
Files changed (104) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/cli.js +9 -6
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.js +29 -123
  6. package/dist/version-Cmu7XVG1.js +39 -0
  7. package/package.json +12 -9
  8. package/dist/esm/cli.d.ts +0 -1
  9. package/dist/esm/cli.js +0 -121
  10. package/dist/esm/config-fns.d.ts +0 -138
  11. package/dist/esm/config-fns.js +0 -161
  12. package/dist/esm/configs/antfu.d.ts +0 -4
  13. package/dist/esm/configs/antfu.js +0 -30
  14. package/dist/esm/configs/command.d.ts +0 -10
  15. package/dist/esm/configs/command.js +0 -17
  16. package/dist/esm/configs/de-morgan.d.ts +0 -2
  17. package/dist/esm/configs/de-morgan.js +0 -9
  18. package/dist/esm/configs/eslint-comments.d.ts +0 -2
  19. package/dist/esm/configs/eslint-comments.js +0 -16
  20. package/dist/esm/configs/gql.d.ts +0 -2
  21. package/dist/esm/configs/gql.js +0 -4
  22. package/dist/esm/configs/ignores.d.ts +0 -2
  23. package/dist/esm/configs/ignores.js +0 -9
  24. package/dist/esm/configs/imports.d.ts +0 -2
  25. package/dist/esm/configs/imports.js +0 -28
  26. package/dist/esm/configs/javascript.d.ts +0 -6
  27. package/dist/esm/configs/javascript.js +0 -262
  28. package/dist/esm/configs/jsdoc.d.ts +0 -2
  29. package/dist/esm/configs/jsdoc.js +0 -31
  30. package/dist/esm/configs/jsonc.d.ts +0 -4
  31. package/dist/esm/configs/jsonc.js +0 -76
  32. package/dist/esm/configs/markdown.d.ts +0 -4
  33. package/dist/esm/configs/markdown.js +0 -122
  34. package/dist/esm/configs/n.d.ts +0 -2
  35. package/dist/esm/configs/n.js +0 -21
  36. package/dist/esm/configs/no-only-tests.d.ts +0 -4
  37. package/dist/esm/configs/no-only-tests.js +0 -31
  38. package/dist/esm/configs/perfectionist.d.ts +0 -7
  39. package/dist/esm/configs/perfectionist.js +0 -60
  40. package/dist/esm/configs/pnpm.d.ts +0 -2
  41. package/dist/esm/configs/pnpm.js +0 -34
  42. package/dist/esm/configs/prettier.d.ts +0 -7
  43. package/dist/esm/configs/prettier.js +0 -126
  44. package/dist/esm/configs/react.d.ts +0 -6
  45. package/dist/esm/configs/react.js +0 -300
  46. package/dist/esm/configs/sort-package-json.d.ts +0 -7
  47. package/dist/esm/configs/sort-package-json.js +0 -102
  48. package/dist/esm/configs/sort-tsconfig.d.ts +0 -14
  49. package/dist/esm/configs/sort-tsconfig.js +0 -135
  50. package/dist/esm/configs/stylistic.d.ts +0 -2
  51. package/dist/esm/configs/stylistic.js +0 -39
  52. package/dist/esm/configs/tailwind.d.ts +0 -1
  53. package/dist/esm/configs/tailwind.js +0 -81
  54. package/dist/esm/configs/toml.d.ts +0 -2
  55. package/dist/esm/configs/toml.js +0 -50
  56. package/dist/esm/configs/ts/parser.d.ts +0 -7
  57. package/dist/esm/configs/ts/parser.js +0 -71
  58. package/dist/esm/configs/ts/requires-type-checking.d.ts +0 -1
  59. package/dist/esm/configs/ts/requires-type-checking.js +0 -61
  60. package/dist/esm/configs/ts/typescript-language-options.d.ts +0 -2
  61. package/dist/esm/configs/ts/typescript-language-options.js +0 -22
  62. package/dist/esm/configs/ts/typescript-rules.d.ts +0 -11
  63. package/dist/esm/configs/ts/typescript-rules.js +0 -379
  64. package/dist/esm/configs/ts/typescript.d.ts +0 -4
  65. package/dist/esm/configs/ts/typescript.js +0 -123
  66. package/dist/esm/configs/tsdoc.d.ts +0 -2
  67. package/dist/esm/configs/tsdoc.js +0 -16
  68. package/dist/esm/configs/unicorn.d.ts +0 -2
  69. package/dist/esm/configs/unicorn.js +0 -114
  70. package/dist/esm/configs/vitest.d.ts +0 -4
  71. package/dist/esm/configs/vitest.js +0 -29
  72. package/dist/esm/configs/yml.d.ts +0 -4
  73. package/dist/esm/configs/yml.js +0 -51
  74. package/dist/esm/const.d.ts +0 -5
  75. package/dist/esm/const.js +0 -25
  76. package/dist/esm/define-config.d.ts +0 -7
  77. package/dist/esm/define-config.js +0 -256
  78. package/dist/esm/dev.d.ts +0 -4
  79. package/dist/esm/dev.js +0 -25
  80. package/dist/esm/fixable.d.ts +0 -2
  81. package/dist/esm/fixable.js +0 -4
  82. package/dist/esm/generated/fixable-rules-map.d.ts +0 -2
  83. package/dist/esm/generated/fixable-rules-map.js +0 -443
  84. package/dist/esm/generated/version.d.ts +0 -1
  85. package/dist/esm/generated/version.js +0 -1
  86. package/dist/esm/globs.d.ts +0 -25
  87. package/dist/esm/globs.js +0 -73
  88. package/dist/esm/index.d.ts +0 -9
  89. package/dist/esm/index.js +0 -8
  90. package/dist/esm/lager.d.ts +0 -32
  91. package/dist/esm/lager.js +0 -87
  92. package/dist/esm/log.d.ts +0 -2
  93. package/dist/esm/log.js +0 -2
  94. package/dist/esm/plugins-all.d.ts +0 -26
  95. package/dist/esm/plugins-all.js +0 -120
  96. package/dist/esm/plugins.d.ts +0 -1570
  97. package/dist/esm/plugins.js +0 -97
  98. package/dist/esm/presets.d.ts +0 -18
  99. package/dist/esm/presets.js +0 -75
  100. package/dist/esm/types.d.ts +0 -287
  101. package/dist/esm/types.js +0 -1
  102. package/dist/esm/utils.d.ts +0 -51
  103. package/dist/esm/utils.js +0 -156
  104. package/dist/version-DNhPWuQE.js +0 -5
@@ -1,262 +0,0 @@
1
- import eslintjs from "@eslint/js";
2
- import globals from "globals";
3
- import { GLOB_JS, GLOB_JS_SRC_EXT } from "../globs.js";
4
- import { pluginUnusedImports } from "../plugins.js";
5
- export const javascript = async (options) => {
6
- const { isInEditor = false, overrides = {}, reportUnusedDisableDirectives = true, } = options ?? {};
7
- return [
8
- {
9
- languageOptions: {
10
- ecmaVersion: 2022,
11
- globals: {
12
- ...globals.browser,
13
- ...globals.es2021,
14
- ...globals.node,
15
- document: "readonly",
16
- navigator: "readonly",
17
- window: "readonly",
18
- },
19
- parserOptions: {
20
- ecmaFeatures: {
21
- jsx: true,
22
- },
23
- ecmaVersion: 2022,
24
- sourceType: "module",
25
- },
26
- sourceType: "module",
27
- },
28
- linterOptions: {
29
- reportUnusedDisableDirectives,
30
- },
31
- name: "jsse/javascript",
32
- plugins: {
33
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
34
- "unused-imports": pluginUnusedImports,
35
- },
36
- rules: {
37
- ...eslintjs.configs.recommended.rules,
38
- "accessor-pairs": [
39
- "error",
40
- { enforceForClassMembers: true, setWithoutGet: true },
41
- ],
42
- "array-callback-return": "error",
43
- "arrow-parens": ["error", "as-needed", { requireForBlockBody: true }],
44
- "block-scoped-var": "error",
45
- "constructor-super": "error",
46
- "default-case-last": "error",
47
- "dot-notation": ["error", { allowKeywords: true }],
48
- eqeqeq: ["error", "smart"],
49
- "new-cap": [
50
- "error",
51
- { capIsNew: false, newIsCap: true, properties: true },
52
- ],
53
- "no-alert": "error",
54
- "no-array-constructor": "error",
55
- "no-async-promise-executor": "error",
56
- "no-caller": "error",
57
- "no-case-declarations": "error",
58
- "no-class-assign": "error",
59
- "no-compare-neg-zero": "error",
60
- "no-cond-assign": ["error", "always"],
61
- "no-console": ["error", { allow: ["warn", "error"] }],
62
- "no-const-assign": "error",
63
- "no-control-regex": "error",
64
- "no-debugger": "error",
65
- "no-delete-var": "error",
66
- "no-dupe-args": "error",
67
- "no-dupe-class-members": "error",
68
- "no-dupe-keys": "error",
69
- "no-duplicate-case": "error",
70
- "no-empty": ["error", { allowEmptyCatch: true }],
71
- "no-empty-character-class": "error",
72
- "no-empty-pattern": "error",
73
- "no-eval": "error",
74
- "no-ex-assign": "error",
75
- "no-extend-native": "error",
76
- "no-extra-bind": "error",
77
- "no-extra-boolean-cast": "error",
78
- "no-fallthrough": "error",
79
- "no-func-assign": "error",
80
- "no-global-assign": "error",
81
- "no-implied-eval": "error",
82
- "no-import-assign": "error",
83
- "no-invalid-regexp": "error",
84
- "no-invalid-this": "error",
85
- "no-irregular-whitespace": "error",
86
- "no-iterator": "error",
87
- "no-labels": ["error", { allowLoop: false, allowSwitch: false }],
88
- "no-lone-blocks": "error",
89
- "no-loss-of-precision": "error",
90
- "no-misleading-character-class": "error",
91
- "no-multi-str": "error",
92
- "no-nested-ternary": "off",
93
- "no-new": "error",
94
- "no-new-func": "error",
95
- "no-new-object": "error",
96
- "no-new-symbol": "error",
97
- "no-new-wrappers": "error",
98
- "no-obj-calls": "error",
99
- "no-octal": "error",
100
- "no-octal-escape": "error",
101
- "no-proto": "error",
102
- "no-prototype-builtins": "error",
103
- "no-redeclare": ["error", { builtinGlobals: false }],
104
- "no-regex-spaces": "error",
105
- "no-restricted-globals": [
106
- "error",
107
- { message: "Use `globalThis` instead.", name: "global" },
108
- { message: "Use `globalThis` instead.", name: "self" },
109
- ],
110
- "no-restricted-properties": [
111
- "error",
112
- {
113
- message: "Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",
114
- property: "__proto__",
115
- },
116
- {
117
- message: "Use `Object.defineProperty` instead.",
118
- property: "__defineGetter__",
119
- },
120
- {
121
- message: "Use `Object.defineProperty` instead.",
122
- property: "__defineSetter__",
123
- },
124
- {
125
- message: "Use `Object.getOwnPropertyDescriptor` instead.",
126
- property: "__lookupGetter__",
127
- },
128
- {
129
- message: "Use `Object.getOwnPropertyDescriptor` instead.",
130
- property: "__lookupSetter__",
131
- },
132
- ],
133
- "no-restricted-syntax": [
134
- "error",
135
- "DebuggerStatement",
136
- "LabeledStatement",
137
- "WithStatement",
138
- "TSEnumDeclaration[const=true]",
139
- "TSExportAssignment",
140
- ],
141
- "no-self-assign": ["error", { props: true }],
142
- "no-self-compare": "error",
143
- "no-sequences": "error",
144
- "no-shadow-restricted-names": "error",
145
- "no-sparse-arrays": "error",
146
- "no-template-curly-in-string": "error",
147
- "no-this-before-super": "error",
148
- "no-throw-literal": "error",
149
- "no-undef": "error",
150
- "no-undef-init": "error",
151
- "no-unexpected-multiline": "error",
152
- "no-unmodified-loop-condition": "error",
153
- "no-unneeded-ternary": ["error", { defaultAssignment: false }],
154
- "no-unreachable": "error",
155
- "no-unreachable-loop": "error",
156
- "no-unsafe-finally": "error",
157
- "no-unsafe-negation": "error",
158
- "no-unused-expressions": [
159
- "error",
160
- {
161
- allowShortCircuit: true,
162
- allowTaggedTemplates: true,
163
- allowTernary: true,
164
- },
165
- ],
166
- "no-unused-vars": [
167
- "error",
168
- {
169
- args: "none",
170
- caughtErrors: "none",
171
- ignoreRestSiblings: true,
172
- vars: "all",
173
- },
174
- ],
175
- "no-use-before-define": [
176
- "error",
177
- { classes: false, functions: false, variables: true },
178
- ],
179
- "no-useless-backreference": "error",
180
- "no-useless-call": "error",
181
- "no-useless-catch": "error",
182
- "no-useless-computed-key": "error",
183
- "no-useless-constructor": "error",
184
- "no-useless-rename": "error",
185
- "no-useless-return": "error",
186
- "no-var": "error",
187
- "no-with": "error",
188
- "object-shorthand": [
189
- "error",
190
- "always",
191
- {
192
- avoidQuotes: true,
193
- ignoreConstructors: false,
194
- },
195
- ],
196
- "one-var": ["error", { initialized: "never" }],
197
- "prefer-arrow-callback": [
198
- "error",
199
- {
200
- allowNamedFunctions: false,
201
- allowUnboundThis: true,
202
- },
203
- ],
204
- "prefer-const": [
205
- "error",
206
- {
207
- destructuring: "all",
208
- ignoreReadBeforeAssign: true,
209
- },
210
- ],
211
- "prefer-exponentiation-operator": "error",
212
- "prefer-promise-reject-errors": "error",
213
- "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
214
- "prefer-rest-params": "error",
215
- "prefer-spread": "error",
216
- "prefer-template": "error",
217
- "sort-imports": "off", // use `perfectionist/sort-imports` instead
218
- /**
219
- * previously used this before switching to `perfectionist/sort-imports`
220
- * "sort-imports": [
221
- * "error",
222
- * {
223
- * allowSeparatedGroups: false,
224
- * ignoreCase: false,
225
- * ignoreDeclarationSort: true,
226
- * ignoreMemberSort: false,
227
- * memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
228
- * },
229
- * ],
230
- */
231
- "symbol-description": "error",
232
- "unicode-bom": ["error", "never"],
233
- "unused-imports/no-unused-imports": isInEditor ? "off" : "error",
234
- "unused-imports/no-unused-vars": [
235
- "error",
236
- {
237
- args: "after-used",
238
- argsIgnorePattern: "^_",
239
- ignoreRestSiblings: true,
240
- vars: "all",
241
- varsIgnorePattern: "^_",
242
- },
243
- ],
244
- "use-isnan": [
245
- "error",
246
- { enforceForIndexOf: true, enforceForSwitchCase: true },
247
- ],
248
- "valid-typeof": ["error", { requireStringLiterals: true }],
249
- "vars-on-top": "error",
250
- yoda: ["error", "never"],
251
- ...overrides,
252
- },
253
- },
254
- {
255
- files: [`scripts/${GLOB_JS}`, `cli.${GLOB_JS_SRC_EXT}`],
256
- name: "jsse/scripts-overrides",
257
- rules: {
258
- "no-console": "off",
259
- },
260
- },
261
- ];
262
- };
@@ -1,2 +0,0 @@
1
- import type { EslintConfigFn } from "../types.js";
2
- export declare const jsdoc: EslintConfigFn;
@@ -1,31 +0,0 @@
1
- import { importPluginJsdoc } from "../plugins.js";
2
- export const jsdoc = async () => {
3
- const { pluginJsdoc } = await importPluginJsdoc();
4
- return [
5
- {
6
- name: "jsse/jsdoc",
7
- plugins: {
8
- jsdoc: pluginJsdoc,
9
- },
10
- rules: {
11
- "jsdoc/check-access": "warn",
12
- "jsdoc/check-alignment": "warn",
13
- "jsdoc/check-param-names": "warn",
14
- "jsdoc/check-property-names": "warn",
15
- "jsdoc/check-types": "warn",
16
- "jsdoc/empty-tags": "warn",
17
- "jsdoc/implements-on-classes": "warn",
18
- "jsdoc/multiline-blocks": "warn",
19
- "jsdoc/no-defaults": "warn",
20
- "jsdoc/no-multi-asterisks": "warn",
21
- "jsdoc/require-param-name": "warn",
22
- "jsdoc/require-property": "warn",
23
- "jsdoc/require-property-description": "warn",
24
- "jsdoc/require-property-name": "warn",
25
- "jsdoc/require-returns-check": "warn",
26
- "jsdoc/require-returns-description": "warn",
27
- "jsdoc/require-yields-check": "warn",
28
- },
29
- },
30
- ];
31
- };
@@ -1,4 +0,0 @@
1
- import type { EslintConfigFn, OptionsOverrides, OptionsStylistic } from "../types.js";
2
- type JsoncOptions = OptionsStylistic & OptionsOverrides;
3
- export declare const jsonc: EslintConfigFn<JsoncOptions>;
4
- export {};
@@ -1,76 +0,0 @@
1
- import { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from "../globs.js";
2
- import { importJsoncLibs } from "../plugins.js";
3
- export const jsonc = async (options) => {
4
- const { overrides = {}, stylistic = true } = options ?? {};
5
- const { indent = 2 } = typeof stylistic === "boolean" ? {} : stylistic;
6
- const { parserJsonc, pluginJsonc } = await importJsoncLibs();
7
- return [
8
- {
9
- name: "jsse/jsonc/setup",
10
- plugins: {
11
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
12
- jsonc: pluginJsonc,
13
- },
14
- },
15
- {
16
- files: [GLOB_JSON, GLOB_JSON5, GLOB_JSONC],
17
- ignores: ["*.min.json"],
18
- languageOptions: {
19
- parser: parserJsonc,
20
- },
21
- name: "jsse/jsonc/rules",
22
- rules: {
23
- "jsonc/no-bigint-literals": "error",
24
- "jsonc/no-binary-expression": "error",
25
- "jsonc/no-binary-numeric-literals": "error",
26
- "jsonc/no-dupe-keys": "error",
27
- "jsonc/no-escape-sequence-in-identifier": "error",
28
- "jsonc/no-floating-decimal": "error",
29
- "jsonc/no-hexadecimal-numeric-literals": "error",
30
- "jsonc/no-infinity": "error",
31
- "jsonc/no-multi-str": "error",
32
- "jsonc/no-nan": "error",
33
- "jsonc/no-number-props": "error",
34
- "jsonc/no-numeric-separators": "error",
35
- "jsonc/no-octal": "error",
36
- "jsonc/no-octal-escape": "error",
37
- "jsonc/no-octal-numeric-literals": "error",
38
- "jsonc/no-parenthesized": "error",
39
- "jsonc/no-plus-sign": "error",
40
- "jsonc/no-regexp-literals": "error",
41
- "jsonc/no-sparse-arrays": "error",
42
- "jsonc/no-template-literals": "error",
43
- "jsonc/no-undefined-value": "error",
44
- "jsonc/no-unicode-codepoint-escapes": "error",
45
- "jsonc/no-useless-escape": "error",
46
- "jsonc/space-unary-ops": "error",
47
- "jsonc/valid-json-number": "error",
48
- "jsonc/vue-custom-block/no-parsing-error": "error",
49
- ...(stylistic
50
- ? {
51
- "jsonc/array-bracket-spacing": ["error", "never"],
52
- "jsonc/comma-dangle": ["error", "never"],
53
- "jsonc/comma-style": ["error", "last"],
54
- "jsonc/indent": ["error", indent],
55
- "jsonc/key-spacing": [
56
- "error",
57
- { afterColon: true, beforeColon: false },
58
- ],
59
- "jsonc/object-curly-newline": [
60
- "error",
61
- { consistent: true, multiline: true },
62
- ],
63
- "jsonc/object-curly-spacing": ["error", "always"],
64
- "jsonc/object-property-newline": [
65
- "error",
66
- { allowMultiplePropertiesPerLine: true },
67
- ],
68
- "jsonc/quote-props": "error",
69
- "jsonc/quotes": "error",
70
- }
71
- : {}),
72
- ...overrides,
73
- },
74
- },
75
- ];
76
- };
@@ -1,4 +0,0 @@
1
- import type { EslintConfigFn, OptionsComponentExts, OptionsOverrides } from "../types.js";
2
- type MarkdownOptions = OptionsComponentExts & OptionsOverrides;
3
- export declare const markdown: EslintConfigFn<MarkdownOptions>;
4
- export {};
@@ -1,122 +0,0 @@
1
- import { mergeProcessors, processorPassThrough } from "eslint-merge-processors";
2
- import { GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, } from "../globs.js";
3
- import { importPluginMarkdown } from "../plugins.js";
4
- import { parserPlain } from "../utils.js";
5
- import { typescriptRulesTypeAware } from "./ts/typescript-rules.js";
6
- export const markdown = async (options) => {
7
- const { componentExts = [], overrides = {} } = options ?? {};
8
- const files = [GLOB_MARKDOWN];
9
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
10
- const { pluginMarkdown } = await importPluginMarkdown();
11
- const tsRulesOff = Object.fromEntries(
12
- // @ts-expect-error - undefined
13
- Object.keys(typescriptRulesTypeAware()).map((key) => [
14
- `@typescript-eslint/${key}`,
15
- "off",
16
- ]));
17
- const processor = mergeProcessors([
18
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
19
- pluginMarkdown.processors.markdown,
20
- processorPassThrough,
21
- ]);
22
- return [
23
- {
24
- name: "jsse/markdown/setup",
25
- plugins: {
26
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
27
- markdown: pluginMarkdown,
28
- },
29
- },
30
- // {
31
- // files: [GLOB_MARKDOWN],
32
- // name: "jsse/markdown/processor",
33
- // processor: "markdown/markdown",
34
- // },
35
- {
36
- files,
37
- ignores: [GLOB_MARKDOWN_IN_MARKDOWN],
38
- name: "jsse/markdown/processor",
39
- // `eslint-plugin-markdown` only creates virtual files for code blocks,
40
- // but not the markdown file itself. We use `eslint-merge-processors` to
41
- // add a pass-through processor for the markdown file itself.
42
- processor,
43
- },
44
- {
45
- files,
46
- languageOptions: {
47
- parser: parserPlain,
48
- },
49
- name: "jsse/markdown/parser",
50
- },
51
- {
52
- files: [
53
- GLOB_MARKDOWN_CODE,
54
- ...componentExts.map((ext) => `${GLOB_MARKDOWN}/**/*.${ext}`),
55
- ],
56
- languageOptions: {
57
- parserOptions: {
58
- ecmaFeatures: {
59
- impliedStrict: true,
60
- },
61
- },
62
- },
63
- name: "jsse/markdown/rules",
64
- rules: {
65
- "@typescript-eslint/await-thenable": "off",
66
- "@typescript-eslint/consistent-type-imports": "off",
67
- "@typescript-eslint/dot-notation": "off",
68
- "@typescript-eslint/no-floating-promises": "off",
69
- "@typescript-eslint/no-for-in-array": "off",
70
- "@typescript-eslint/no-implied-eval": "off",
71
- "@typescript-eslint/no-misused-promises": "off",
72
- "@typescript-eslint/no-namespace": "off",
73
- "@typescript-eslint/no-redeclare": "off",
74
- "@typescript-eslint/no-require-imports": "off",
75
- "@typescript-eslint/no-throw-literal": "off",
76
- "@typescript-eslint/no-unnecessary-type-assertion": "off",
77
- "@typescript-eslint/no-unsafe-argument": "off",
78
- "@typescript-eslint/no-unsafe-assignment": "off",
79
- "@typescript-eslint/no-unsafe-call": "off",
80
- "@typescript-eslint/no-unsafe-member-access": "off",
81
- "@typescript-eslint/no-unsafe-return": "off",
82
- "@typescript-eslint/no-unused-vars": "off",
83
- "@typescript-eslint/no-use-before-define": "off",
84
- "@typescript-eslint/no-var-requires": "off",
85
- "@typescript-eslint/restrict-plus-operands": "off",
86
- "@typescript-eslint/restrict-template-expressions": "off",
87
- "@typescript-eslint/unbound-method": "off",
88
- "n/prefer-global/buffer": "off",
89
- "n/prefer-global/process": "off",
90
- "no-alert": "off",
91
- "no-console": "off",
92
- "no-undef": "off",
93
- "no-unused-expressions": "off",
94
- "no-unused-vars": "off",
95
- "object-curly-newline": "off",
96
- "style/comma-dangle": "off",
97
- "style/eol-last": "off",
98
- "unicode-bom": "off",
99
- "unused-imports/no-unused-imports": "off",
100
- "unused-imports/no-unused-vars": "off",
101
- // Type aware rules
102
- ...tsRulesOff,
103
- ...overrides,
104
- },
105
- },
106
- {
107
- files: ["**/README.md", "**/README.md/**"],
108
- languageOptions: {
109
- parserOptions: {
110
- ecmaFeatures: {
111
- impliedStrict: true,
112
- },
113
- },
114
- },
115
- name: "jsse/markdown/rules/readme",
116
- rules: {
117
- "unicorn/filename-case": "off",
118
- "unicorn/no-null": "off",
119
- },
120
- },
121
- ];
122
- };
@@ -1,2 +0,0 @@
1
- import type { EslintConfigFn } from "../types.js";
2
- export declare const n: EslintConfigFn;
@@ -1,21 +0,0 @@
1
- import { pluginN } from "../plugins.js";
2
- export const n = async () => {
3
- return [
4
- {
5
- name: "jsse/n",
6
- plugins: {
7
- n: pluginN,
8
- },
9
- rules: {
10
- "n/handle-callback-err": ["error", "^(err|error)$"],
11
- "n/no-deprecated-api": "error",
12
- "n/no-exports-assign": "error",
13
- "n/no-new-require": "error",
14
- "n/no-path-concat": "error",
15
- "n/prefer-global/buffer": ["error", "never"],
16
- "n/prefer-global/process": ["error", "never"],
17
- "n/process-exit-as-throw": "error",
18
- },
19
- },
20
- ];
21
- };
@@ -1,4 +0,0 @@
1
- import type { EslintConfigFn, OptionsIsInEditor, OptionsOverrides } from "../types.js";
2
- type TestOptions = OptionsIsInEditor & OptionsOverrides;
3
- export declare const noOnlyTests: EslintConfigFn<TestOptions>;
4
- export {};
@@ -1,31 +0,0 @@
1
- import { GLOB_TESTS } from "../globs.js";
2
- import { interopDefault, isCI } from "../utils.js";
3
- export const noOnlyTests = async (options = {}) => {
4
- const { isInEditor = false, overrides = {} } = options;
5
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
6
- const pluginNoOnlyTests = await interopDefault(
7
- // @ts-expect-error - types are incorrect/missing
8
- import("eslint-plugin-no-only-tests"));
9
- return [
10
- {
11
- name: "jsse/no-only-tests/setup",
12
- plugins: {
13
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
14
- "no-only-tests": pluginNoOnlyTests,
15
- },
16
- },
17
- {
18
- files: GLOB_TESTS,
19
- name: "jsse/no-only-tests/rules",
20
- rules: {
21
- "no-only-tests/no-only-tests": isInEditor
22
- ? "off"
23
- : isCI()
24
- ? "error"
25
- : "warn",
26
- "unicorn/no-null": "off",
27
- ...overrides,
28
- },
29
- },
30
- ];
31
- };
@@ -1,7 +0,0 @@
1
- import type { EslintConfigFn } from "../types.js";
2
- /**
3
- * Optional perfectionist plugin for props and items sorting.
4
- *
5
- * @see https://github.com/azat-io/eslint-plugin-perfectionist
6
- */
7
- export declare const perfectionist: EslintConfigFn;
@@ -1,60 +0,0 @@
1
- import { pluginPerfectionist } from "../plugins.js";
2
- /**
3
- * Optional perfectionist plugin for props and items sorting.
4
- *
5
- * @see https://github.com/azat-io/eslint-plugin-perfectionist
6
- */
7
- export const perfectionist = async () => {
8
- return [
9
- {
10
- name: "jsse/perfectionist",
11
- plugins: {
12
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
13
- perfectionist: pluginPerfectionist,
14
- },
15
- rules: {
16
- "perfectionist/sort-exports": [
17
- "error",
18
- { order: "asc", type: "natural" },
19
- ],
20
- "perfectionist/sort-imports": [
21
- "error",
22
- {
23
- customGroups: {
24
- type: {
25
- react: ["^react$", "^react-.+", "^react-.+/.+$"],
26
- },
27
- value: {
28
- react: ["^react$", "^react-.+", "^react-.+/.+$"],
29
- },
30
- },
31
- groups: [
32
- "react", // react and react-* packages come first if they exist
33
- "type",
34
- "builtin",
35
- "external",
36
- "internal-type",
37
- "internal",
38
- ["parent-type", "sibling-type", "index-type"],
39
- ["parent", "sibling", "index"],
40
- "object",
41
- "unknown",
42
- ],
43
- internalPattern: ["^~/.+", "^@/.+"],
44
- newlinesBetween: "ignore",
45
- order: "asc",
46
- type: "natural",
47
- },
48
- ],
49
- "perfectionist/sort-named-exports": [
50
- "error",
51
- { order: "asc", type: "natural" },
52
- ],
53
- "perfectionist/sort-named-imports": [
54
- "error",
55
- { order: "asc", type: "natural" },
56
- ],
57
- },
58
- },
59
- ];
60
- };
@@ -1,2 +0,0 @@
1
- import type { EslintConfigFn } from "../types.js";
2
- export declare const pnpm: EslintConfigFn;