@vp-tw/eslint-config 0.0.9 → 0.0.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 (58) hide show
  1. package/README.md +32 -1
  2. package/dist/configs/mdx.d.ts +22 -4
  3. package/dist/configs/mdx.js +72 -18
  4. package/dist/configs/prettier.d.ts +18 -1
  5. package/dist/configs/prettier.js +27 -4
  6. package/dist/configs/storybook.d.ts +24 -1
  7. package/dist/configs/storybook.js +68 -24
  8. package/dist/eslint-typegen.js +1 -1
  9. package/dist/esm/configs/mdx.d.ts +22 -4
  10. package/dist/esm/configs/mdx.mjs +82 -18
  11. package/dist/esm/configs/prettier.d.ts +18 -1
  12. package/dist/esm/configs/prettier.mjs +27 -3
  13. package/dist/esm/configs/storybook.d.ts +24 -1
  14. package/dist/esm/configs/storybook.mjs +72 -14
  15. package/dist/esm/eslint-typegen.mjs +1 -1
  16. package/dist/esm/extends/_utils.d.ts +2 -0
  17. package/dist/esm/extends/_utils.mjs +2 -0
  18. package/dist/esm/extends/imports.d.ts +25 -0
  19. package/dist/esm/extends/imports.mjs +87 -0
  20. package/dist/esm/extends/javascript.d.ts +21 -0
  21. package/dist/esm/extends/javascript.mjs +51 -0
  22. package/dist/esm/extends/jsonc.d.ts +30 -0
  23. package/dist/esm/extends/jsonc.mjs +149 -0
  24. package/dist/esm/extends/react.d.ts +21 -0
  25. package/dist/esm/extends/react.mjs +58 -0
  26. package/dist/esm/extends/typescript.d.ts +21 -0
  27. package/dist/esm/extends/typescript.mjs +52 -0
  28. package/dist/esm/extends/yaml.d.ts +25 -0
  29. package/dist/esm/extends/yaml.mjs +71 -0
  30. package/dist/esm/globs.d.ts +6 -0
  31. package/dist/esm/globs.mjs +12 -0
  32. package/dist/esm/types.d.ts +35 -1
  33. package/dist/esm/utils/extendsConfig.d.ts +4 -0
  34. package/dist/esm/utils/extendsConfig.mjs +56 -0
  35. package/dist/esm/vdustr.d.ts +21 -4
  36. package/dist/esm/vdustr.mjs +37 -141
  37. package/dist/extends/_utils.d.ts +2 -0
  38. package/dist/extends/_utils.js +7 -0
  39. package/dist/extends/imports.d.ts +25 -0
  40. package/dist/extends/imports.js +71 -0
  41. package/dist/extends/javascript.d.ts +21 -0
  42. package/dist/extends/javascript.js +53 -0
  43. package/dist/extends/jsonc.d.ts +30 -0
  44. package/dist/extends/jsonc.js +135 -0
  45. package/dist/extends/react.d.ts +21 -0
  46. package/dist/extends/react.js +60 -0
  47. package/dist/extends/typescript.d.ts +21 -0
  48. package/dist/extends/typescript.js +56 -0
  49. package/dist/extends/yaml.d.ts +25 -0
  50. package/dist/extends/yaml.js +66 -0
  51. package/dist/globs.d.ts +6 -0
  52. package/dist/globs.js +11 -0
  53. package/dist/types.d.ts +35 -1
  54. package/dist/utils/extendsConfig.d.ts +4 -0
  55. package/dist/utils/extendsConfig.js +53 -0
  56. package/dist/vdustr.d.ts +21 -4
  57. package/dist/vdustr.js +30 -132
  58. package/package.json +6 -3
@@ -1,21 +1,79 @@
1
1
  import { ensurePackages, interopDefault } from "@antfu/eslint-config";
2
- import { renameRules } from "../utils/renameRules.mjs";
3
- const storybook = async () => {
2
+ import { pick } from "es-toolkit";
3
+ const configNamesMapSource = {
4
+ setup: "vdustr/stroybook/setup",
5
+ storiesRules: "vdustr/storybook/stories-rules",
6
+ mainRules: "vdustr/storybook/main-rules"
7
+ };
8
+ const storybookInternal = async (options) => {
4
9
  await ensurePackages(["eslint-plugin-storybook"]);
5
10
  const storybookPlugin = await interopDefault(
6
11
  import("eslint-plugin-storybook")
7
12
  );
8
- return storybookPlugin.configs["flat/csf-strict"].map((config) => {
9
- const allConfig = config;
10
- const { rules, files, plugins, ...rest } = allConfig;
11
- return {
12
- ...rest,
13
- ...!rules ? null : {
14
- rules: renameRules(rules)
15
- },
16
- ...!files ? null : { files },
17
- ...!plugins ? null : { plugins }
18
- };
19
- });
13
+ const inheritingConfigs = storybookPlugin.configs["flat/csf-strict"];
14
+ const originalSetupConfig = inheritingConfigs[0];
15
+ const originalStoryRulesConfig = inheritingConfigs[1];
16
+ const originalMainRulesConfig = inheritingConfigs[2];
17
+ const originalCsfStrictConfig = inheritingConfigs[3];
18
+ if (!originalSetupConfig) throw new Error("Missing setup config");
19
+ if (!originalStoryRulesConfig) throw new Error("Missing story rules config");
20
+ if (!originalMainRulesConfig) throw new Error("Missing main rules config");
21
+ if (!originalCsfStrictConfig) throw new Error("Missing csf strict config");
22
+ const setupConfig = {
23
+ ...pick(originalSetupConfig, ["plugins"]),
24
+ name: configNamesMapSource.setup
25
+ };
26
+ const storyRulesConfig = {
27
+ /**
28
+ * Inherited.
29
+ */
30
+ ...originalStoryRulesConfig,
31
+ ...originalCsfStrictConfig,
32
+ /**
33
+ * Default.
34
+ */
35
+ name: configNamesMapSource.storiesRules,
36
+ /**
37
+ * Overridable.
38
+ */
39
+ ...options?.storiesConfig,
40
+ rules: {
41
+ /**
42
+ * Inherited.
43
+ */
44
+ ...originalStoryRulesConfig.rules,
45
+ ...originalCsfStrictConfig.rules,
46
+ /**
47
+ * Default.
48
+ */
49
+ "import/no-default-export": "off",
50
+ /**
51
+ * Overridable.
52
+ */
53
+ ...options?.storiesConfig?.rules
54
+ }
55
+ };
56
+ const mainRulesConfig = {
57
+ /**
58
+ * Inherited.
59
+ */
60
+ ...originalMainRulesConfig,
61
+ /**
62
+ * Default.
63
+ */
64
+ name: configNamesMapSource.mainRules,
65
+ /**
66
+ * Overridable.
67
+ */
68
+ ...options?.mainConfig
69
+ };
70
+ return [
71
+ setupConfig,
72
+ storyRulesConfig,
73
+ mainRulesConfig
74
+ ];
20
75
  };
76
+ const storybook = Object.assign(storybookInternal, {
77
+ configNamesMapSource
78
+ });
21
79
  export { storybook };
@@ -1 +1 @@
1
- // This is a placeholder for `eslint-typegen.d.ts`.
1
+ // Placeholder for `eslint-typegen.d.ts`.
@@ -0,0 +1,2 @@
1
+ declare const ignoreKeys: ("plugins" | "rules")[];
2
+ export { ignoreKeys };
@@ -0,0 +1,2 @@
1
+ const ignoreKeys = ["plugins", "rules"];
2
+ export { ignoreKeys };
@@ -0,0 +1,25 @@
1
+ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
+ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
+ declare const configNamesMapSource: {
5
+ readonly imports: "vdustr/imports/rules";
6
+ readonly noDefaultExport: "vdustr/no-default-export/rules";
7
+ };
8
+ declare module "../types" {
9
+ interface ConfigNamesMap extends ResolveConfigNamesMap<imports.ConfigNamesMapSource> {
10
+ }
11
+ }
12
+ declare namespace imports {
13
+ type ConfigNamesMapSource = typeof configNamesMapSource;
14
+ interface Options {
15
+ imports?: ConfigOverrides;
16
+ noDefaultExport: ConfigOverrides;
17
+ }
18
+ }
19
+ declare const imports: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: imports.Options) => void) & {
20
+ configNamesMapSource: {
21
+ readonly imports: "vdustr/imports/rules";
22
+ readonly noDefaultExport: "vdustr/no-default-export/rules";
23
+ };
24
+ };
25
+ export { imports };
@@ -0,0 +1,87 @@
1
+ import {
2
+ GLOB_ASTRO_TS,
3
+ GLOB_JS,
4
+ GLOB_JSX,
5
+ GLOB_MARKDOWN_CODE,
6
+ GLOB_TS,
7
+ GLOB_TSX
8
+ } from "@antfu/eslint-config";
9
+ import { omit } from "es-toolkit";
10
+ import { GLOB_CONFIG_JS } from "../globs.mjs";
11
+ import { extendsConfig } from "../utils/extendsConfig.mjs";
12
+ import { ignoreKeys } from "./_utils.mjs";
13
+ const configNamesMapSource = {
14
+ imports: "vdustr/imports/rules",
15
+ noDefaultExport: "vdustr/no-default-export/rules"
16
+ };
17
+ const importsInternal = (composer, options) => {
18
+ extendsConfig(composer, "antfu/imports/rules", (config) => [
19
+ config,
20
+ {
21
+ /**
22
+ * Inherited.
23
+ */
24
+ ...omit(config, ignoreKeys),
25
+ /**
26
+ * Default.
27
+ */
28
+ name: configNamesMapSource.imports,
29
+ /**
30
+ * Overridable.
31
+ */
32
+ ...options?.imports,
33
+ rules: {
34
+ /**
35
+ * Default.
36
+ */
37
+ /**
38
+ * Forbid `import {} from "module"`.
39
+ */
40
+ "import/no-empty-named-blocks": "error",
41
+ /**
42
+ * Wildcard imports can prevent tree shaking and cause name conflicts.
43
+ * Consider using named imports instead.
44
+ */
45
+ "import/no-namespace": "error",
46
+ /**
47
+ * Overridable.
48
+ */
49
+ ...options?.imports?.rules
50
+ }
51
+ },
52
+ {
53
+ name: configNamesMapSource.noDefaultExport,
54
+ /**
55
+ * Overridable.
56
+ */
57
+ ...options?.noDefaultExport,
58
+ rules: {
59
+ /**
60
+ * Enforcing named exports improves consistency, enhances auto-completion and refactoring, and avoids issues
61
+ * with default export renaming. Additionally, default exports might lead to different behavior when transformed
62
+ * to CJS.
63
+ */
64
+ "import/no-default-export": "error",
65
+ ...options?.noDefaultExport?.rules
66
+ },
67
+ files: [
68
+ GLOB_JS,
69
+ GLOB_JSX,
70
+ GLOB_TS,
71
+ GLOB_TSX,
72
+ ...options?.noDefaultExport?.files || []
73
+ ],
74
+ ignores: [
75
+ // Configuration files
76
+ GLOB_CONFIG_JS,
77
+ GLOB_MARKDOWN_CODE,
78
+ GLOB_ASTRO_TS,
79
+ ...options?.noDefaultExport?.ignores || []
80
+ ]
81
+ }
82
+ ]);
83
+ };
84
+ const imports = Object.assign(importsInternal, {
85
+ configNamesMapSource
86
+ });
87
+ export { imports };
@@ -0,0 +1,21 @@
1
+ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
+ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
+ declare const configNamesMapSource: {
5
+ readonly rules: "vdustr/javascript/rules";
6
+ };
7
+ declare module "../types" {
8
+ interface ConfigNamesMap extends ResolveConfigNamesMap<javascript.ConfigNamesMapSource> {
9
+ }
10
+ }
11
+ declare namespace javascript {
12
+ type ConfigNamesMapSource = typeof configNamesMapSource;
13
+ interface Options extends ConfigOverrides {
14
+ }
15
+ }
16
+ declare const javascript: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: javascript.Options) => void) & {
17
+ configNamesMapSource: {
18
+ readonly rules: "vdustr/javascript/rules";
19
+ };
20
+ };
21
+ export { javascript };
@@ -0,0 +1,51 @@
1
+ import { omit } from "es-toolkit";
2
+ import { extendsConfig } from "../utils/extendsConfig.mjs";
3
+ import { ignoreKeys } from "./_utils.mjs";
4
+ const configNamesMapSource = {
5
+ rules: "vdustr/javascript/rules"
6
+ };
7
+ const javascriptInternal = (composer, options) => {
8
+ extendsConfig(composer, "antfu/javascript/rules", (config) => [
9
+ config,
10
+ {
11
+ /**
12
+ * Inherited.
13
+ */
14
+ ...omit(config, ignoreKeys),
15
+ /**
16
+ * Default.
17
+ */
18
+ name: configNamesMapSource.rules,
19
+ /**
20
+ * Overridable.
21
+ */
22
+ ...options,
23
+ rules: {
24
+ /**
25
+ * Default.
26
+ */
27
+ /**
28
+ * Some callbacks are purposefully named to make the code self-documenting.
29
+ */
30
+ "prefer-arrow-callback": "off",
31
+ /**
32
+ * This rule does not integrate well with JSDoc `@link` tags. It's advised
33
+ * to verify its behavior with TypeScript instead.
34
+ */
35
+ "no-unused-vars": "off",
36
+ "unused-imports/no-unused-vars": "off",
37
+ "unused-imports/no-unused-imports-ts": "off",
38
+ "unused-imports/no-unused-vars-ts": "off",
39
+ "unused-imports/no-unused-imports": "off",
40
+ /**
41
+ * Overridable.
42
+ */
43
+ ...options?.rules
44
+ }
45
+ }
46
+ ]);
47
+ };
48
+ const javascript = Object.assign(javascriptInternal, {
49
+ configNamesMapSource
50
+ });
51
+ export { javascript };
@@ -0,0 +1,30 @@
1
+ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
+ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
+ declare const configNamesMapSource: {
5
+ readonly rules: "vdustr/jsonc/rules";
6
+ readonly sortArrayValues: "vdustr/jsonc/sortArrayValues";
7
+ readonly packageJsonSetup: "vdustr/package-json/setup";
8
+ readonly packageJsonRules: "vdustr/package-json/rules";
9
+ };
10
+ declare module "../types" {
11
+ interface ConfigNamesMap extends ResolveConfigNamesMap<jsonc.ConfigNamesMapSource> {
12
+ }
13
+ }
14
+ declare namespace jsonc {
15
+ type ConfigNamesMapSource = typeof configNamesMapSource;
16
+ interface Options {
17
+ jsonc?: ConfigOverrides;
18
+ packageJson?: ConfigOverrides;
19
+ sortArrayValues: ConfigOverrides;
20
+ }
21
+ }
22
+ declare const jsonc: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: jsonc.Options) => void) & {
23
+ configNamesMapSource: {
24
+ readonly rules: "vdustr/jsonc/rules";
25
+ readonly sortArrayValues: "vdustr/jsonc/sortArrayValues";
26
+ readonly packageJsonSetup: "vdustr/package-json/setup";
27
+ readonly packageJsonRules: "vdustr/package-json/rules";
28
+ };
29
+ };
30
+ export { jsonc };
@@ -0,0 +1,149 @@
1
+ import { omit } from "es-toolkit";
2
+ import packageJson from "eslint-plugin-package-json/configs/recommended";
3
+ import {
4
+ GLOB_CODE_WORKSPACE,
5
+ GLOB_CSPELL_JSON,
6
+ GLOB_PACKAGE_JSON
7
+ } from "../globs.mjs";
8
+ import { extendsConfig } from "../utils/extendsConfig.mjs";
9
+ import { ignoreKeys } from "./_utils.mjs";
10
+ const configNamesMapSource = {
11
+ rules: "vdustr/jsonc/rules",
12
+ sortArrayValues: "vdustr/jsonc/sortArrayValues",
13
+ packageJsonSetup: "vdustr/package-json/setup",
14
+ packageJsonRules: "vdustr/package-json/rules"
15
+ };
16
+ const jsoncInternal = (composer, options) => {
17
+ extendsConfig(
18
+ composer,
19
+ "antfu/jsonc/rules",
20
+ (config) => {
21
+ config = {
22
+ ...config,
23
+ files: [
24
+ /**
25
+ * Inherited.
26
+ */
27
+ ...config.files ?? [],
28
+ /**
29
+ * Default.
30
+ */
31
+ GLOB_CODE_WORKSPACE,
32
+ /**
33
+ * Overridable.
34
+ */
35
+ ...options?.jsonc?.files ?? []
36
+ ],
37
+ ignores: [
38
+ /**
39
+ * Inherited.
40
+ */
41
+ ...config.ignores ?? [],
42
+ /**
43
+ * Default.
44
+ */
45
+ GLOB_PACKAGE_JSON,
46
+ /**
47
+ * Overridable.
48
+ */
49
+ ...options?.jsonc?.ignores ?? []
50
+ ]
51
+ };
52
+ return [
53
+ config,
54
+ {
55
+ /**
56
+ * Inherited.
57
+ */
58
+ ...omit(config, ignoreKeys),
59
+ /**
60
+ * Default.
61
+ */
62
+ name: configNamesMapSource.rules,
63
+ files: [...config.files ?? []],
64
+ ignores: [...config.ignores ?? []],
65
+ /**
66
+ * Overridable.
67
+ */
68
+ ...omit(options?.jsonc ?? {}, ["files", "ignores"]),
69
+ rules: {
70
+ /**
71
+ * Default.
72
+ */
73
+ "jsonc/sort-keys": "error",
74
+ /**
75
+ * Overridable.
76
+ */
77
+ ...options?.jsonc?.rules
78
+ }
79
+ },
80
+ {
81
+ plugins: packageJson.plugins,
82
+ name: configNamesMapSource.packageJsonSetup
83
+ },
84
+ {
85
+ /**
86
+ * Inherited.
87
+ */
88
+ ...omit(packageJson, ["plugins"]),
89
+ /**
90
+ * Default.
91
+ */
92
+ name: configNamesMapSource.packageJsonRules,
93
+ /**
94
+ * Overridable.
95
+ */
96
+ ...options?.packageJson,
97
+ plugins: {
98
+ /**
99
+ * Inherited.
100
+ */
101
+ ...packageJson.plugins,
102
+ /**
103
+ * Overridable.
104
+ */
105
+ ...options?.packageJson?.plugins
106
+ },
107
+ rules: {
108
+ /**
109
+ * Inherited.
110
+ */
111
+ ...packageJson.rules,
112
+ /**
113
+ * Overridable.
114
+ */
115
+ ...options?.packageJson?.rules
116
+ }
117
+ },
118
+ {
119
+ /**
120
+ * Default.
121
+ */
122
+ name: configNamesMapSource.sortArrayValues,
123
+ /**
124
+ * Overridable.
125
+ */
126
+ ...options?.sortArrayValues,
127
+ files: [GLOB_CSPELL_JSON, ...options?.sortArrayValues?.files ?? []],
128
+ rules: {
129
+ "jsonc/sort-array-values": [
130
+ "error",
131
+ {
132
+ pathPattern: ".*",
133
+ order: {
134
+ type: "asc"
135
+ }
136
+ }
137
+ ],
138
+ ...options?.sortArrayValues?.rules
139
+ }
140
+ }
141
+ ];
142
+ },
143
+ ["antfu/sort/package-json", "antfu/sort/tsconfig-json"]
144
+ );
145
+ };
146
+ const jsonc = Object.assign(jsoncInternal, {
147
+ configNamesMapSource
148
+ });
149
+ export { jsonc };
@@ -0,0 +1,21 @@
1
+ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
+ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
+ declare const configNamesMapSource: {
5
+ readonly rules: "vdustr/react/rules";
6
+ };
7
+ declare module "../types" {
8
+ interface ConfigNamesMap extends ResolveConfigNamesMap<react.ConfigNamesMapSource> {
9
+ }
10
+ }
11
+ declare namespace react {
12
+ type ConfigNamesMapSource = typeof configNamesMapSource;
13
+ interface Options extends ConfigOverrides {
14
+ }
15
+ }
16
+ declare const react: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: react.Options) => void) & {
17
+ configNamesMapSource: {
18
+ readonly rules: "vdustr/react/rules";
19
+ };
20
+ };
21
+ export { react };
@@ -0,0 +1,58 @@
1
+ import { omit } from "es-toolkit";
2
+ import { reactCompiler } from "../lib/eslint-plugin-react-compiler.mjs";
3
+ import { extendsConfig } from "../utils/extendsConfig.mjs";
4
+ import { ignoreKeys } from "./_utils.mjs";
5
+ const configNamesMapSource = {
6
+ rules: "vdustr/react/rules"
7
+ };
8
+ const reactInternal = (composer, options) => {
9
+ extendsConfig(composer, "antfu/react/rules", async (config) => [
10
+ config,
11
+ {
12
+ /**
13
+ * Inherited.
14
+ */
15
+ ...omit(config, ignoreKeys),
16
+ /**
17
+ * Default.
18
+ */
19
+ name: configNamesMapSource.rules,
20
+ plugins: {
21
+ /**
22
+ * Inherited.
23
+ */
24
+ ...config.plugins,
25
+ /**
26
+ * Default.
27
+ */
28
+ "react-compiler": await reactCompiler(),
29
+ /**
30
+ * Overridable.
31
+ */
32
+ ...options?.plugins
33
+ },
34
+ /**
35
+ * Overridable.
36
+ */
37
+ ...options,
38
+ rules: {
39
+ /**
40
+ * Default.
41
+ */
42
+ "react-compiler/react-compiler": "error",
43
+ /**
44
+ * Not all destructuring assignments are more readable than their alternatives.
45
+ */
46
+ "react/prefer-destructuring-assignment": "off",
47
+ /**
48
+ * Overridable.
49
+ */
50
+ ...options?.rules
51
+ }
52
+ }
53
+ ]);
54
+ };
55
+ const react = Object.assign(reactInternal, {
56
+ configNamesMapSource
57
+ });
58
+ export { react };
@@ -0,0 +1,21 @@
1
+ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
+ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
+ declare const configNamesMapSource: {
5
+ readonly rules: "vdustr/typescript/rules";
6
+ };
7
+ declare module "../types" {
8
+ interface ConfigNamesMap extends ResolveConfigNamesMap<typescript.ConfigNamesMapSource> {
9
+ }
10
+ }
11
+ declare namespace typescript {
12
+ type ConfigNamesMapSource = typeof configNamesMapSource;
13
+ interface Options extends ConfigOverrides {
14
+ }
15
+ }
16
+ declare const typescript: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: typescript.Options) => void) & {
17
+ configNamesMapSource: {
18
+ readonly rules: "vdustr/typescript/rules";
19
+ };
20
+ };
21
+ export { typescript };
@@ -0,0 +1,52 @@
1
+ import { omit } from "es-toolkit";
2
+ import { extendsConfig } from "../utils/extendsConfig.mjs";
3
+ import { ignoreKeys } from "./_utils.mjs";
4
+ const configNamesMapSource = {
5
+ rules: "vdustr/typescript/rules"
6
+ };
7
+ const typescriptInternal = (composer, options) => {
8
+ extendsConfig(composer, "antfu/typescript/rules", (config) => [
9
+ config,
10
+ {
11
+ /**
12
+ * Inherited.
13
+ */
14
+ ...omit(config, ignoreKeys),
15
+ /**
16
+ * Default.
17
+ */
18
+ name: configNamesMapSource.rules,
19
+ /**
20
+ * Overridable.
21
+ */
22
+ ...options,
23
+ rules: {
24
+ /**
25
+ * Default.
26
+ */
27
+ "ts/array-type": ["error", { default: "generic" }],
28
+ /**
29
+ * Namespaces are useful for centralizing the management of types. Just avoid
30
+ * overusing them with runtime code.
31
+ *
32
+ * - References:
33
+ * - <https://x.com/mattpocockuk/status/1805606072167940167>
34
+ */
35
+ "ts/no-namespace": "off",
36
+ "ts/no-redeclare": "off",
37
+ /**
38
+ * Check for unused variables in TypeScript.
39
+ */
40
+ "ts/no-unused-vars": "off",
41
+ /**
42
+ * Overridable.
43
+ */
44
+ ...options?.rules
45
+ }
46
+ }
47
+ ]);
48
+ };
49
+ const typescript = Object.assign(typescriptInternal, {
50
+ configNamesMapSource
51
+ });
52
+ export { typescript };
@@ -0,0 +1,25 @@
1
+ import type { ConfigNames, TypedFlatConfigItem } from "@antfu/eslint-config";
2
+ import type { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
4
+ declare const configNamesMapSource: {
5
+ readonly rules: "vdustr/yaml/rules";
6
+ readonly sortKeys: "vdustr/yaml/sortKeys";
7
+ };
8
+ declare module "../types" {
9
+ interface ConfigNamesMap extends ResolveConfigNamesMap<yaml.ConfigNamesMapSource> {
10
+ }
11
+ }
12
+ declare namespace yaml {
13
+ type ConfigNamesMapSource = typeof configNamesMapSource;
14
+ interface Options {
15
+ yaml?: ConfigOverrides;
16
+ sortKeys?: ConfigOverrides;
17
+ }
18
+ }
19
+ declare const yaml: ((composer: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>, options?: yaml.Options) => void) & {
20
+ configNamesMapSource: {
21
+ readonly rules: "vdustr/yaml/rules";
22
+ readonly sortKeys: "vdustr/yaml/sortKeys";
23
+ };
24
+ };
25
+ export { yaml };