@debbl/eslint-config 3.10.1 → 3.10.2
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.cjs +75 -18
- package/dist/index.d.cts +2 -10
- package/dist/index.d.ts +2 -10
- package/dist/index.js +75 -17
- package/package.json +24 -25
package/dist/index.cjs
CHANGED
|
@@ -57,7 +57,6 @@ __export(index_exports, {
|
|
|
57
57
|
GLOB_YAML: () => GLOB_YAML,
|
|
58
58
|
combine: () => combine,
|
|
59
59
|
comments: () => comments,
|
|
60
|
-
config: () => config,
|
|
61
60
|
default: () => index_default,
|
|
62
61
|
defineConfig: () => defineConfig,
|
|
63
62
|
getConfigOptions: () => getConfigOptions,
|
|
@@ -756,7 +755,6 @@ async function perfectionist() {
|
|
|
756
755
|
var prettier = async ({ tailwindcss: tailwindcss2, ...options }) => {
|
|
757
756
|
const [pluginPrettier, configPrettier] = await Promise.all([
|
|
758
757
|
interopDefault(import("eslint-plugin-prettier")),
|
|
759
|
-
// @ts-expect-error missing types
|
|
760
758
|
interopDefault(import("eslint-config-prettier"))
|
|
761
759
|
]);
|
|
762
760
|
const defaultPrettierOptions = {
|
|
@@ -1243,8 +1241,8 @@ var typescript = async (options) => {
|
|
|
1243
1241
|
prefer: "type-imports"
|
|
1244
1242
|
}
|
|
1245
1243
|
],
|
|
1246
|
-
"@typescript-eslint/method-signature-style": ["error", "property"],
|
|
1247
1244
|
// https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
|
|
1245
|
+
"@typescript-eslint/method-signature-style": ["error", "property"],
|
|
1248
1246
|
"@typescript-eslint/no-dupe-class-members": "error",
|
|
1249
1247
|
"@typescript-eslint/no-dynamic-delete": "off",
|
|
1250
1248
|
"@typescript-eslint/no-empty-object-type": [
|
|
@@ -1395,9 +1393,9 @@ var vue = async (options = {}) => {
|
|
|
1395
1393
|
processor: pluginVue.processors[".vue"],
|
|
1396
1394
|
rules: {
|
|
1397
1395
|
...pluginVue.configs.base.rules,
|
|
1398
|
-
...pluginVue.configs["
|
|
1399
|
-
...pluginVue.configs["
|
|
1400
|
-
...pluginVue.configs["
|
|
1396
|
+
...pluginVue.configs["flat/essential"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
|
|
1397
|
+
...pluginVue.configs["flat/strongly-recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
|
|
1398
|
+
...pluginVue.configs["flat/recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
|
|
1401
1399
|
"node/prefer-global/process": "off",
|
|
1402
1400
|
"vue/block-order": [
|
|
1403
1401
|
"error",
|
|
@@ -1615,7 +1613,7 @@ var react = async (options) => {
|
|
|
1615
1613
|
{
|
|
1616
1614
|
name: "eslint/react/setup",
|
|
1617
1615
|
plugins: {
|
|
1618
|
-
"react
|
|
1616
|
+
"react": pluginReactX,
|
|
1619
1617
|
"react-dom": pluginReactDom,
|
|
1620
1618
|
"react-hooks-extra": pluginReactHooksExtra,
|
|
1621
1619
|
"react-naming-convention": pluginReactNamingConvention,
|
|
@@ -1647,12 +1645,73 @@ var react = async (options) => {
|
|
|
1647
1645
|
}
|
|
1648
1646
|
},
|
|
1649
1647
|
rules: {
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1648
|
+
// recommended rules from eslint-plugin-react-x https://eslint-react.xyz/docs/rules/overview#core-rules
|
|
1649
|
+
"react/jsx-no-duplicate-props": "warn",
|
|
1650
|
+
"react/jsx-uses-vars": "warn",
|
|
1651
|
+
"react/no-access-state-in-setstate": "error",
|
|
1652
|
+
"react/no-array-index-key": "warn",
|
|
1653
|
+
"react/no-children-count": "warn",
|
|
1654
|
+
"react/no-children-for-each": "warn",
|
|
1655
|
+
"react/no-children-map": "warn",
|
|
1656
|
+
"react/no-children-only": "warn",
|
|
1657
|
+
"react/no-children-to-array": "warn",
|
|
1658
|
+
"react/no-clone-element": "warn",
|
|
1659
|
+
"react/no-comment-textnodes": "warn",
|
|
1660
|
+
"react/no-component-will-mount": "error",
|
|
1661
|
+
"react/no-component-will-receive-props": "error",
|
|
1662
|
+
"react/no-component-will-update": "error",
|
|
1663
|
+
"react/no-context-provider": "warn",
|
|
1664
|
+
"react/no-create-ref": "error",
|
|
1665
|
+
"react/no-default-props": "error",
|
|
1666
|
+
"react/no-direct-mutation-state": "error",
|
|
1667
|
+
"react/no-duplicate-key": "warn",
|
|
1668
|
+
"react/no-forward-ref": "warn",
|
|
1669
|
+
"react/no-implicit-key": "warn",
|
|
1670
|
+
"react/no-missing-key": "error",
|
|
1671
|
+
"react/no-nested-component-definitions": "error",
|
|
1672
|
+
"react/no-prop-types": "error",
|
|
1673
|
+
"react/no-redundant-should-component-update": "error",
|
|
1674
|
+
"react/no-set-state-in-component-did-mount": "warn",
|
|
1675
|
+
"react/no-set-state-in-component-did-update": "warn",
|
|
1676
|
+
"react/no-set-state-in-component-will-update": "warn",
|
|
1677
|
+
"react/no-string-refs": "error",
|
|
1678
|
+
"react/no-unsafe-component-will-mount": "warn",
|
|
1679
|
+
"react/no-unsafe-component-will-receive-props": "warn",
|
|
1680
|
+
"react/no-unsafe-component-will-update": "warn",
|
|
1681
|
+
"react/no-unstable-context-value": "warn",
|
|
1682
|
+
"react/no-unstable-default-props": "warn",
|
|
1683
|
+
"react/no-unused-class-component-members": "warn",
|
|
1684
|
+
"react/no-unused-state": "warn",
|
|
1685
|
+
"react/no-use-context": "warn",
|
|
1686
|
+
"react/no-useless-forward-ref": "warn",
|
|
1687
|
+
// recommended rules from eslint-plugin-react-dom https://eslint-react.xyz/docs/rules/overview#dom-rules
|
|
1688
|
+
"react-dom/no-dangerously-set-innerhtml": "warn",
|
|
1689
|
+
"react-dom/no-dangerously-set-innerhtml-with-children": "error",
|
|
1690
|
+
"react-dom/no-find-dom-node": "error",
|
|
1691
|
+
"react-dom/no-flush-sync": "error",
|
|
1692
|
+
"react-dom/no-hydrate": "error",
|
|
1693
|
+
"react-dom/no-missing-button-type": "warn",
|
|
1694
|
+
"react-dom/no-missing-iframe-sandbox": "warn",
|
|
1695
|
+
"react-dom/no-namespace": "error",
|
|
1696
|
+
"react-dom/no-render": "error",
|
|
1697
|
+
"react-dom/no-render-return-value": "error",
|
|
1698
|
+
"react-dom/no-script-url": "warn",
|
|
1699
|
+
"react-dom/no-unsafe-iframe-sandbox": "warn",
|
|
1700
|
+
"react-dom/no-unsafe-target-blank": "warn",
|
|
1701
|
+
"react-dom/no-use-form-state": "error",
|
|
1702
|
+
"react-dom/no-void-elements-with-children": "error",
|
|
1703
|
+
// recommended rules eslint-plugin-react-hooks https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks/src/rules
|
|
1704
|
+
"react-hooks/exhaustive-deps": "warn",
|
|
1705
|
+
"react-hooks/rules-of-hooks": "error",
|
|
1706
|
+
// recommended rules from eslint-plugin-react-hooks-extra https://eslint-react.xyz/docs/rules/overview#hooks-extra-rules
|
|
1707
|
+
"react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
|
|
1708
|
+
"react-hooks-extra/no-unnecessary-use-prefix": "warn",
|
|
1709
|
+
"react-hooks-extra/prefer-use-state-lazy-initialization": "warn",
|
|
1710
|
+
// recommended rules from eslint-plugin-react-web-api https://eslint-react.xyz/docs/rules/overview#web-api-rules
|
|
1711
|
+
"react-web-api/no-leaked-event-listener": "warn",
|
|
1712
|
+
"react-web-api/no-leaked-interval": "warn",
|
|
1713
|
+
"react-web-api/no-leaked-resize-observer": "warn",
|
|
1714
|
+
"react-web-api/no-leaked-timeout": "warn",
|
|
1656
1715
|
// React Refresh
|
|
1657
1716
|
"react-refresh/only-export-components": "warn",
|
|
1658
1717
|
// React Compiler
|
|
@@ -1694,7 +1753,7 @@ async function tailwindcss() {
|
|
|
1694
1753
|
}
|
|
1695
1754
|
|
|
1696
1755
|
// src/factory.ts
|
|
1697
|
-
function defineConfig(options = {}) {
|
|
1756
|
+
function defineConfig(options = {}, ...userConfigs) {
|
|
1698
1757
|
const {
|
|
1699
1758
|
ignores: enableIgnores = true,
|
|
1700
1759
|
vue: enableVue,
|
|
@@ -1771,13 +1830,12 @@ function defineConfig(options = {}) {
|
|
|
1771
1830
|
})
|
|
1772
1831
|
);
|
|
1773
1832
|
}
|
|
1774
|
-
const merged = combine(...configs,
|
|
1833
|
+
const merged = combine(...configs, ...userConfigs);
|
|
1775
1834
|
return merged;
|
|
1776
1835
|
}
|
|
1777
|
-
var config = defineConfig;
|
|
1778
1836
|
|
|
1779
1837
|
// src/index.ts
|
|
1780
|
-
var index_default =
|
|
1838
|
+
var index_default = defineConfig;
|
|
1781
1839
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1782
1840
|
0 && (module.exports = {
|
|
1783
1841
|
GLOB_ALL_SRC,
|
|
@@ -1807,7 +1865,6 @@ var index_default = config;
|
|
|
1807
1865
|
GLOB_YAML,
|
|
1808
1866
|
combine,
|
|
1809
1867
|
comments,
|
|
1810
|
-
config,
|
|
1811
1868
|
defineConfig,
|
|
1812
1869
|
getConfigOptions,
|
|
1813
1870
|
ignores,
|
package/dist/index.d.cts
CHANGED
|
@@ -210,20 +210,12 @@ interface OptionsConfig extends OptionsComponentExts {
|
|
|
210
210
|
* @default false
|
|
211
211
|
*/
|
|
212
212
|
tailwindcss?: boolean | "prettier";
|
|
213
|
-
/**
|
|
214
|
-
* Custom config
|
|
215
|
-
*/
|
|
216
|
-
customConfig?: ConfigItem[] | ConfigItem;
|
|
217
213
|
}
|
|
218
214
|
|
|
219
215
|
/**
|
|
220
216
|
* Construct an array of ESLint flat config items.
|
|
221
217
|
*/
|
|
222
|
-
declare function defineConfig(options?: OptionsConfig): Promise<ConfigItem[]>;
|
|
223
|
-
/**
|
|
224
|
-
* @deprecated Use `defineConfig` instead.
|
|
225
|
-
*/
|
|
226
|
-
declare const config: typeof defineConfig;
|
|
218
|
+
declare function defineConfig(options?: OptionsConfig, ...userConfigs: ConfigItem[]): Promise<ConfigItem[]>;
|
|
227
219
|
|
|
228
220
|
declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
|
|
229
221
|
declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
|
|
@@ -285,4 +277,4 @@ declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
|
|
|
285
277
|
} ? U : T>;
|
|
286
278
|
declare function getConfigOptions<T>(options: T): {};
|
|
287
279
|
|
|
288
|
-
export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments,
|
|
280
|
+
export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments, defineConfig as default, defineConfig, getConfigOptions, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
|
package/dist/index.d.ts
CHANGED
|
@@ -210,20 +210,12 @@ interface OptionsConfig extends OptionsComponentExts {
|
|
|
210
210
|
* @default false
|
|
211
211
|
*/
|
|
212
212
|
tailwindcss?: boolean | "prettier";
|
|
213
|
-
/**
|
|
214
|
-
* Custom config
|
|
215
|
-
*/
|
|
216
|
-
customConfig?: ConfigItem[] | ConfigItem;
|
|
217
213
|
}
|
|
218
214
|
|
|
219
215
|
/**
|
|
220
216
|
* Construct an array of ESLint flat config items.
|
|
221
217
|
*/
|
|
222
|
-
declare function defineConfig(options?: OptionsConfig): Promise<ConfigItem[]>;
|
|
223
|
-
/**
|
|
224
|
-
* @deprecated Use `defineConfig` instead.
|
|
225
|
-
*/
|
|
226
|
-
declare const config: typeof defineConfig;
|
|
218
|
+
declare function defineConfig(options?: OptionsConfig, ...userConfigs: ConfigItem[]): Promise<ConfigItem[]>;
|
|
227
219
|
|
|
228
220
|
declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
|
|
229
221
|
declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
|
|
@@ -285,4 +277,4 @@ declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
|
|
|
285
277
|
} ? U : T>;
|
|
286
278
|
declare function getConfigOptions<T>(options: T): {};
|
|
287
279
|
|
|
288
|
-
export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments,
|
|
280
|
+
export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments, defineConfig as default, defineConfig, getConfigOptions, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
|
package/dist/index.js
CHANGED
|
@@ -671,7 +671,6 @@ async function perfectionist() {
|
|
|
671
671
|
var prettier = async ({ tailwindcss: tailwindcss2, ...options }) => {
|
|
672
672
|
const [pluginPrettier, configPrettier] = await Promise.all([
|
|
673
673
|
interopDefault(import("eslint-plugin-prettier")),
|
|
674
|
-
// @ts-expect-error missing types
|
|
675
674
|
interopDefault(import("eslint-config-prettier"))
|
|
676
675
|
]);
|
|
677
676
|
const defaultPrettierOptions = {
|
|
@@ -1158,8 +1157,8 @@ var typescript = async (options) => {
|
|
|
1158
1157
|
prefer: "type-imports"
|
|
1159
1158
|
}
|
|
1160
1159
|
],
|
|
1161
|
-
"@typescript-eslint/method-signature-style": ["error", "property"],
|
|
1162
1160
|
// https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
|
|
1161
|
+
"@typescript-eslint/method-signature-style": ["error", "property"],
|
|
1163
1162
|
"@typescript-eslint/no-dupe-class-members": "error",
|
|
1164
1163
|
"@typescript-eslint/no-dynamic-delete": "off",
|
|
1165
1164
|
"@typescript-eslint/no-empty-object-type": [
|
|
@@ -1310,9 +1309,9 @@ var vue = async (options = {}) => {
|
|
|
1310
1309
|
processor: pluginVue.processors[".vue"],
|
|
1311
1310
|
rules: {
|
|
1312
1311
|
...pluginVue.configs.base.rules,
|
|
1313
|
-
...pluginVue.configs["
|
|
1314
|
-
...pluginVue.configs["
|
|
1315
|
-
...pluginVue.configs["
|
|
1312
|
+
...pluginVue.configs["flat/essential"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
|
|
1313
|
+
...pluginVue.configs["flat/strongly-recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
|
|
1314
|
+
...pluginVue.configs["flat/recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
|
|
1316
1315
|
"node/prefer-global/process": "off",
|
|
1317
1316
|
"vue/block-order": [
|
|
1318
1317
|
"error",
|
|
@@ -1530,7 +1529,7 @@ var react = async (options) => {
|
|
|
1530
1529
|
{
|
|
1531
1530
|
name: "eslint/react/setup",
|
|
1532
1531
|
plugins: {
|
|
1533
|
-
"react
|
|
1532
|
+
"react": pluginReactX,
|
|
1534
1533
|
"react-dom": pluginReactDom,
|
|
1535
1534
|
"react-hooks-extra": pluginReactHooksExtra,
|
|
1536
1535
|
"react-naming-convention": pluginReactNamingConvention,
|
|
@@ -1562,12 +1561,73 @@ var react = async (options) => {
|
|
|
1562
1561
|
}
|
|
1563
1562
|
},
|
|
1564
1563
|
rules: {
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1564
|
+
// recommended rules from eslint-plugin-react-x https://eslint-react.xyz/docs/rules/overview#core-rules
|
|
1565
|
+
"react/jsx-no-duplicate-props": "warn",
|
|
1566
|
+
"react/jsx-uses-vars": "warn",
|
|
1567
|
+
"react/no-access-state-in-setstate": "error",
|
|
1568
|
+
"react/no-array-index-key": "warn",
|
|
1569
|
+
"react/no-children-count": "warn",
|
|
1570
|
+
"react/no-children-for-each": "warn",
|
|
1571
|
+
"react/no-children-map": "warn",
|
|
1572
|
+
"react/no-children-only": "warn",
|
|
1573
|
+
"react/no-children-to-array": "warn",
|
|
1574
|
+
"react/no-clone-element": "warn",
|
|
1575
|
+
"react/no-comment-textnodes": "warn",
|
|
1576
|
+
"react/no-component-will-mount": "error",
|
|
1577
|
+
"react/no-component-will-receive-props": "error",
|
|
1578
|
+
"react/no-component-will-update": "error",
|
|
1579
|
+
"react/no-context-provider": "warn",
|
|
1580
|
+
"react/no-create-ref": "error",
|
|
1581
|
+
"react/no-default-props": "error",
|
|
1582
|
+
"react/no-direct-mutation-state": "error",
|
|
1583
|
+
"react/no-duplicate-key": "warn",
|
|
1584
|
+
"react/no-forward-ref": "warn",
|
|
1585
|
+
"react/no-implicit-key": "warn",
|
|
1586
|
+
"react/no-missing-key": "error",
|
|
1587
|
+
"react/no-nested-component-definitions": "error",
|
|
1588
|
+
"react/no-prop-types": "error",
|
|
1589
|
+
"react/no-redundant-should-component-update": "error",
|
|
1590
|
+
"react/no-set-state-in-component-did-mount": "warn",
|
|
1591
|
+
"react/no-set-state-in-component-did-update": "warn",
|
|
1592
|
+
"react/no-set-state-in-component-will-update": "warn",
|
|
1593
|
+
"react/no-string-refs": "error",
|
|
1594
|
+
"react/no-unsafe-component-will-mount": "warn",
|
|
1595
|
+
"react/no-unsafe-component-will-receive-props": "warn",
|
|
1596
|
+
"react/no-unsafe-component-will-update": "warn",
|
|
1597
|
+
"react/no-unstable-context-value": "warn",
|
|
1598
|
+
"react/no-unstable-default-props": "warn",
|
|
1599
|
+
"react/no-unused-class-component-members": "warn",
|
|
1600
|
+
"react/no-unused-state": "warn",
|
|
1601
|
+
"react/no-use-context": "warn",
|
|
1602
|
+
"react/no-useless-forward-ref": "warn",
|
|
1603
|
+
// recommended rules from eslint-plugin-react-dom https://eslint-react.xyz/docs/rules/overview#dom-rules
|
|
1604
|
+
"react-dom/no-dangerously-set-innerhtml": "warn",
|
|
1605
|
+
"react-dom/no-dangerously-set-innerhtml-with-children": "error",
|
|
1606
|
+
"react-dom/no-find-dom-node": "error",
|
|
1607
|
+
"react-dom/no-flush-sync": "error",
|
|
1608
|
+
"react-dom/no-hydrate": "error",
|
|
1609
|
+
"react-dom/no-missing-button-type": "warn",
|
|
1610
|
+
"react-dom/no-missing-iframe-sandbox": "warn",
|
|
1611
|
+
"react-dom/no-namespace": "error",
|
|
1612
|
+
"react-dom/no-render": "error",
|
|
1613
|
+
"react-dom/no-render-return-value": "error",
|
|
1614
|
+
"react-dom/no-script-url": "warn",
|
|
1615
|
+
"react-dom/no-unsafe-iframe-sandbox": "warn",
|
|
1616
|
+
"react-dom/no-unsafe-target-blank": "warn",
|
|
1617
|
+
"react-dom/no-use-form-state": "error",
|
|
1618
|
+
"react-dom/no-void-elements-with-children": "error",
|
|
1619
|
+
// recommended rules eslint-plugin-react-hooks https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks/src/rules
|
|
1620
|
+
"react-hooks/exhaustive-deps": "warn",
|
|
1621
|
+
"react-hooks/rules-of-hooks": "error",
|
|
1622
|
+
// recommended rules from eslint-plugin-react-hooks-extra https://eslint-react.xyz/docs/rules/overview#hooks-extra-rules
|
|
1623
|
+
"react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
|
|
1624
|
+
"react-hooks-extra/no-unnecessary-use-prefix": "warn",
|
|
1625
|
+
"react-hooks-extra/prefer-use-state-lazy-initialization": "warn",
|
|
1626
|
+
// recommended rules from eslint-plugin-react-web-api https://eslint-react.xyz/docs/rules/overview#web-api-rules
|
|
1627
|
+
"react-web-api/no-leaked-event-listener": "warn",
|
|
1628
|
+
"react-web-api/no-leaked-interval": "warn",
|
|
1629
|
+
"react-web-api/no-leaked-resize-observer": "warn",
|
|
1630
|
+
"react-web-api/no-leaked-timeout": "warn",
|
|
1571
1631
|
// React Refresh
|
|
1572
1632
|
"react-refresh/only-export-components": "warn",
|
|
1573
1633
|
// React Compiler
|
|
@@ -1609,7 +1669,7 @@ async function tailwindcss() {
|
|
|
1609
1669
|
}
|
|
1610
1670
|
|
|
1611
1671
|
// src/factory.ts
|
|
1612
|
-
function defineConfig(options = {}) {
|
|
1672
|
+
function defineConfig(options = {}, ...userConfigs) {
|
|
1613
1673
|
const {
|
|
1614
1674
|
ignores: enableIgnores = true,
|
|
1615
1675
|
vue: enableVue,
|
|
@@ -1686,13 +1746,12 @@ function defineConfig(options = {}) {
|
|
|
1686
1746
|
})
|
|
1687
1747
|
);
|
|
1688
1748
|
}
|
|
1689
|
-
const merged = combine(...configs,
|
|
1749
|
+
const merged = combine(...configs, ...userConfigs);
|
|
1690
1750
|
return merged;
|
|
1691
1751
|
}
|
|
1692
|
-
var config = defineConfig;
|
|
1693
1752
|
|
|
1694
1753
|
// src/index.ts
|
|
1695
|
-
var index_default =
|
|
1754
|
+
var index_default = defineConfig;
|
|
1696
1755
|
export {
|
|
1697
1756
|
GLOB_ALL_SRC,
|
|
1698
1757
|
GLOB_ASTRO_TS,
|
|
@@ -1721,7 +1780,6 @@ export {
|
|
|
1721
1780
|
GLOB_YAML,
|
|
1722
1781
|
combine,
|
|
1723
1782
|
comments,
|
|
1724
|
-
config,
|
|
1725
1783
|
index_default as default,
|
|
1726
1784
|
defineConfig,
|
|
1727
1785
|
getConfigOptions,
|
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@debbl/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.10.
|
|
5
|
-
"packageManager": "pnpm@10.5.2",
|
|
4
|
+
"version": "3.10.2",
|
|
6
5
|
"description": "Brendan Dash's ESLint config",
|
|
7
6
|
"author": "Brendan Dash <me@aiwan.run> (https://github.com/Debbl/)",
|
|
8
7
|
"license": "MIT",
|
|
@@ -28,55 +27,55 @@
|
|
|
28
27
|
},
|
|
29
28
|
"dependencies": {
|
|
30
29
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
|
|
31
|
-
"@eslint-react/eslint-plugin": "^1.
|
|
32
|
-
"@eslint/markdown": "^6.
|
|
33
|
-
"@next/eslint-plugin-next": "^15.2.
|
|
34
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
35
|
-
"@typescript-eslint/parser": "^8.
|
|
36
|
-
"@vitest/eslint-plugin": "^1.1.
|
|
30
|
+
"@eslint-react/eslint-plugin": "^1.40.3",
|
|
31
|
+
"@eslint/markdown": "^6.3.0",
|
|
32
|
+
"@next/eslint-plugin-next": "^15.2.4",
|
|
33
|
+
"@typescript-eslint/eslint-plugin": "^8.29.0",
|
|
34
|
+
"@typescript-eslint/parser": "^8.29.0",
|
|
35
|
+
"@vitest/eslint-plugin": "^1.1.39",
|
|
37
36
|
"eslint-config-flat-gitignore": "^2.1.0",
|
|
38
|
-
"eslint-config-prettier": "^10.
|
|
39
|
-
"eslint-plugin-import-x": "^4.
|
|
40
|
-
"eslint-plugin-jsdoc": "^50.6.
|
|
41
|
-
"eslint-plugin-jsonc": "^2.
|
|
42
|
-
"eslint-plugin-n": "^17.
|
|
37
|
+
"eslint-config-prettier": "^10.1.1",
|
|
38
|
+
"eslint-plugin-import-x": "^4.10.0",
|
|
39
|
+
"eslint-plugin-jsdoc": "^50.6.9",
|
|
40
|
+
"eslint-plugin-jsonc": "^2.20.0",
|
|
41
|
+
"eslint-plugin-n": "^17.17.0",
|
|
43
42
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
44
|
-
"eslint-plugin-perfectionist": "^4.
|
|
45
|
-
"eslint-plugin-prettier": "^5.2.
|
|
43
|
+
"eslint-plugin-perfectionist": "^4.11.0",
|
|
44
|
+
"eslint-plugin-prettier": "^5.2.6",
|
|
46
45
|
"eslint-plugin-react-compiler": "latest",
|
|
47
46
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
48
47
|
"eslint-plugin-react-refresh": "^0.4.19",
|
|
49
48
|
"eslint-plugin-solid": "^0.14.5",
|
|
50
49
|
"eslint-plugin-tailwindcss": "^3.18.0",
|
|
51
50
|
"eslint-plugin-toml": "^0.12.0",
|
|
52
|
-
"eslint-plugin-unicorn": "^
|
|
51
|
+
"eslint-plugin-unicorn": "^58.0.0",
|
|
53
52
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
54
|
-
"eslint-plugin-vue": "^
|
|
53
|
+
"eslint-plugin-vue": "^10.0.0",
|
|
55
54
|
"eslint-plugin-yml": "^1.17.0",
|
|
56
55
|
"globals": "^16.0.0",
|
|
57
56
|
"jsonc-eslint-parser": "^2.4.0",
|
|
58
57
|
"prettier": "^3.5.3",
|
|
59
58
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
60
59
|
"toml-eslint-parser": "^0.10.0",
|
|
61
|
-
"vue-eslint-parser": "^
|
|
60
|
+
"vue-eslint-parser": "^10.1.2",
|
|
62
61
|
"yaml-eslint-parser": "^1.3.0"
|
|
63
62
|
},
|
|
64
63
|
"devDependencies": {
|
|
65
|
-
"@eslint/config-inspector": "^1.0.
|
|
64
|
+
"@eslint/config-inspector": "^1.0.2",
|
|
66
65
|
"@types/eslint": "^9.6.1",
|
|
67
66
|
"@types/fs-extra": "^11.0.4",
|
|
68
|
-
"@types/node": "^22.
|
|
69
|
-
"@types/react": "^19.0
|
|
70
|
-
"bumpp": "^10.0
|
|
71
|
-
"eslint": "^9.
|
|
67
|
+
"@types/node": "^22.14.0",
|
|
68
|
+
"@types/react": "^19.1.0",
|
|
69
|
+
"bumpp": "^10.1.0",
|
|
70
|
+
"eslint": "^9.23.0",
|
|
72
71
|
"execa": "^9.5.2",
|
|
73
72
|
"fast-glob": "^3.3.3",
|
|
74
73
|
"fs-extra": "^11.3.0",
|
|
75
|
-
"react": "^19.
|
|
74
|
+
"react": "^19.1.0",
|
|
76
75
|
"sucrase": "^3.35.0",
|
|
77
76
|
"tsup": "^8.4.0",
|
|
78
77
|
"typescript": "^5.8.2",
|
|
79
|
-
"vitest": "^3.
|
|
78
|
+
"vitest": "^3.1.1"
|
|
80
79
|
},
|
|
81
80
|
"scripts": {
|
|
82
81
|
"build": "tsup",
|