gaoluyang
5 小时以前 cb9cd49627b65a4c0e137e08063271a8cefe1826
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import type { OxlintConfig } from 'oxlint';
 
import { defineConfig as defineOxlintConfig } from 'oxlint';
 
import { command } from './command';
import { comments } from './comments';
import { ignores } from './ignores';
import { importPluginConfig } from './import';
import { javascript } from './javascript';
import { node } from './node';
import { overrides } from './overrides';
import { plugins } from './plugins';
import { tailwindcss } from './tailwindcss';
import { test } from './test';
import { typescript } from './typescript';
import { unicorn } from './unicorn';
import { vue } from './vue';
 
function mergeOxlintConfigs(...configs: OxlintConfig[]): OxlintConfig {
  const merged: OxlintConfig = {};
 
  for (const config of configs) {
    merged.categories =
      merged.categories && config.categories
        ? { ...merged.categories, ...config.categories }
        : (config.categories ?? merged.categories);
    merged.env =
      merged.env && config.env
        ? { ...merged.env, ...config.env }
        : (config.env ?? merged.env);
    merged.globals =
      merged.globals && config.globals
        ? { ...merged.globals, ...config.globals }
        : (config.globals ?? merged.globals);
    merged.ignorePatterns = [
      ...(merged.ignorePatterns ?? []),
      ...(config.ignorePatterns ?? []),
    ];
    merged.jsPlugins = [
      ...new Set([...(merged.jsPlugins ?? []), ...(config.jsPlugins ?? [])]),
    ];
    merged.overrides = [
      ...(merged.overrides ?? []),
      ...(config.overrides ?? []),
    ];
    merged.plugins = [
      ...new Set([...(merged.plugins ?? []), ...(config.plugins ?? [])]),
    ];
    merged.rules =
      merged.rules && config.rules
        ? { ...merged.rules, ...config.rules }
        : (config.rules ?? merged.rules);
    merged.settings =
      merged.settings && config.settings
        ? { ...merged.settings, ...config.settings }
        : (config.settings ?? merged.settings);
  }
 
  return merged;
}
 
const oxlintConfig = defineOxlintConfig(
  mergeOxlintConfigs(
    javascript,
    command,
    comments,
    ignores,
    plugins,
    importPluginConfig,
    node,
    overrides,
    tailwindcss,
    test,
    typescript,
    unicorn,
    vue,
  ),
);
 
export {
  command,
  comments,
  ignores,
  importPluginConfig,
  javascript,
  mergeOxlintConfigs,
  node,
  overrides,
  oxlintConfig,
  plugins,
  tailwindcss,
  test,
  typescript,
  unicorn,
  vue,
};