@ghettoddos/eslint-config 1.4.0 → 1.5.0
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/dist/index.d.ts +139 -2
- package/dist/index.js +65 -15
- package/package.json +6 -1
package/dist/index.d.ts
CHANGED
|
@@ -219,6 +219,105 @@ interface RuleOptions {
|
|
|
219
219
|
* @see https://eslint.org/docs/latest/rules/dot-notation
|
|
220
220
|
*/
|
|
221
221
|
'dot-notation'?: Linter.RuleEntry<DotNotation>;
|
|
222
|
+
/**
|
|
223
|
+
* Enforce Fx as a suffix for any effect created by Effector methods
|
|
224
|
+
* @see https://eslint.effector.dev/rules/enforce-effect-naming-convention
|
|
225
|
+
*/
|
|
226
|
+
'effector/enforce-effect-naming-convention'?: Linter.RuleEntry<[]>;
|
|
227
|
+
/**
|
|
228
|
+
* Enforce first capital letter for gate naming
|
|
229
|
+
* @see https://eslint.effector.dev/rules/enforce-gate-naming-convention
|
|
230
|
+
*/
|
|
231
|
+
'effector/enforce-gate-naming-convention'?: Linter.RuleEntry<[]>;
|
|
232
|
+
/**
|
|
233
|
+
* Enforce $ as a prefix or postfix for any store created by Effector methods
|
|
234
|
+
* @see https://eslint.effector.dev/rules/enforce-store-naming-convention
|
|
235
|
+
*/
|
|
236
|
+
'effector/enforce-store-naming-convention'?: Linter.RuleEntry<[]>;
|
|
237
|
+
/**
|
|
238
|
+
* Enforce options order for Effector methods
|
|
239
|
+
* @see https://eslint.effector.dev/rules/keep-options-order
|
|
240
|
+
*/
|
|
241
|
+
'effector/keep-options-order'?: Linter.RuleEntry<[]>;
|
|
242
|
+
/**
|
|
243
|
+
* Forbids `Event` and `Effect` usage without `useUnit` in React components.
|
|
244
|
+
* @see https://eslint.effector.dev/rules/mandatory-scope-binding
|
|
245
|
+
*/
|
|
246
|
+
'effector/mandatory-scope-binding'?: Linter.RuleEntry<[]>;
|
|
247
|
+
/**
|
|
248
|
+
* Forbids ambiguity targets in `sample` and `guard`
|
|
249
|
+
* @see https://eslint.effector.dev/rules/no-ambiguity-target
|
|
250
|
+
*/
|
|
251
|
+
'effector/no-ambiguity-target'?: Linter.RuleEntry<[]>;
|
|
252
|
+
/**
|
|
253
|
+
* Forbids unit duplicates on `source` and `clock``
|
|
254
|
+
* @see https://eslint.effector.dev/rules/no-duplicate-clock-or-source-array-values
|
|
255
|
+
*/
|
|
256
|
+
'effector/no-duplicate-clock-or-source-array-values'?: Linter.RuleEntry<[]>;
|
|
257
|
+
/**
|
|
258
|
+
* Forbids duplicate `.on` calls on store
|
|
259
|
+
* @see https://eslint.effector.dev/rules/no-duplicate-on
|
|
260
|
+
*/
|
|
261
|
+
'effector/no-duplicate-on'?: Linter.RuleEntry<[]>;
|
|
262
|
+
/**
|
|
263
|
+
* Prefer `sample` over `forward`
|
|
264
|
+
* @see https://eslint.effector.dev/rules/no-forward
|
|
265
|
+
*/
|
|
266
|
+
'effector/no-forward'?: Linter.RuleEntry<[]>;
|
|
267
|
+
/**
|
|
268
|
+
* Forbids `.getState` calls on any Effector store
|
|
269
|
+
* @see https://eslint.effector.dev/rules/no-getState
|
|
270
|
+
*/
|
|
271
|
+
'effector/no-getState'?: Linter.RuleEntry<[]>;
|
|
272
|
+
/**
|
|
273
|
+
* Prefer `sample` over `guard`
|
|
274
|
+
* @see https://eslint.effector.dev/rules/no-guard
|
|
275
|
+
*/
|
|
276
|
+
'effector/no-guard'?: Linter.RuleEntry<[]>;
|
|
277
|
+
/**
|
|
278
|
+
* Disallow the use of patronum `debug`
|
|
279
|
+
* @see https://eslint.effector.dev/rules/no-patronum-debug
|
|
280
|
+
*/
|
|
281
|
+
'effector/no-patronum-debug'?: Linter.RuleEntry<[]>;
|
|
282
|
+
/**
|
|
283
|
+
* Forbids unnecessary combinations in `clock`, `source` and `forward`
|
|
284
|
+
* @see https://eslint.effector.dev/rules/no-unnecessary-combination
|
|
285
|
+
*/
|
|
286
|
+
'effector/no-unnecessary-combination'?: Linter.RuleEntry<[]>;
|
|
287
|
+
/**
|
|
288
|
+
* Forbids unnecessary duplication in `clock` and `source`
|
|
289
|
+
* @see https://eslint.effector.dev/rules/no-unnecessary-duplication
|
|
290
|
+
*/
|
|
291
|
+
'effector/no-unnecessary-duplication'?: Linter.RuleEntry<[]>;
|
|
292
|
+
/**
|
|
293
|
+
* Forbids useless calls of `sample` and `guard`
|
|
294
|
+
* @see https://eslint.effector.dev/rules/no-useless-methods
|
|
295
|
+
*/
|
|
296
|
+
'effector/no-useless-methods'?: Linter.RuleEntry<[]>;
|
|
297
|
+
/**
|
|
298
|
+
* Avoid `.watch` calls on any Effector unit or operator
|
|
299
|
+
* @see https://eslint.effector.dev/rules/no-watch
|
|
300
|
+
*/
|
|
301
|
+
'effector/no-watch'?: Linter.RuleEntry<[]>;
|
|
302
|
+
/**
|
|
303
|
+
* Prefer `sample` over `forward` with `.map`/`.prepend`
|
|
304
|
+
* @see https://eslint.effector.dev/rules/prefer-sample-over-forward-with-mapping
|
|
305
|
+
*/
|
|
306
|
+
'effector/prefer-sample-over-forward-with-mapping'?: Linter.RuleEntry<[]>;
|
|
307
|
+
/**
|
|
308
|
+
* Suggests to replace old hooks `useStore`/`useEvent` by the new one `useUnit`
|
|
309
|
+
* @see https://eslint.effector.dev/rules/prefer-useUnit
|
|
310
|
+
*/
|
|
311
|
+
'effector/prefer-useUnit'?: Linter.RuleEntry<[]>;
|
|
312
|
+
/**
|
|
313
|
+
* @see https://eslint.effector.dev/rules/require-pickup-in-persist
|
|
314
|
+
*/
|
|
315
|
+
'effector/require-pickup-in-persist'?: Linter.RuleEntry<[]>;
|
|
316
|
+
/**
|
|
317
|
+
* Forbids mix of async functions and effects calls in effect handlers.
|
|
318
|
+
* @see https://eslint.effector.dev/rules/strict-effect-handlers
|
|
319
|
+
*/
|
|
320
|
+
'effector/strict-effect-handlers'?: Linter.RuleEntry<[]>;
|
|
222
321
|
/**
|
|
223
322
|
* Require or disallow newline at the end of files
|
|
224
323
|
* @see https://eslint.org/docs/latest/rules/eol-last
|
|
@@ -12794,7 +12893,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
|
|
|
12794
12893
|
onlyEquality?: boolean;
|
|
12795
12894
|
}];
|
|
12796
12895
|
// Names of all the configs
|
|
12797
|
-
type ConfigNames = 'eslint-comments/rules' | 'formatter/setup' | 'imports/rules' | 'javascript/setup' | 'javascript/rules' | 'jsx/setup' | 'jsonc/setup' | 'jsonc/rules' | 'markdown/setup' | 'markdown/processor' | 'markdown/parser' | 'markdown/disables' | 'node/rules' | 'perfectionist/setup' | 'pnpm/package-json' | 'pnpm/pnpm-workspace-yaml' | 'react/setup' | 'react/rules' | 'sort/package-json' | 'stylistic/rules' | 'toml/setup' | 'toml/rules' | 'regexp/rules' | 'typescript/setup' | 'typescript/parser' | 'typescript/rules' | 'unicorn/rules' | 'unocss' | 'yaml/setup' | 'yaml/rules' | 'yaml/pnpm-workspace' | 'next/rules' | 'jsx-a11y/rules';
|
|
12896
|
+
type ConfigNames = 'eslint-comments/rules' | 'formatter/setup' | 'imports/rules' | 'javascript/setup' | 'javascript/rules' | 'jsx/setup' | 'jsonc/setup' | 'jsonc/rules' | 'markdown/setup' | 'markdown/processor' | 'markdown/parser' | 'markdown/disables' | 'node/rules' | 'perfectionist/setup' | 'pnpm/package-json' | 'pnpm/pnpm-workspace-yaml' | 'react/setup' | 'react/rules' | 'sort/package-json' | 'stylistic/rules' | 'toml/setup' | 'toml/rules' | 'regexp/rules' | 'typescript/setup' | 'typescript/parser' | 'typescript/rules' | 'unicorn/rules' | 'unocss' | 'yaml/setup' | 'yaml/rules' | 'yaml/pnpm-workspace' | 'next/rules' | 'jsx-a11y/rules' | 'effector/setup' | 'effector/rules';
|
|
12798
12897
|
//#endregion
|
|
12799
12898
|
//#region src/vendor/prettier-types.d.ts
|
|
12800
12899
|
/**
|
|
@@ -12989,6 +13088,32 @@ interface OptionsUnicorn extends OptionsOverrides {
|
|
|
12989
13088
|
*/
|
|
12990
13089
|
allRecommended?: boolean;
|
|
12991
13090
|
}
|
|
13091
|
+
interface OptionsEffector extends OptionsOverrides {
|
|
13092
|
+
/**
|
|
13093
|
+
* Include react rules.
|
|
13094
|
+
*
|
|
13095
|
+
* @default auto-detect based on the dependencies
|
|
13096
|
+
*/
|
|
13097
|
+
react?: boolean;
|
|
13098
|
+
/**
|
|
13099
|
+
* Include patronum rules.
|
|
13100
|
+
*
|
|
13101
|
+
* @default auto-detect based on the dependencies
|
|
13102
|
+
*/
|
|
13103
|
+
patronum?: boolean;
|
|
13104
|
+
/**
|
|
13105
|
+
* Include future rules.
|
|
13106
|
+
*
|
|
13107
|
+
* @default false
|
|
13108
|
+
*/
|
|
13109
|
+
future?: boolean;
|
|
13110
|
+
/**
|
|
13111
|
+
* Include scope rules.
|
|
13112
|
+
*
|
|
13113
|
+
* @default false
|
|
13114
|
+
*/
|
|
13115
|
+
scope?: boolean;
|
|
13116
|
+
}
|
|
12992
13117
|
interface OptionsTypeScriptParserOptions {
|
|
12993
13118
|
/**
|
|
12994
13119
|
* Additional parser options for TypeScript.
|
|
@@ -13149,6 +13274,15 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
|
|
|
13149
13274
|
* @default auto-detect based on the dependencies
|
|
13150
13275
|
*/
|
|
13151
13276
|
next?: boolean | OptionsOverrides;
|
|
13277
|
+
/**
|
|
13278
|
+
* Enable effector rules.
|
|
13279
|
+
*
|
|
13280
|
+
* Requires installing:
|
|
13281
|
+
* - `eslint-plugin-effector`
|
|
13282
|
+
*
|
|
13283
|
+
* @default auto-detect based on the dependencies
|
|
13284
|
+
*/
|
|
13285
|
+
effector?: boolean | OptionsEffector;
|
|
13152
13286
|
/**
|
|
13153
13287
|
* Enable unocss rules.
|
|
13154
13288
|
*
|
|
@@ -13241,6 +13375,9 @@ declare function comments(): Promise<TypedFlatConfigItem[]>;
|
|
|
13241
13375
|
//#region src/configs/disables.d.ts
|
|
13242
13376
|
declare function disables(): Promise<TypedFlatConfigItem[]>;
|
|
13243
13377
|
//#endregion
|
|
13378
|
+
//#region src/configs/effector.d.ts
|
|
13379
|
+
declare function effector(options?: OptionsEffector): Promise<TypedFlatConfigItem[]>;
|
|
13380
|
+
//#endregion
|
|
13244
13381
|
//#region src/configs/formatters.d.ts
|
|
13245
13382
|
declare function formatters(options?: OptionsFormatters | true, stylistic?: StylisticConfig): Promise<TypedFlatConfigItem[]>;
|
|
13246
13383
|
//#endregion
|
|
@@ -13404,4 +13541,4 @@ declare function ensurePackages(packages: (string | undefined)[]): Promise<void>
|
|
|
13404
13541
|
declare function isInEditorEnv(): boolean;
|
|
13405
13542
|
declare function isInGitHooksOrLintStaged(): boolean;
|
|
13406
13543
|
//#endregion
|
|
13407
|
-
export { Awaitable, ConfigNames, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, ResolvedOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, combine, comments, config, config as default, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsonc, jsx, jsxA11y, markdown, next, node, parserPlain, perfectionist, pnpm, react, regexp, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, toml, typescript, unicorn, unocss, yaml };
|
|
13544
|
+
export { Awaitable, ConfigNames, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsEffector, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, ResolvedOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, combine, comments, config, config as default, defaultPluginRenaming, disables, effector, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsonc, jsx, jsxA11y, markdown, next, node, parserPlain, perfectionist, pnpm, react, regexp, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, toml, typescript, unicorn, unocss, yaml };
|
package/dist/index.js
CHANGED
|
@@ -125,6 +125,18 @@ async function disables() {
|
|
|
125
125
|
];
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
//#endregion
|
|
129
|
+
//#region src/constants.ts
|
|
130
|
+
const ReactPackages = ["react", "nest"];
|
|
131
|
+
const ReactRefreshAllowConstantExportPackages = ["vite"];
|
|
132
|
+
const ReactRouterPackages = [
|
|
133
|
+
"@react-router/node",
|
|
134
|
+
"@react-router/react",
|
|
135
|
+
"@react-router/serve",
|
|
136
|
+
"@react-router/dev"
|
|
137
|
+
];
|
|
138
|
+
const NextJsPackages = ["next"];
|
|
139
|
+
|
|
128
140
|
//#endregion
|
|
129
141
|
//#region src/utils.ts
|
|
130
142
|
const scopeUrl = fileURLToPath(new URL(".", import.meta.url));
|
|
@@ -203,6 +215,49 @@ function isInGitHooksOrLintStaged() {
|
|
|
203
215
|
return !!(process.env.GIT_PARAMS || process.env.VSCODE_GIT_COMMAND || process.env.npm_lifecycle_script?.startsWith("lint-staged"));
|
|
204
216
|
}
|
|
205
217
|
|
|
218
|
+
//#endregion
|
|
219
|
+
//#region src/configs/effector.ts
|
|
220
|
+
async function effector(options = {}) {
|
|
221
|
+
const { future = false, overrides = {}, patronum = isPackageExists("patronum"), react: react$1 = ReactPackages.some((i) => isPackageExists(i)), scope = false } = options;
|
|
222
|
+
await ensurePackages(["eslint-plugin-effector"]);
|
|
223
|
+
const [pluginEffector] = await Promise.all([interopDefault(import("eslint-plugin-effector"))]);
|
|
224
|
+
return [{
|
|
225
|
+
name: "effector/setup",
|
|
226
|
+
plugins: { effector: pluginEffector }
|
|
227
|
+
}, {
|
|
228
|
+
name: "effector/rules",
|
|
229
|
+
rules: {
|
|
230
|
+
"effector/enforce-effect-naming-convention": "error",
|
|
231
|
+
"effector/enforce-store-naming-convention": "error",
|
|
232
|
+
"effector/keep-options-order": "warn",
|
|
233
|
+
"effector/no-ambiguity-target": "warn",
|
|
234
|
+
"effector/no-duplicate-on": "error",
|
|
235
|
+
"effector/no-getState": "error",
|
|
236
|
+
"effector/no-unnecessary-combination": "warn",
|
|
237
|
+
"effector/no-unnecessary-duplication": "warn",
|
|
238
|
+
"effector/no-useless-methods": "error",
|
|
239
|
+
"effector/no-watch": "warn",
|
|
240
|
+
"effector/prefer-sample-over-forward-with-mapping": "warn",
|
|
241
|
+
...react$1 ? {
|
|
242
|
+
"effector/enforce-gate-naming-convention": "error",
|
|
243
|
+
"effector/mandatory-scope-binding": "error",
|
|
244
|
+
"effector/prefer-useUnit": "warn"
|
|
245
|
+
} : {},
|
|
246
|
+
...patronum ? { "effector/no-patronum-debug": "error" } : {},
|
|
247
|
+
...scope ? {
|
|
248
|
+
"effector/require-pickup-in-persist": "error",
|
|
249
|
+
"effector/strict-effect-handlers": "error"
|
|
250
|
+
} : {},
|
|
251
|
+
...future ? {
|
|
252
|
+
"effector/no-forward": "warn",
|
|
253
|
+
"effector/no-guard": "warn",
|
|
254
|
+
"effector/prefer-sample-over-forward-with-mapping": "off"
|
|
255
|
+
} : {},
|
|
256
|
+
...overrides
|
|
257
|
+
}
|
|
258
|
+
}];
|
|
259
|
+
}
|
|
260
|
+
|
|
206
261
|
//#endregion
|
|
207
262
|
//#region src/configs/stylistic.ts
|
|
208
263
|
const StylisticConfigDefaults = {
|
|
@@ -687,12 +742,11 @@ async function jsx() {
|
|
|
687
742
|
|
|
688
743
|
//#endregion
|
|
689
744
|
//#region src/configs/jsx-a11y.ts
|
|
690
|
-
const NextJsPackages$1 = ["next"];
|
|
691
|
-
const isUsingNext = NextJsPackages$1.some((i) => isPackageExists(i));
|
|
692
745
|
async function jsxA11y(options = {}) {
|
|
693
746
|
const { overrides = {} } = options;
|
|
694
747
|
await ensurePackages(["eslint-plugin-jsx-a11y"]);
|
|
695
748
|
const [pluginJsxA11y] = await Promise.all([interopDefault(import("eslint-plugin-jsx-a11y"))]);
|
|
749
|
+
const isUsingNext = NextJsPackages.some((i) => isPackageExists(i));
|
|
696
750
|
return [{
|
|
697
751
|
name: "jsx-a11y/rules",
|
|
698
752
|
plugins: { "jsx-a11y": pluginJsxA11y },
|
|
@@ -908,14 +962,6 @@ async function pnpm() {
|
|
|
908
962
|
|
|
909
963
|
//#endregion
|
|
910
964
|
//#region src/configs/react.ts
|
|
911
|
-
const ReactRefreshAllowConstantExportPackages = ["vite"];
|
|
912
|
-
const ReactRouterPackages = [
|
|
913
|
-
"@react-router/node",
|
|
914
|
-
"@react-router/react",
|
|
915
|
-
"@react-router/serve",
|
|
916
|
-
"@react-router/dev"
|
|
917
|
-
];
|
|
918
|
-
const NextJsPackages = ["next"];
|
|
919
965
|
async function react(options = {}) {
|
|
920
966
|
const { files = [GLOB_SRC], filesTypeAware = [GLOB_TS, GLOB_TSX], ignoresTypeAware = [`${GLOB_MARKDOWN}/**`], overrides = {}, tsconfigPath } = options;
|
|
921
967
|
const isTypeAware = !!tsconfigPath;
|
|
@@ -927,7 +973,7 @@ async function react(options = {}) {
|
|
|
927
973
|
]);
|
|
928
974
|
const isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists(i));
|
|
929
975
|
const isUsingReactRouter = ReactRouterPackages.some((i) => isPackageExists(i));
|
|
930
|
-
const isUsingNext
|
|
976
|
+
const isUsingNext = NextJsPackages.some((i) => isPackageExists(i));
|
|
931
977
|
const plugins = pluginReact.configs.all.plugins;
|
|
932
978
|
return [
|
|
933
979
|
{
|
|
@@ -1014,7 +1060,7 @@ async function react(options = {}) {
|
|
|
1014
1060
|
"react-web-api/no-leaked-timeout": "warn",
|
|
1015
1061
|
"react-refresh/only-export-components": ["warn", {
|
|
1016
1062
|
allowConstantExport: isAllowConstantExport,
|
|
1017
|
-
allowExportNames: [...isUsingNext
|
|
1063
|
+
allowExportNames: [...isUsingNext ? [
|
|
1018
1064
|
"dynamic",
|
|
1019
1065
|
"dynamicParams",
|
|
1020
1066
|
"revalidate",
|
|
@@ -1604,7 +1650,6 @@ const flatConfigProps = [
|
|
|
1604
1650
|
"rules",
|
|
1605
1651
|
"settings"
|
|
1606
1652
|
];
|
|
1607
|
-
const ReactPackages = ["react", "nest"];
|
|
1608
1653
|
const defaultPluginRenaming = {
|
|
1609
1654
|
"@eslint-react": "react",
|
|
1610
1655
|
"@eslint-react/dom": "react-dom",
|
|
@@ -1627,7 +1672,8 @@ const defaultPluginRenaming = {
|
|
|
1627
1672
|
* The merged ESLint configurations.
|
|
1628
1673
|
*/
|
|
1629
1674
|
function config(options = {}, ...userConfigs) {
|
|
1630
|
-
const
|
|
1675
|
+
const isUsingReact = ReactPackages.some((i) => isPackageExists(i));
|
|
1676
|
+
const { autoRenamePlugins = true, componentExts = [], effector: enableEffector = isPackageExists("effector"), gitignore: enableGitignore = true, jsx: enableJsx = true, jsxA11y: enableJsxA11y = isUsingReact, next: enableNext = NextJsPackages.some((i) => isPackageExists(i)), pnpm: enableCatalogs = false, react: enableReact = isUsingReact, regexp: enableRegexp = true, typescript: enableTypeScript = isPackageExists("typescript"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false } = options;
|
|
1631
1677
|
let isInEditor = options.isInEditor;
|
|
1632
1678
|
if (isInEditor == null) {
|
|
1633
1679
|
isInEditor = isInEditorEnv();
|
|
@@ -1670,6 +1716,10 @@ function config(options = {}, ...userConfigs) {
|
|
|
1670
1716
|
}));
|
|
1671
1717
|
if (enableJsxA11y) configs$1.push(jsxA11y({ overrides: getOverrides(options, "jsxA11y") }));
|
|
1672
1718
|
if (enableNext) configs$1.push(next({ overrides: getOverrides(options, "next") }));
|
|
1719
|
+
if (enableEffector) configs$1.push(effector({
|
|
1720
|
+
...resolveSubOptions(options, "effector"),
|
|
1721
|
+
overrides: getOverrides(options, "effector")
|
|
1722
|
+
}));
|
|
1673
1723
|
if (enableUnoCSS) configs$1.push(unocss({
|
|
1674
1724
|
...resolveSubOptions(options, "unocss"),
|
|
1675
1725
|
overrides: getOverrides(options, "unocss")
|
|
@@ -1721,4 +1771,4 @@ function getOverrides(options, key) {
|
|
|
1721
1771
|
var src_default = config;
|
|
1722
1772
|
|
|
1723
1773
|
//#endregion
|
|
1724
|
-
export { GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, combine, comments, config, src_default as default, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsonc, jsx, jsxA11y, markdown, next, node, parserPlain, perfectionist, pnpm, react, regexp, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, toml, typescript, unicorn, unocss, yaml };
|
|
1774
|
+
export { GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVG, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, combine, comments, config, src_default as default, defaultPluginRenaming, disables, effector, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsonc, jsx, jsxA11y, markdown, next, node, parserPlain, perfectionist, pnpm, react, regexp, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, toml, typescript, unicorn, unocss, yaml };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ghettoddos/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"description": "ghettoDdOS ESLint config",
|
|
6
6
|
"author": "ghettoDdOS <pen.egor2002@gamil.com> (https://github.com/ghettoDdOS/)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"@prettier/plugin-xml": "^3.4.1",
|
|
30
30
|
"@unocss/eslint-plugin": ">=0.50.0",
|
|
31
31
|
"eslint": "^9.10.0",
|
|
32
|
+
"eslint-plugin-effector": "^0.15.0",
|
|
32
33
|
"eslint-plugin-format": ">=0.1.0",
|
|
33
34
|
"eslint-plugin-jsx-a11y": "^6.10.2"
|
|
34
35
|
},
|
|
@@ -42,6 +43,9 @@
|
|
|
42
43
|
"@unocss/eslint-plugin": {
|
|
43
44
|
"optional": true
|
|
44
45
|
},
|
|
46
|
+
"eslint-plugin-effector": {
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
45
49
|
"eslint-plugin-format": {
|
|
46
50
|
"optional": true
|
|
47
51
|
},
|
|
@@ -89,6 +93,7 @@
|
|
|
89
93
|
"@unocss/eslint-plugin": "66.1.0-beta.3",
|
|
90
94
|
"bumpp": "^10.1.1",
|
|
91
95
|
"eslint": "^9.27.0",
|
|
96
|
+
"eslint-plugin-effector": "^0.15.0",
|
|
92
97
|
"eslint-plugin-format": "^1.0.1",
|
|
93
98
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
94
99
|
"eslint-typegen": "^2.2.0",
|