-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathindex.js
102 lines (87 loc) · 4.03 KB
/
index.js
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
97
98
99
100
101
102
import { name, version } from '../package.json';
export const rules = {
'no-unresolved': require('./rules/no-unresolved'),
named: require('./rules/named'),
default: require('./rules/default'),
namespace: require('./rules/namespace'),
'no-namespace': require('./rules/no-namespace'),
export: require('./rules/export'),
'no-mutable-exports': require('./rules/no-mutable-exports'),
extensions: require('./rules/extensions'),
'no-restricted-paths': require('./rules/no-restricted-paths'),
'no-internal-modules': require('./rules/no-internal-modules'),
'group-exports': require('./rules/group-exports'),
'no-relative-packages': require('./rules/no-relative-packages'),
'no-relative-parent-imports': require('./rules/no-relative-parent-imports'),
'consistent-type-specifier-style': require('./rules/consistent-type-specifier-style'),
'no-self-import': require('./rules/no-self-import'),
'no-cycle': require('./rules/no-cycle'),
'no-named-default': require('./rules/no-named-default'),
'no-named-as-default': require('./rules/no-named-as-default'),
'no-named-as-default-member': require('./rules/no-named-as-default-member'),
'no-anonymous-default-export': require('./rules/no-anonymous-default-export'),
'no-unused-modules': require('./rules/no-unused-modules'),
'no-commonjs': require('./rules/no-commonjs'),
'no-amd': require('./rules/no-amd'),
'no-duplicates': require('./rules/no-duplicates'),
first: require('./rules/first'),
'max-dependencies': require('./rules/max-dependencies'),
'no-extraneous-dependencies': require('./rules/no-extraneous-dependencies'),
'no-absolute-path': require('./rules/no-absolute-path'),
'no-nodejs-modules': require('./rules/no-nodejs-modules'),
'no-webpack-loader-syntax': require('./rules/no-webpack-loader-syntax'),
order: require('./rules/order'),
'newline-after-import': require('./rules/newline-after-import'),
'prefer-default-export': require('./rules/prefer-default-export'),
'no-default-export': require('./rules/no-default-export'),
'no-named-export': require('./rules/no-named-export'),
'no-dynamic-require': require('./rules/no-dynamic-require'),
unambiguous: require('./rules/unambiguous'),
'no-unassigned-import': require('./rules/no-unassigned-import'),
'no-useless-path-segments': require('./rules/no-useless-path-segments'),
'dynamic-import-chunkname': require('./rules/dynamic-import-chunkname'),
'no-import-module-exports': require('./rules/no-import-module-exports'),
'no-empty-named-blocks': require('./rules/no-empty-named-blocks'),
// export
'exports-last': require('./rules/exports-last'),
// metadata-based
'no-deprecated': require('./rules/no-deprecated'),
// deprecated aliases to rules
'imports-first': require('./rules/imports-first'),
};
export const configs = {
recommended: require('../config/recommended'),
errors: require('../config/errors'),
warnings: require('../config/warnings'),
// shhhh... work in progress "secret" rules
'stage-0': require('../config/stage-0'),
// useful stuff for folks using various environments
react: require('../config/react'),
'react-native': require('../config/react-native'),
electron: require('../config/electron'),
typescript: require('../config/typescript'),
};
// Base Plugin Object
const importPlugin = {
meta: { name, version },
rules,
};
// Create flat configs (Only ones that declare plugins and parser options need to be different from the legacy config)
const createFlatConfig = (baseConfig, configName) => ({
...baseConfig,
name: `import/${configName}`,
plugins: { import: importPlugin },
});
export const flatConfigs = {
recommended: createFlatConfig(
require('../config/flat/recommended'),
'recommended',
),
errors: createFlatConfig(require('../config/flat/errors'), 'errors'),
warnings: createFlatConfig(require('../config/flat/warnings'), 'warnings'),
// useful stuff for folks using various environments
react: require('../config/flat/react'),
'react-native': configs['react-native'],
electron: configs.electron,
typescript: configs.typescript,
};