@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
package/README.md CHANGED
@@ -36,7 +36,7 @@ const prettierignorePath = path.resolve(__dirname, ".prettierignore");
36
36
 
37
37
  export default vdustr(
38
38
  {
39
- // `stylistic` has been removed in favor of `prettier`.
39
+ // By default, we disable `stylistic` and use `prettier` instead.
40
40
  // stylistic: true,
41
41
  storybook: true,
42
42
  mdx: true,
@@ -45,6 +45,37 @@ export default vdustr(
45
45
  );
46
46
  ```
47
47
 
48
+ ## Known Issues
49
+
50
+ ## `RulesRecord` Type Definition Not Applied
51
+
52
+ If the rule record type definitions are not applied correctly, the plugin rules
53
+ supported by this ESLint config may not appear in properties that rely on these
54
+ types, such as `overrides`.
55
+
56
+ For example, you might not see the rule key `react-compiler/react-compiler` as
57
+ expected.
58
+
59
+ To fix this, you may need to prevent the outdated package `@types/eslint` from
60
+ being installed. This can be done by creating a `.pnpmfile.cjs` file:
61
+
62
+ ```js
63
+ // .pnpmfile.cjs
64
+ module.exports = {
65
+ hooks: {
66
+ readPackage(pkg) {
67
+ if (pkg.dependencies) {
68
+ delete pkg.dependencies["@types/eslint"];
69
+ }
70
+ return pkg;
71
+ },
72
+ },
73
+ };
74
+ ```
75
+
76
+ - [ESLint v9.10.0 released - Types now included](https://eslint.org/blog/2024/09/eslint-v9.10.0-released/#types-now-included)
77
+ - [feat: Add types #18854](https://github.com/eslint/eslint/pull/18854)
78
+
48
79
  ## License
49
80
 
50
81
  MIT © ViPro <vdustr@gmail.com> (<http://vdustr.dev>)
@@ -1,10 +1,28 @@
1
1
  import type { TypedFlatConfigItem } from "@antfu/eslint-config";
2
- import type { DistributiveOmit } from "@mui/types";
2
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
3
+ declare const configNamesMapSource: {
4
+ readonly setup: "vdustr/mdx/setup";
5
+ readonly processor: "vdustr/mdx/processor";
6
+ readonly rules: "vdustr/mdx/rules";
7
+ readonly codeBlocks: "vdustr/mdx/code-blocks";
8
+ };
9
+ declare module "../types" {
10
+ interface ConfigNamesMap extends ResolveConfigNamesMap<mdx.ConfigNamesMapSource> {
11
+ }
12
+ }
3
13
  declare namespace mdx {
4
- interface Options extends DistributiveOmit<TypedFlatConfigItem, "processor"> {
14
+ type ConfigNamesMapSource = typeof configNamesMapSource;
15
+ interface Options extends ConfigOverrides {
5
16
  processorOptions?: import("eslint-plugin-mdx").ProcessorOptions;
6
- flatCodeBlocks?: boolean | TypedFlatConfigItem;
17
+ codeBlocks?: boolean | ConfigOverrides;
7
18
  }
8
19
  }
9
- declare const mdx: ({ flatCodeBlocks, processorOptions, ...options }?: mdx.Options) => Promise<Array<TypedFlatConfigItem>>;
20
+ declare const mdx: (({ codeBlocks, processorOptions, ...options }?: mdx.Options) => Promise<Array<TypedFlatConfigItem>>) & {
21
+ configNamesMapSource: {
22
+ readonly setup: "vdustr/mdx/setup";
23
+ readonly processor: "vdustr/mdx/processor";
24
+ readonly rules: "vdustr/mdx/rules";
25
+ readonly codeBlocks: "vdustr/mdx/code-blocks";
26
+ };
27
+ };
10
28
  export { mdx };
@@ -5,43 +5,97 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.mdx = void 0;
7
7
  var _eslintConfig = require("@antfu/eslint-config");
8
+ var _esToolkit = require("es-toolkit");
8
9
  var _renameRules = require("../utils/renameRules");
9
- const mdx = async ({
10
- flatCodeBlocks = true,
10
+ const configNamesMapSource = {
11
+ setup: "vdustr/mdx/setup",
12
+ processor: "vdustr/mdx/processor",
13
+ rules: "vdustr/mdx/rules",
14
+ codeBlocks: "vdustr/mdx/code-blocks"
15
+ };
16
+ const mdxInternal = async ({
17
+ codeBlocks = true,
11
18
  processorOptions,
12
19
  ...options
13
20
  } = {}) => {
14
21
  await (0, _eslintConfig.ensurePackages)(["eslint-plugin-mdx"]);
15
22
  const mdxPlugin = await (0, _eslintConfig.interopDefault)(await Promise.resolve().then(() => require("eslint-plugin-mdx")));
16
- const flatCodeBlocksOptions = typeof flatCodeBlocks !== "object" ? {} : flatCodeBlocks;
23
+ const codeBlocksOptions = typeof codeBlocks !== "object" ? {} : codeBlocks;
17
24
  const configs = [{
18
- name: "vdustr/mdx",
19
- ...mdxPlugin.flat,
25
+ ...(0, _esToolkit.pick)(mdxPlugin.flat, ["plugins"]),
26
+ name: configNamesMapSource.setup
27
+ }, {
28
+ processor: mdxPlugin.createRemarkProcessor({
29
+ lintCodeBlocks: Boolean(codeBlocks),
30
+ ...processorOptions,
31
+ languageMapper: {
32
+ ...processorOptions?.languageMapper
33
+ }
34
+ }),
35
+ name: configNamesMapSource.processor
36
+ }, {
37
+ /**
38
+ * Inherited.
39
+ */
40
+ ...(0, _esToolkit.omit)(mdxPlugin.flat, ["plugins", "processor"]),
41
+ /**
42
+ * Default.
43
+ */
44
+ name: configNamesMapSource.rules,
45
+ ignores: [
46
+ /**
47
+ * Handled by `@eslint/markdown`.
48
+ */
49
+ _eslintConfig.GLOB_MARKDOWN],
50
+ /**
51
+ * Overridable.
52
+ */
20
53
  ...options,
21
54
  rules: {
55
+ /**
56
+ * Inherited.
57
+ */
22
58
  ...(0, _renameRules.renameRules)({
23
59
  ...mdxPlugin.flat.rules
24
60
  }),
61
+ /**
62
+ * Overridable.
63
+ */
25
64
  ...options.rules
26
- },
27
- processor: mdxPlugin.createRemarkProcessor({
28
- lintCodeBlocks: Boolean(flatCodeBlocks),
29
- ...processorOptions,
30
- languageMapper: {
31
- ...processorOptions?.languageMapper
32
- }
33
- })
34
- }, ...(!flatCodeBlocks ? [] : [{
35
- name: "vdustr/mdx/flat-code-blocks",
65
+ }
66
+ }, ...(!codeBlocks ? [] : [{
67
+ /**
68
+ * Inherited.
69
+ */
36
70
  ...mdxPlugin.flatCodeBlocks,
37
- ...flatCodeBlocksOptions,
71
+ /**
72
+ * Default.
73
+ */
74
+ name: configNamesMapSource.codeBlocks,
75
+ ignores: [
76
+ /**
77
+ * Handled by `@eslint/markdown`.
78
+ */
79
+ _eslintConfig.GLOB_MARKDOWN_CODE],
80
+ /**
81
+ * Overridable.
82
+ */
83
+ ...codeBlocksOptions,
38
84
  rules: {
85
+ /**
86
+ * Inherited.
87
+ */
39
88
  ...(0, _renameRules.renameRules)({
40
89
  ...mdxPlugin.flatCodeBlocks.rules
41
90
  }),
42
- ...flatCodeBlocksOptions.rules
91
+ /**
92
+ * Overridable.
93
+ */
94
+ ...codeBlocksOptions.rules
43
95
  }
44
96
  }])];
45
97
  return configs;
46
98
  };
47
- exports.mdx = mdx;
99
+ const mdx = exports.mdx = Object.assign(mdxInternal, {
100
+ configNamesMapSource
101
+ });
@@ -1,3 +1,20 @@
1
1
  import type { TypedFlatConfigItem } from "@antfu/eslint-config";
2
- declare const prettier: () => Promise<TypedFlatConfigItem>;
2
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
3
+ declare const configNamesMapSource: {
4
+ readonly rules: "vdustr/prettier/rules";
5
+ };
6
+ declare module "../types" {
7
+ interface ConfigNamesMap extends ResolveConfigNamesMap<prettier.ConfigNamesMapSource> {
8
+ }
9
+ }
10
+ declare namespace prettier {
11
+ type ConfigNamesMapSource = typeof configNamesMapSource;
12
+ interface Options extends ConfigOverrides {
13
+ }
14
+ }
15
+ declare const prettier: ((options?: prettier.Options) => Promise<TypedFlatConfigItem>) & {
16
+ configNamesMapSource: {
17
+ readonly rules: "vdustr/prettier/rules";
18
+ };
19
+ };
3
20
  export { prettier };
@@ -8,12 +8,35 @@ var _eslintConfig = require("@antfu/eslint-config");
8
8
  var _eslintConfigPrettier = _interopRequireDefault(require("eslint-config-prettier"));
9
9
  var _renameRules = require("../utils/renameRules");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- const prettier = async () => {
11
+ const configNamesMapSource = {
12
+ rules: "vdustr/prettier/rules"
13
+ };
14
+ const prettierInternal = async options => {
12
15
  await (0, _eslintConfig.ensurePackages)(["eslint-config-prettier"]);
13
16
  return {
14
- name: "vdustr/prettier",
17
+ /**
18
+ * Inherited.
19
+ */
15
20
  ..._eslintConfigPrettier.default,
16
- rules: (0, _renameRules.renameRules)(_eslintConfigPrettier.default.rules)
21
+ /**
22
+ * Default.
23
+ */
24
+ name: configNamesMapSource.rules,
25
+ /**
26
+ * Overridable.
27
+ */
28
+ rules: {
29
+ /**
30
+ * Inherited.
31
+ */
32
+ ...(0, _renameRules.renameRules)(_eslintConfigPrettier.default.rules),
33
+ /**
34
+ * Overridable.
35
+ */
36
+ ...options?.rules
37
+ }
17
38
  };
18
39
  };
19
- exports.prettier = prettier;
40
+ const prettier = exports.prettier = Object.assign(prettierInternal, {
41
+ configNamesMapSource
42
+ });
@@ -1,3 +1,26 @@
1
1
  import type { TypedFlatConfigItem } from "@antfu/eslint-config";
2
- declare const storybook: () => Promise<Array<TypedFlatConfigItem>>;
2
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
3
+ declare const configNamesMapSource: {
4
+ readonly setup: "vdustr/stroybook/setup";
5
+ readonly storiesRules: "vdustr/storybook/stories-rules";
6
+ readonly mainRules: "vdustr/storybook/main-rules";
7
+ };
8
+ declare module "../types" {
9
+ interface ConfigNamesMap extends ResolveConfigNamesMap<storybook.ConfigNamesMapSource> {
10
+ }
11
+ }
12
+ declare namespace storybook {
13
+ type ConfigNamesMapSource = typeof configNamesMapSource;
14
+ interface Options {
15
+ storiesConfig?: ConfigOverrides;
16
+ mainConfig?: ConfigOverrides;
17
+ }
18
+ }
19
+ declare const storybook: ((options?: storybook.Options) => Promise<Array<TypedFlatConfigItem>>) & {
20
+ configNamesMapSource: {
21
+ readonly setup: "vdustr/stroybook/setup";
22
+ readonly storiesRules: "vdustr/storybook/stories-rules";
23
+ readonly mainRules: "vdustr/storybook/main-rules";
24
+ };
25
+ };
3
26
  export { storybook };
@@ -5,30 +5,74 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.storybook = void 0;
7
7
  var _eslintConfig = require("@antfu/eslint-config");
8
- var _renameRules = require("../utils/renameRules");
9
- const storybook = async () => {
8
+ var _esToolkit = require("es-toolkit");
9
+ const configNamesMapSource = {
10
+ setup: "vdustr/stroybook/setup",
11
+ storiesRules: "vdustr/storybook/stories-rules",
12
+ mainRules: "vdustr/storybook/main-rules"
13
+ };
14
+ const storybookInternal = async options => {
10
15
  await (0, _eslintConfig.ensurePackages)(["eslint-plugin-storybook"]);
11
16
  const storybookPlugin = await (0, _eslintConfig.interopDefault)(Promise.resolve().then(() => require("eslint-plugin-storybook")));
12
- return storybookPlugin.configs["flat/csf-strict"].map(config => {
13
- const allConfig = config;
14
- const {
15
- rules,
16
- files,
17
- plugins,
18
- ...rest
19
- } = allConfig;
20
- return {
21
- ...rest,
22
- ...(!rules ? null : {
23
- rules: (0, _renameRules.renameRules)(rules)
24
- }),
25
- ...(!files ? null : {
26
- files
27
- }),
28
- ...(!plugins ? null : {
29
- plugins
30
- })
31
- };
32
- });
17
+ const inheritingConfigs = storybookPlugin.configs["flat/csf-strict"];
18
+ const originalSetupConfig = inheritingConfigs[0];
19
+ const originalStoryRulesConfig = inheritingConfigs[1];
20
+ const originalMainRulesConfig = inheritingConfigs[2];
21
+ const originalCsfStrictConfig = inheritingConfigs[3];
22
+ if (!originalSetupConfig) throw new Error("Missing setup config");
23
+ if (!originalStoryRulesConfig) throw new Error("Missing story rules config");
24
+ if (!originalMainRulesConfig) throw new Error("Missing main rules config");
25
+ if (!originalCsfStrictConfig) throw new Error("Missing csf strict config");
26
+ const setupConfig = {
27
+ ...(0, _esToolkit.pick)(originalSetupConfig, ["plugins"]),
28
+ name: configNamesMapSource.setup
29
+ };
30
+ const storyRulesConfig = {
31
+ /**
32
+ * Inherited.
33
+ */
34
+ ...originalStoryRulesConfig,
35
+ ...originalCsfStrictConfig,
36
+ /**
37
+ * Default.
38
+ */
39
+ name: configNamesMapSource.storiesRules,
40
+ /**
41
+ * Overridable.
42
+ */
43
+ ...options?.storiesConfig,
44
+ rules: {
45
+ /**
46
+ * Inherited.
47
+ */
48
+ ...originalStoryRulesConfig.rules,
49
+ ...originalCsfStrictConfig.rules,
50
+ /**
51
+ * Default.
52
+ */
53
+ "import/no-default-export": "off",
54
+ /**
55
+ * Overridable.
56
+ */
57
+ ...options?.storiesConfig?.rules
58
+ }
59
+ };
60
+ const mainRulesConfig = {
61
+ /**
62
+ * Inherited.
63
+ */
64
+ ...originalMainRulesConfig,
65
+ /**
66
+ * Default.
67
+ */
68
+ name: configNamesMapSource.mainRules,
69
+ /**
70
+ * Overridable.
71
+ */
72
+ ...options?.mainConfig
73
+ };
74
+ return [setupConfig, storyRulesConfig, mainRulesConfig];
33
75
  };
34
- exports.storybook = storybook;
76
+ const storybook = exports.storybook = Object.assign(storybookInternal, {
77
+ configNamesMapSource
78
+ });
@@ -1,2 +1,2 @@
1
- // This is a placeholder for `eslint-typegen.d.ts`.
1
+ // Placeholder for `eslint-typegen.d.ts`.
2
2
  "use strict";
@@ -1,10 +1,28 @@
1
1
  import type { TypedFlatConfigItem } from "@antfu/eslint-config";
2
- import type { DistributiveOmit } from "@mui/types";
2
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
3
+ declare const configNamesMapSource: {
4
+ readonly setup: "vdustr/mdx/setup";
5
+ readonly processor: "vdustr/mdx/processor";
6
+ readonly rules: "vdustr/mdx/rules";
7
+ readonly codeBlocks: "vdustr/mdx/code-blocks";
8
+ };
9
+ declare module "../types" {
10
+ interface ConfigNamesMap extends ResolveConfigNamesMap<mdx.ConfigNamesMapSource> {
11
+ }
12
+ }
3
13
  declare namespace mdx {
4
- interface Options extends DistributiveOmit<TypedFlatConfigItem, "processor"> {
14
+ type ConfigNamesMapSource = typeof configNamesMapSource;
15
+ interface Options extends ConfigOverrides {
5
16
  processorOptions?: import("eslint-plugin-mdx").ProcessorOptions;
6
- flatCodeBlocks?: boolean | TypedFlatConfigItem;
17
+ codeBlocks?: boolean | ConfigOverrides;
7
18
  }
8
19
  }
9
- declare const mdx: ({ flatCodeBlocks, processorOptions, ...options }?: mdx.Options) => Promise<Array<TypedFlatConfigItem>>;
20
+ declare const mdx: (({ codeBlocks, processorOptions, ...options }?: mdx.Options) => Promise<Array<TypedFlatConfigItem>>) & {
21
+ configNamesMapSource: {
22
+ readonly setup: "vdustr/mdx/setup";
23
+ readonly processor: "vdustr/mdx/processor";
24
+ readonly rules: "vdustr/mdx/rules";
25
+ readonly codeBlocks: "vdustr/mdx/code-blocks";
26
+ };
27
+ };
10
28
  export { mdx };
@@ -1,46 +1,110 @@
1
- import { ensurePackages, interopDefault } from "@antfu/eslint-config";
1
+ import {
2
+ ensurePackages,
3
+ GLOB_MARKDOWN,
4
+ GLOB_MARKDOWN_CODE,
5
+ interopDefault
6
+ } from "@antfu/eslint-config";
7
+ import { omit, pick } from "es-toolkit";
2
8
  import { renameRules } from "../utils/renameRules.mjs";
3
- const mdx = async ({
4
- flatCodeBlocks = true,
9
+ const configNamesMapSource = {
10
+ setup: "vdustr/mdx/setup",
11
+ processor: "vdustr/mdx/processor",
12
+ rules: "vdustr/mdx/rules",
13
+ codeBlocks: "vdustr/mdx/code-blocks"
14
+ };
15
+ const mdxInternal = async ({
16
+ codeBlocks = true,
5
17
  processorOptions,
6
18
  ...options
7
19
  } = {}) => {
8
20
  await ensurePackages(["eslint-plugin-mdx"]);
9
21
  const mdxPlugin = await interopDefault(await import("eslint-plugin-mdx"));
10
- const flatCodeBlocksOptions = typeof flatCodeBlocks !== "object" ? {} : flatCodeBlocks;
22
+ const codeBlocksOptions = typeof codeBlocks !== "object" ? {} : codeBlocks;
11
23
  const configs = [
12
24
  {
13
- name: "vdustr/mdx",
14
- ...mdxPlugin.flat,
25
+ ...pick(mdxPlugin.flat, ["plugins"]),
26
+ name: configNamesMapSource.setup
27
+ },
28
+ {
29
+ processor: mdxPlugin.createRemarkProcessor({
30
+ lintCodeBlocks: Boolean(codeBlocks),
31
+ ...processorOptions,
32
+ languageMapper: {
33
+ ...processorOptions?.languageMapper
34
+ }
35
+ }),
36
+ name: configNamesMapSource.processor
37
+ },
38
+ {
39
+ /**
40
+ * Inherited.
41
+ */
42
+ ...omit(mdxPlugin.flat, ["plugins", "processor"]),
43
+ /**
44
+ * Default.
45
+ */
46
+ name: configNamesMapSource.rules,
47
+ ignores: [
48
+ /**
49
+ * Handled by `@eslint/markdown`.
50
+ */
51
+ GLOB_MARKDOWN
52
+ ],
53
+ /**
54
+ * Overridable.
55
+ */
15
56
  ...options,
16
57
  rules: {
58
+ /**
59
+ * Inherited.
60
+ */
17
61
  ...renameRules({
18
62
  ...mdxPlugin.flat.rules
19
63
  }),
64
+ /**
65
+ * Overridable.
66
+ */
20
67
  ...options.rules
21
- },
22
- processor: mdxPlugin.createRemarkProcessor({
23
- lintCodeBlocks: Boolean(flatCodeBlocks),
24
- ...processorOptions,
25
- languageMapper: {
26
- ...processorOptions?.languageMapper
27
- }
28
- })
68
+ }
29
69
  },
30
- ...!flatCodeBlocks ? [] : [
70
+ ...!codeBlocks ? [] : [
31
71
  {
32
- name: "vdustr/mdx/flat-code-blocks",
72
+ /**
73
+ * Inherited.
74
+ */
33
75
  ...mdxPlugin.flatCodeBlocks,
34
- ...flatCodeBlocksOptions,
76
+ /**
77
+ * Default.
78
+ */
79
+ name: configNamesMapSource.codeBlocks,
80
+ ignores: [
81
+ /**
82
+ * Handled by `@eslint/markdown`.
83
+ */
84
+ GLOB_MARKDOWN_CODE
85
+ ],
86
+ /**
87
+ * Overridable.
88
+ */
89
+ ...codeBlocksOptions,
35
90
  rules: {
91
+ /**
92
+ * Inherited.
93
+ */
36
94
  ...renameRules({
37
95
  ...mdxPlugin.flatCodeBlocks.rules
38
96
  }),
39
- ...flatCodeBlocksOptions.rules
97
+ /**
98
+ * Overridable.
99
+ */
100
+ ...codeBlocksOptions.rules
40
101
  }
41
102
  }
42
103
  ]
43
104
  ];
44
105
  return configs;
45
106
  };
107
+ const mdx = Object.assign(mdxInternal, {
108
+ configNamesMapSource
109
+ });
46
110
  export { mdx };
@@ -1,3 +1,20 @@
1
1
  import type { TypedFlatConfigItem } from "@antfu/eslint-config";
2
- declare const prettier: () => Promise<TypedFlatConfigItem>;
2
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
3
+ declare const configNamesMapSource: {
4
+ readonly rules: "vdustr/prettier/rules";
5
+ };
6
+ declare module "../types" {
7
+ interface ConfigNamesMap extends ResolveConfigNamesMap<prettier.ConfigNamesMapSource> {
8
+ }
9
+ }
10
+ declare namespace prettier {
11
+ type ConfigNamesMapSource = typeof configNamesMapSource;
12
+ interface Options extends ConfigOverrides {
13
+ }
14
+ }
15
+ declare const prettier: ((options?: prettier.Options) => Promise<TypedFlatConfigItem>) & {
16
+ configNamesMapSource: {
17
+ readonly rules: "vdustr/prettier/rules";
18
+ };
19
+ };
3
20
  export { prettier };
@@ -1,12 +1,36 @@
1
1
  import { ensurePackages } from "@antfu/eslint-config";
2
2
  import eslintConfigPrettier from "eslint-config-prettier";
3
3
  import { renameRules } from "../utils/renameRules.mjs";
4
- const prettier = async () => {
4
+ const configNamesMapSource = {
5
+ rules: "vdustr/prettier/rules"
6
+ };
7
+ const prettierInternal = async (options) => {
5
8
  await ensurePackages(["eslint-config-prettier"]);
6
9
  return {
7
- name: "vdustr/prettier",
10
+ /**
11
+ * Inherited.
12
+ */
8
13
  ...eslintConfigPrettier,
9
- rules: renameRules(eslintConfigPrettier.rules)
14
+ /**
15
+ * Default.
16
+ */
17
+ name: configNamesMapSource.rules,
18
+ /**
19
+ * Overridable.
20
+ */
21
+ rules: {
22
+ /**
23
+ * Inherited.
24
+ */
25
+ ...renameRules(eslintConfigPrettier.rules),
26
+ /**
27
+ * Overridable.
28
+ */
29
+ ...options?.rules
30
+ }
10
31
  };
11
32
  };
33
+ const prettier = Object.assign(prettierInternal, {
34
+ configNamesMapSource
35
+ });
12
36
  export { prettier };
@@ -1,3 +1,26 @@
1
1
  import type { TypedFlatConfigItem } from "@antfu/eslint-config";
2
- declare const storybook: () => Promise<Array<TypedFlatConfigItem>>;
2
+ import type { ConfigOverrides, ResolveConfigNamesMap } from "../types";
3
+ declare const configNamesMapSource: {
4
+ readonly setup: "vdustr/stroybook/setup";
5
+ readonly storiesRules: "vdustr/storybook/stories-rules";
6
+ readonly mainRules: "vdustr/storybook/main-rules";
7
+ };
8
+ declare module "../types" {
9
+ interface ConfigNamesMap extends ResolveConfigNamesMap<storybook.ConfigNamesMapSource> {
10
+ }
11
+ }
12
+ declare namespace storybook {
13
+ type ConfigNamesMapSource = typeof configNamesMapSource;
14
+ interface Options {
15
+ storiesConfig?: ConfigOverrides;
16
+ mainConfig?: ConfigOverrides;
17
+ }
18
+ }
19
+ declare const storybook: ((options?: storybook.Options) => Promise<Array<TypedFlatConfigItem>>) & {
20
+ configNamesMapSource: {
21
+ readonly setup: "vdustr/stroybook/setup";
22
+ readonly storiesRules: "vdustr/storybook/stories-rules";
23
+ readonly mainRules: "vdustr/storybook/main-rules";
24
+ };
25
+ };
3
26
  export { storybook };