@creo-team/eslint-config 2.4.3 → 2.5.3
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/README.md +59 -15
- package/dist/constants.d.ts +42 -0
- package/dist/constants.js +54 -0
- package/dist/constants.js.map +1 -1
- package/dist/eslint.config.js +16 -9
- package/dist/eslint.config.js.map +1 -1
- package/dist/rules.js +2 -13
- package/dist/rules.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -120,36 +120,31 @@ Type-aware rules need a `tsconfig.json` (or `tsconfig.eslint.json`) that include
|
|
|
120
120
|
Spread and override:
|
|
121
121
|
|
|
122
122
|
```javascript
|
|
123
|
+
const { error, warn } = require('@creo-team/eslint-config/constants')
|
|
123
124
|
const base = require('@creo-team/eslint-config')
|
|
124
|
-
module.exports = [...base, { rules: { 'no-console':
|
|
125
|
+
module.exports = [...base, { rules: { 'no-console': warn } }]
|
|
125
126
|
```
|
|
126
127
|
|
|
127
128
|
### Customizing rules
|
|
128
129
|
|
|
129
|
-
Override any rule by spreading the base config and adding your own.
|
|
130
|
+
Override any rule by spreading the base config and adding your own. Use constants from `@creo-team/eslint-config/constants` — no magic strings.
|
|
130
131
|
|
|
131
132
|
**1. Naming convention — allow UPPER_SNAKE for constants**
|
|
132
133
|
|
|
133
|
-
Default: `camelCase` for variables, `PascalCase` for types. To allow `UPPER_SNAKE` for constants:
|
|
134
|
+
Default: `camelCase` for variables, `PascalCase` for types and enum members. To allow `UPPER_SNAKE` for constants:
|
|
134
135
|
|
|
135
136
|
```javascript
|
|
136
137
|
const { createConfig } = require('@creo-team/eslint-config')
|
|
138
|
+
const { error, FilesPattern, namingConvention } = require('@creo-team/eslint-config/constants')
|
|
137
139
|
|
|
138
140
|
const base = createConfig()
|
|
139
141
|
|
|
140
142
|
module.exports = [
|
|
141
143
|
...base,
|
|
142
144
|
{
|
|
143
|
-
files:
|
|
145
|
+
files: FilesPattern.TsAndTsx,
|
|
144
146
|
rules: {
|
|
145
|
-
'@typescript-eslint/naming-convention': [
|
|
146
|
-
'error',
|
|
147
|
-
{ format: ['camelCase'], selector: 'default' },
|
|
148
|
-
{ format: ['camelCase', 'PascalCase'], selector: 'import' },
|
|
149
|
-
{ format: ['camelCase', 'PascalCase', 'UPPER_CASE'], selector: 'variable' },
|
|
150
|
-
{ format: ['PascalCase'], selector: 'typeLike' },
|
|
151
|
-
{ format: ['PascalCase'], selector: 'enumMember' },
|
|
152
|
-
],
|
|
147
|
+
'@typescript-eslint/naming-convention': [error, ...namingConvention.withUpperCaseVariables],
|
|
153
148
|
},
|
|
154
149
|
},
|
|
155
150
|
]
|
|
@@ -161,6 +156,7 @@ Install [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-un
|
|
|
161
156
|
|
|
162
157
|
```javascript
|
|
163
158
|
const { createConfig } = require('@creo-team/eslint-config')
|
|
159
|
+
const { error, FilenameCase, FilesPattern } = require('@creo-team/eslint-config/constants')
|
|
164
160
|
const unicorn = require('eslint-plugin-unicorn')
|
|
165
161
|
|
|
166
162
|
const base = createConfig()
|
|
@@ -168,9 +164,10 @@ const base = createConfig()
|
|
|
168
164
|
module.exports = [
|
|
169
165
|
...base,
|
|
170
166
|
{
|
|
167
|
+
files: FilesPattern.TsAndTsx,
|
|
171
168
|
plugins: { unicorn },
|
|
172
169
|
rules: {
|
|
173
|
-
'unicorn/filename-case': [
|
|
170
|
+
'unicorn/filename-case': [error, { case: FilenameCase.KebabCase }],
|
|
174
171
|
},
|
|
175
172
|
},
|
|
176
173
|
]
|
|
@@ -193,9 +190,9 @@ module.exports = [
|
|
|
193
190
|
]
|
|
194
191
|
```
|
|
195
192
|
|
|
196
|
-
**4. Rule severity constants**
|
|
193
|
+
**4. Rule severity and naming constants**
|
|
197
194
|
|
|
198
|
-
Import
|
|
195
|
+
Import from `@creo-team/eslint-config/constants` for consistent, typo-free overrides:
|
|
199
196
|
|
|
200
197
|
```javascript
|
|
201
198
|
const { createConfig } = require('@creo-team/eslint-config')
|
|
@@ -213,6 +210,38 @@ module.exports = [
|
|
|
213
210
|
]
|
|
214
211
|
```
|
|
215
212
|
|
|
213
|
+
**5. Custom naming convention — build your own**
|
|
214
|
+
|
|
215
|
+
Use `NamingFormat` and `NamingSelector` for full control:
|
|
216
|
+
|
|
217
|
+
```javascript
|
|
218
|
+
const { createConfig } = require('@creo-team/eslint-config')
|
|
219
|
+
const {
|
|
220
|
+
error,
|
|
221
|
+
FilesPattern,
|
|
222
|
+
NamingFormat,
|
|
223
|
+
NamingSelector,
|
|
224
|
+
} = require('@creo-team/eslint-config/constants')
|
|
225
|
+
|
|
226
|
+
const base = createConfig()
|
|
227
|
+
|
|
228
|
+
module.exports = [
|
|
229
|
+
...base,
|
|
230
|
+
{
|
|
231
|
+
files: FilesPattern.TsAndTsx,
|
|
232
|
+
rules: {
|
|
233
|
+
'@typescript-eslint/naming-convention': [
|
|
234
|
+
error,
|
|
235
|
+
{ format: [NamingFormat.CamelCase], selector: NamingSelector.Default },
|
|
236
|
+
{ format: [NamingFormat.PascalCase], selector: NamingSelector.TypeLike },
|
|
237
|
+
{ format: [NamingFormat.PascalCase], selector: NamingSelector.EnumMember },
|
|
238
|
+
// ... add more as needed
|
|
239
|
+
],
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
]
|
|
243
|
+
```
|
|
244
|
+
|
|
216
245
|
**Examples:** See `examples/rule-overrides/` for working configs and tests.
|
|
217
246
|
|
|
218
247
|
## Why this config
|
|
@@ -310,6 +339,21 @@ structure: {
|
|
|
310
339
|
}
|
|
311
340
|
```
|
|
312
341
|
|
|
342
|
+
|
|
343
|
+
## Constants (`@creo-team/eslint-config/constants`)
|
|
344
|
+
|
|
345
|
+
Import rule values and presets — no magic strings:
|
|
346
|
+
|
|
347
|
+
| Export | Use |
|
|
348
|
+
|--------|-----|
|
|
349
|
+
| `error`, `warn`, `off` | Rule severity |
|
|
350
|
+
| `NamingFormat` | `CamelCase`, `PascalCase`, `UpperCase` |
|
|
351
|
+
| `NamingSelector` | `Default`, `Import`, `Variable`, `TypeLike`, `EnumMember` |
|
|
352
|
+
| `namingConvention` | `default`, `withUpperCaseVariables` presets |
|
|
353
|
+
| `FilesPattern` | `TsAndTsx` — `['**/*.ts', '**/*.tsx']` |
|
|
354
|
+
| `FilenameCase` | `KebabCase`, `CamelCase`, `PascalCase` (unicorn) |
|
|
355
|
+
| `AppStructurePreset` | `NextJs`, `Express`, `React`, etc. |
|
|
356
|
+
|
|
313
357
|
## What’s included
|
|
314
358
|
|
|
315
359
|
- **TypeScript ESLint** — recommended + strict type-checked, stylistic
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,8 +1,50 @@
|
|
|
1
1
|
export const all: "all";
|
|
2
2
|
export const always: "always";
|
|
3
|
+
export namespace AppStructurePreset {
|
|
4
|
+
let Express: string;
|
|
5
|
+
let NextJs: string;
|
|
6
|
+
let NextJsAppRouter: string;
|
|
7
|
+
let React: string;
|
|
8
|
+
let Src: string;
|
|
9
|
+
}
|
|
3
10
|
export const error: "error";
|
|
11
|
+
export namespace FilenameCase {
|
|
12
|
+
let CamelCase: string;
|
|
13
|
+
let KebabCase: string;
|
|
14
|
+
let PascalCase: string;
|
|
15
|
+
}
|
|
16
|
+
export namespace FilesPattern {
|
|
17
|
+
let TsAndTsx: string[];
|
|
18
|
+
}
|
|
19
|
+
export namespace namingConvention {
|
|
20
|
+
export { namingConventionDefault as default };
|
|
21
|
+
export { namingConventionWithUpperCaseVariables as withUpperCaseVariables };
|
|
22
|
+
}
|
|
23
|
+
export namespace NamingFormat {
|
|
24
|
+
let CamelCase_1: string;
|
|
25
|
+
export { CamelCase_1 as CamelCase };
|
|
26
|
+
let PascalCase_1: string;
|
|
27
|
+
export { PascalCase_1 as PascalCase };
|
|
28
|
+
export let UpperCase: string;
|
|
29
|
+
}
|
|
30
|
+
export namespace NamingSelector {
|
|
31
|
+
let Default: string;
|
|
32
|
+
let EnumMember: string;
|
|
33
|
+
let Import: string;
|
|
34
|
+
let TypeLike: string;
|
|
35
|
+
let Variable: string;
|
|
36
|
+
}
|
|
4
37
|
export const never: "never";
|
|
5
38
|
export const none: "none";
|
|
6
39
|
export const off: "off";
|
|
7
40
|
export const warn: "warn";
|
|
41
|
+
declare const namingConventionDefault: {
|
|
42
|
+
format: string[];
|
|
43
|
+
selector: string;
|
|
44
|
+
}[];
|
|
45
|
+
declare const namingConventionWithUpperCaseVariables: {
|
|
46
|
+
format: string[];
|
|
47
|
+
selector: string;
|
|
48
|
+
}[];
|
|
49
|
+
export {};
|
|
8
50
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -6,10 +6,64 @@ const always = 'always';
|
|
|
6
6
|
const never = 'never';
|
|
7
7
|
const none = 'none';
|
|
8
8
|
const all = 'all';
|
|
9
|
+
const NamingFormat = {
|
|
10
|
+
CamelCase: 'camelCase',
|
|
11
|
+
PascalCase: 'PascalCase',
|
|
12
|
+
UpperCase: 'UPPER_CASE',
|
|
13
|
+
};
|
|
14
|
+
const NamingSelector = {
|
|
15
|
+
Default: 'default',
|
|
16
|
+
EnumMember: 'enumMember',
|
|
17
|
+
Import: 'import',
|
|
18
|
+
TypeLike: 'typeLike',
|
|
19
|
+
Variable: 'variable',
|
|
20
|
+
};
|
|
21
|
+
const namingConventionDefault = [
|
|
22
|
+
{ format: [NamingFormat.CamelCase], selector: NamingSelector.Default },
|
|
23
|
+
{ format: [NamingFormat.CamelCase, NamingFormat.PascalCase], selector: NamingSelector.Import },
|
|
24
|
+
{ format: [NamingFormat.CamelCase, NamingFormat.PascalCase], selector: NamingSelector.Variable },
|
|
25
|
+
{ format: [NamingFormat.PascalCase], selector: NamingSelector.TypeLike },
|
|
26
|
+
{ format: [NamingFormat.PascalCase], selector: NamingSelector.EnumMember },
|
|
27
|
+
];
|
|
28
|
+
const namingConventionWithUpperCaseVariables = [
|
|
29
|
+
{ format: [NamingFormat.CamelCase], selector: NamingSelector.Default },
|
|
30
|
+
{ format: [NamingFormat.CamelCase, NamingFormat.PascalCase], selector: NamingSelector.Import },
|
|
31
|
+
{
|
|
32
|
+
format: [NamingFormat.CamelCase, NamingFormat.PascalCase, NamingFormat.UpperCase],
|
|
33
|
+
selector: NamingSelector.Variable,
|
|
34
|
+
},
|
|
35
|
+
{ format: [NamingFormat.PascalCase], selector: NamingSelector.TypeLike },
|
|
36
|
+
{ format: [NamingFormat.PascalCase], selector: NamingSelector.EnumMember },
|
|
37
|
+
];
|
|
38
|
+
const namingConvention = {
|
|
39
|
+
default: namingConventionDefault,
|
|
40
|
+
withUpperCaseVariables: namingConventionWithUpperCaseVariables,
|
|
41
|
+
};
|
|
42
|
+
const FilesPattern = {
|
|
43
|
+
TsAndTsx: ['**/*.ts', '**/*.tsx'],
|
|
44
|
+
};
|
|
45
|
+
const FilenameCase = {
|
|
46
|
+
CamelCase: 'camelCase',
|
|
47
|
+
KebabCase: 'kebabCase',
|
|
48
|
+
PascalCase: 'pascalCase',
|
|
49
|
+
};
|
|
50
|
+
const AppStructurePreset = {
|
|
51
|
+
Express: 'express',
|
|
52
|
+
NextJs: 'nextjs',
|
|
53
|
+
NextJsAppRouter: 'nextjsAppRouter',
|
|
54
|
+
React: 'react',
|
|
55
|
+
Src: 'src',
|
|
56
|
+
};
|
|
9
57
|
module.exports = {
|
|
10
58
|
all,
|
|
11
59
|
always,
|
|
60
|
+
AppStructurePreset,
|
|
12
61
|
error,
|
|
62
|
+
FilenameCase,
|
|
63
|
+
FilesPattern,
|
|
64
|
+
namingConvention,
|
|
65
|
+
NamingFormat,
|
|
66
|
+
NamingSelector,
|
|
13
67
|
never,
|
|
14
68
|
none,
|
|
15
69
|
off,
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.js"],"names":[],"mappings":";AAsBA,MAAM,GAAG,GAAG,KAAK,CAAA;AACjB,MAAM,IAAI,GAAG,MAAM,CAAA;AACnB,MAAM,KAAK,GAAG,OAAO,CAAA;AAMrB,MAAM,MAAM,GAAG,QAAQ,CAAA;AACvB,MAAM,KAAK,GAAG,OAAO,CAAA;AACrB,MAAM,IAAI,GAAG,MAAM,CAAA;AACnB,MAAM,GAAG,GAAG,KAAK,CAAA;AAMjB,MAAM,YAAY,GAAG;IACpB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,YAAY;CACvB,CAAA;AAED,MAAM,cAAc,GAAG;IACtB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACpB,CAAA;AAMD,MAAM,uBAAuB,GAAG;IAC/B,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE;IACtE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE;IAC9F,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IAChG,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACxE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE;CAC1E,CAAA;AAED,MAAM,sCAAsC,GAAG;IAC9C,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE;IACtE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE;IAC9F;QACC,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC;QACjF,QAAQ,EAAE,cAAc,CAAC,QAAQ;KACjC;IACD,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACxE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE;CAC1E,CAAA;AAED,MAAM,gBAAgB,GAAG;IACxB,OAAO,EAAE,uBAAuB;IAChC,sBAAsB,EAAE,sCAAsC;CAC9D,CAAA;AAMD,MAAM,YAAY,GAAG;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;CACjC,CAAA;AAMD,MAAM,YAAY,GAAG;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;CACxB,CAAA;AAMD,MAAM,kBAAkB,GAAG;IAC1B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,iBAAiB;IAClC,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACV,CAAA;AAED,MAAM,CAAC,OAAO,GAAG;IAChB,GAAG;IACH,MAAM;IACN,kBAAkB;IAClB,KAAK;IACL,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,KAAK;IACL,IAAI;IACJ,GAAG;IACH,IAAI;CACJ,CAAA"}
|
package/dist/eslint.config.js
CHANGED
|
@@ -6,7 +6,7 @@ const jsdoc = require('eslint-plugin-jsdoc');
|
|
|
6
6
|
const perfectionist = require('eslint-plugin-perfectionist');
|
|
7
7
|
const prettier = require('eslint-plugin-prettier');
|
|
8
8
|
const tsEslint = require('typescript-eslint');
|
|
9
|
-
const { off } = require('./constants.js');
|
|
9
|
+
const { namingConvention, off } = require('./constants.js');
|
|
10
10
|
const { rules } = require('./rules.js');
|
|
11
11
|
const { buildStructureConfig } = require('./structure.js');
|
|
12
12
|
const { getTsConfigFile } = require('./utils.js');
|
|
@@ -39,6 +39,13 @@ function createConfig(options = {}) {
|
|
|
39
39
|
}
|
|
40
40
|
const configBlocks = [
|
|
41
41
|
{ ignores },
|
|
42
|
+
{
|
|
43
|
+
files: ['constants.js', 'rules.js'],
|
|
44
|
+
rules: {
|
|
45
|
+
'@typescript-eslint/naming-convention': off,
|
|
46
|
+
'perfectionist/sort-objects': off,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
42
49
|
...(projectStructureBlock ? [projectStructureBlock] : []),
|
|
43
50
|
eslint.configs.recommended,
|
|
44
51
|
...tsEslint.configs.recommendedTypeChecked,
|
|
@@ -84,18 +91,18 @@ function createConfig(options = {}) {
|
|
|
84
91
|
},
|
|
85
92
|
rules: {
|
|
86
93
|
...rules,
|
|
87
|
-
'@typescript-eslint/naming-convention': [
|
|
88
|
-
'error',
|
|
89
|
-
{ format: ['camelCase'], selector: 'default' },
|
|
90
|
-
{ format: ['camelCase', 'PascalCase'], selector: 'import' },
|
|
91
|
-
{ format: ['camelCase', 'PascalCase'], selector: 'variable' },
|
|
92
|
-
{ format: ['PascalCase'], selector: 'typeLike' },
|
|
93
|
-
{ format: ['PascalCase'], selector: 'enumMember' },
|
|
94
|
-
],
|
|
94
|
+
'@typescript-eslint/naming-convention': ['error', ...namingConvention.default],
|
|
95
95
|
'@typescript-eslint/no-misused-spread': off,
|
|
96
96
|
'@typescript-eslint/no-unsafe-return': off,
|
|
97
97
|
},
|
|
98
98
|
},
|
|
99
|
+
{
|
|
100
|
+
files: ['constants.js', 'rules.js'],
|
|
101
|
+
rules: {
|
|
102
|
+
'@typescript-eslint/naming-convention': off,
|
|
103
|
+
'perfectionist/sort-objects': off,
|
|
104
|
+
},
|
|
105
|
+
},
|
|
99
106
|
];
|
|
100
107
|
return tsEslint.config(...configBlocks);
|
|
101
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../eslint.config.js"],"names":[],"mappings":";AAEA,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACpC,MAAM,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;AACpD,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;AAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAE7C,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../eslint.config.js"],"names":[],"mappings":"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"}
|
package/dist/rules.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const { all, always, error, never, none, off, warn } = require('./constants.js');
|
|
3
|
-
const { camelCase, pascalCase } = {
|
|
4
|
-
camelCase: 'camelCase',
|
|
5
|
-
pascalCase: 'PascalCase',
|
|
6
|
-
};
|
|
2
|
+
const { all, always, error, namingConvention, never, none, off, warn } = require('./constants.js');
|
|
7
3
|
const maxClasses = 1;
|
|
8
4
|
const maxComplexity = 15;
|
|
9
5
|
const maxLinesPerFile = 400;
|
|
@@ -124,14 +120,7 @@ const tsEslint = {
|
|
|
124
120
|
'@typescript-eslint/consistent-type-exports': error,
|
|
125
121
|
'@typescript-eslint/consistent-type-imports': error,
|
|
126
122
|
'@typescript-eslint/dot-notation': error,
|
|
127
|
-
'@typescript-eslint/naming-convention': [
|
|
128
|
-
error,
|
|
129
|
-
{ format: [camelCase], selector: 'default' },
|
|
130
|
-
{ format: [camelCase, pascalCase], selector: 'import' },
|
|
131
|
-
{ format: [camelCase], selector: 'variable' },
|
|
132
|
-
{ format: [pascalCase], selector: 'typeLike' },
|
|
133
|
-
{ format: [pascalCase], selector: 'enumMember' },
|
|
134
|
-
],
|
|
123
|
+
'@typescript-eslint/naming-convention': [error, ...namingConvention.default],
|
|
135
124
|
'@typescript-eslint/no-explicit-any': 'warn',
|
|
136
125
|
'@typescript-eslint/no-extraneous-class': off,
|
|
137
126
|
'@typescript-eslint/no-unnecessary-condition': off,
|
package/dist/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../rules.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../rules.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@creo-team/eslint-config","version":"2.
|
|
1
|
+
{"name":"@creo-team/eslint-config","version":"2.5.3","description":"ESLint flat config: TypeScript (strict), Prettier, JSDoc, complexity, no-magic-numbers. createConfig() for options.","author":"Colten Krauter <coltenkrauter>","main":"dist/eslint.config.js","homepage":"https://github.com/creo-team/eslint-config","repository":{"type":"git","url":"git+https://github.com/creo-team/eslint-config.git"},"scripts":{"build":"tsc","fix":"npm run lint -- --fix","lint":"npx eslint .","prepublishOnly":"npm run build","test":"vitest run && npm run lint","test:watch":"vitest","typecheck":"tsc --noEmit","upgrade:all":"npx npm-check-updates --upgrade --reject \"eslint|@eslint/js\" && npm install"},"keywords":["eslint","eslint-config","creo-team","flat-config","typescript","prettier","jsdoc","linting","lint"],"license":"ISC","dependencies":{"@eslint/js":"^9.39.3","@stylistic/eslint-plugin":"^5.9.0","eslint":"^9.39.3","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import":"^2.32.0","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-perfectionist":"^4.15.1","eslint-plugin-prettier":"^5.5.5","typescript":"^5.9.3","typescript-eslint":"^8.56.0"},"files":["dist/eslint.config.js","dist/rules.js","dist/utils.js","dist/constants.js","dist/structure.js","dist/*.d.ts","dist/*.js.map"],"type":"commonjs","devDependencies":{"react":"^19.2.4","react-dom":"^19.2.4","vitest":"^3.2.4"},"engines":{"node":">=20.0.0","npm":">=10"},"publishConfig":{"access":"public"},"exports":{".":{"require":"./dist/eslint.config.js","default":"./dist/eslint.config.js"},"./constants":{"require":"./dist/constants.js","default":"./dist/constants.js"}}}
|