@clipboard-health/eslint-config 4.9.0 → 4.10.1
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/package.json +1 -1
- package/src/index.d.ts +46 -46
- package/src/index.js +80 -72
- package/src/index.js.map +1 -1
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
declare let _extends: string[];
|
|
2
2
|
export { _extends as extends };
|
|
3
|
+
export declare let overrides: ({
|
|
4
|
+
files: string[];
|
|
5
|
+
rules: {
|
|
6
|
+
"@typescript-eslint/no-unsafe-assignment": string;
|
|
7
|
+
"sonarjs/no-duplicate-string": string;
|
|
8
|
+
"@typescript-eslint/ban-types"?: never;
|
|
9
|
+
};
|
|
10
|
+
} | {
|
|
11
|
+
files: string[];
|
|
12
|
+
rules: {
|
|
13
|
+
"@typescript-eslint/ban-types": (string | {
|
|
14
|
+
extendDefaults: boolean;
|
|
15
|
+
types: {
|
|
16
|
+
null: boolean;
|
|
17
|
+
};
|
|
18
|
+
})[];
|
|
19
|
+
"@typescript-eslint/no-unsafe-assignment"?: never;
|
|
20
|
+
"sonarjs/no-duplicate-string"?: never;
|
|
21
|
+
};
|
|
22
|
+
})[];
|
|
3
23
|
export declare let parser: string;
|
|
4
24
|
export declare namespace parserOptions {
|
|
5
25
|
let project: string[];
|
|
@@ -7,82 +27,62 @@ export declare namespace parserOptions {
|
|
|
7
27
|
}
|
|
8
28
|
export declare let plugins: string[];
|
|
9
29
|
export declare let rules: {
|
|
10
|
-
"capitalized-comments": string;
|
|
11
30
|
"@typescript-eslint/consistent-type-definitions": string[];
|
|
12
31
|
"@typescript-eslint/naming-convention": string;
|
|
13
|
-
"security/detect-object-injection": string;
|
|
14
32
|
"@typescript-eslint/no-unused-vars": (string | {
|
|
15
33
|
argsIgnorePattern: string;
|
|
16
34
|
})[];
|
|
17
|
-
"no-return-await": string;
|
|
18
35
|
"@typescript-eslint/return-await": string[];
|
|
19
|
-
|
|
36
|
+
"capitalized-comments": string;
|
|
20
37
|
"class-methods-use-this": string;
|
|
38
|
+
curly: string[];
|
|
21
39
|
"import/extensions": string;
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
40
|
+
"import/no-cycle": (string | {
|
|
41
|
+
ignoreExternal: boolean;
|
|
42
|
+
maxDepth: number;
|
|
43
|
+
})[];
|
|
25
44
|
"import/no-extraneous-dependencies": string;
|
|
26
45
|
"import/no-unresolved": string;
|
|
27
46
|
"import/prefer-default-export": string;
|
|
28
47
|
"jest/expect-expect": (string | {
|
|
29
48
|
assertFunctionNames: string[];
|
|
30
49
|
})[];
|
|
50
|
+
"n/no-missing-import": string;
|
|
51
|
+
"n/no-unpublished-import": string;
|
|
31
52
|
"new-cap": (string | {
|
|
32
|
-
newIsCap: boolean;
|
|
33
53
|
capIsNew: boolean;
|
|
34
|
-
|
|
35
|
-
"import/no-cycle": (string | {
|
|
36
|
-
ignoreExternal: boolean;
|
|
37
|
-
maxDepth: number;
|
|
54
|
+
newIsCap: boolean;
|
|
38
55
|
})[];
|
|
39
56
|
"no-only-tests/no-only-tests": string;
|
|
57
|
+
"no-restricted-imports": (string | {
|
|
58
|
+
paths: {
|
|
59
|
+
importNames: string[];
|
|
60
|
+
message: string;
|
|
61
|
+
name: string;
|
|
62
|
+
}[];
|
|
63
|
+
})[];
|
|
40
64
|
"no-restricted-syntax": (string | {
|
|
41
|
-
selector: string;
|
|
42
65
|
message: string;
|
|
66
|
+
selector: string;
|
|
43
67
|
})[];
|
|
68
|
+
"no-return-await": string;
|
|
44
69
|
"no-shadow": string;
|
|
70
|
+
"no-underscore-dangle": string;
|
|
71
|
+
"no-use-before-define": (string | {
|
|
72
|
+
classes: boolean;
|
|
73
|
+
functions: boolean;
|
|
74
|
+
})[];
|
|
45
75
|
"object-shorthand": string[];
|
|
46
|
-
"
|
|
76
|
+
"security/detect-object-injection": string;
|
|
47
77
|
"simple-import-sort/exports": string;
|
|
78
|
+
"simple-import-sort/imports": string;
|
|
48
79
|
"unicorn/no-array-for-each": string;
|
|
49
80
|
"unicorn/no-array-reduce": string;
|
|
81
|
+
"unicorn/prefer-module": string;
|
|
50
82
|
"unicorn/prevent-abbreviations": (string | {
|
|
51
83
|
ignore: RegExp[];
|
|
52
84
|
})[];
|
|
53
|
-
"no-underscore-dangle": string;
|
|
54
|
-
"no-use-before-define": (string | {
|
|
55
|
-
functions: boolean;
|
|
56
|
-
classes: boolean;
|
|
57
|
-
})[];
|
|
58
|
-
"no-restricted-imports": (string | {
|
|
59
|
-
paths: {
|
|
60
|
-
name: string;
|
|
61
|
-
importNames: string[];
|
|
62
|
-
message: string;
|
|
63
|
-
}[];
|
|
64
|
-
})[];
|
|
65
85
|
};
|
|
66
|
-
export declare let overrides: ({
|
|
67
|
-
files: string[];
|
|
68
|
-
rules: {
|
|
69
|
-
"@typescript-eslint/no-unsafe-assignment": string;
|
|
70
|
-
"sonarjs/no-duplicate-string": string;
|
|
71
|
-
"@typescript-eslint/ban-types"?: never;
|
|
72
|
-
};
|
|
73
|
-
} | {
|
|
74
|
-
files: string[];
|
|
75
|
-
rules: {
|
|
76
|
-
"@typescript-eslint/ban-types": (string | {
|
|
77
|
-
extendDefaults: boolean;
|
|
78
|
-
types: {
|
|
79
|
-
null: boolean;
|
|
80
|
-
};
|
|
81
|
-
})[];
|
|
82
|
-
"@typescript-eslint/no-unsafe-assignment"?: never;
|
|
83
|
-
"sonarjs/no-duplicate-string"?: never;
|
|
84
|
-
};
|
|
85
|
-
})[];
|
|
86
86
|
export declare namespace settings {
|
|
87
87
|
namespace node {
|
|
88
88
|
let version: string;
|
package/src/index.js
CHANGED
|
@@ -19,6 +19,44 @@ module.exports = {
|
|
|
19
19
|
"xo-typescript/space",
|
|
20
20
|
"prettier",
|
|
21
21
|
],
|
|
22
|
+
overrides: [
|
|
23
|
+
{
|
|
24
|
+
files: [
|
|
25
|
+
"*.spec.ts",
|
|
26
|
+
"*.spec.tsx",
|
|
27
|
+
"*.spec.js",
|
|
28
|
+
"*.spec.jsx",
|
|
29
|
+
"*.test.ts",
|
|
30
|
+
"*.test.tsx",
|
|
31
|
+
"*.test.js",
|
|
32
|
+
"*.test.jsx",
|
|
33
|
+
],
|
|
34
|
+
rules: {
|
|
35
|
+
// Interferes with `jest`'s `expect.any`
|
|
36
|
+
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
37
|
+
// Duplication allows verbose test case setups and asserts
|
|
38
|
+
"sonarjs/no-duplicate-string": "off",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Exclude *.dto.ts, null is needed for PATCH endpoints to differentiate empty from optional fields
|
|
43
|
+
* Exclude *.repository.ts, null is needed for our ORMs (prisma and mongoose)
|
|
44
|
+
*/
|
|
45
|
+
{
|
|
46
|
+
files: ["**/*.dto.ts", "**/*.repository.ts", "**/*.repo.ts"],
|
|
47
|
+
rules: {
|
|
48
|
+
"@typescript-eslint/ban-types": [
|
|
49
|
+
"error",
|
|
50
|
+
{
|
|
51
|
+
extendDefaults: true,
|
|
52
|
+
types: {
|
|
53
|
+
null: false,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
],
|
|
22
60
|
parser: "@typescript-eslint/parser",
|
|
23
61
|
parserOptions: {
|
|
24
62
|
project: ["tsconfig.json"],
|
|
@@ -33,28 +71,22 @@ module.exports = {
|
|
|
33
71
|
"@typescript-eslint",
|
|
34
72
|
],
|
|
35
73
|
rules: {
|
|
36
|
-
// Breaks code when temporarily commented, adding more friction than the value provided.
|
|
37
|
-
"capitalized-comments": "off",
|
|
38
74
|
// See https://github.com/microsoft/TypeScript/wiki/Performance#preferring-interfaces-over-intersections
|
|
39
75
|
"@typescript-eslint/consistent-type-definitions": ["error", "interface"],
|
|
40
76
|
// Too many false positives
|
|
41
77
|
"@typescript-eslint/naming-convention": "off",
|
|
42
|
-
"security/detect-object-injection": "off",
|
|
43
78
|
// Prefer an escape hatch instead of an outright ban
|
|
44
79
|
"@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
|
|
45
|
-
// Prefer debugging ease over an extra microtask by requiring `return await`.
|
|
46
|
-
// `no-return-await` states "This can make debugging more difficult."
|
|
47
|
-
"no-return-await": "off",
|
|
48
80
|
"@typescript-eslint/return-await": ["error", "always"],
|
|
49
|
-
//
|
|
50
|
-
|
|
81
|
+
// Breaks code when temporarily commented, adding more friction than the value provided.
|
|
82
|
+
"capitalized-comments": "off",
|
|
51
83
|
// Recommends using static fields instead of moving to a function
|
|
52
84
|
"class-methods-use-this": "off",
|
|
85
|
+
// Prevent bugs
|
|
86
|
+
curly: ["error", "all"],
|
|
53
87
|
// Our libraries don't use ESM
|
|
54
88
|
"import/extensions": "off",
|
|
55
|
-
"
|
|
56
|
-
"n/no-unpublished-import": "off",
|
|
57
|
-
"unicorn/prefer-module": "off",
|
|
89
|
+
"import/no-cycle": ["error", { ignoreExternal: true, maxDepth: 16 }],
|
|
58
90
|
// Rely on `"n/no-extraneous-import"` instead
|
|
59
91
|
"import/no-extraneous-dependencies": "off",
|
|
60
92
|
// Doesn't play well with NX/monorepos
|
|
@@ -67,108 +99,84 @@ module.exports = {
|
|
|
67
99
|
assertFunctionNames: [
|
|
68
100
|
"expect",
|
|
69
101
|
"expectToBeDefined",
|
|
102
|
+
"expectToBeLeft",
|
|
103
|
+
"expectToBeNone",
|
|
104
|
+
"expectToBeRight",
|
|
70
105
|
"expectToBeSafeParseError",
|
|
71
106
|
"expectToBeSafeParseSuccess",
|
|
107
|
+
"expectToBeSome",
|
|
72
108
|
"expectTypeOf",
|
|
73
109
|
],
|
|
74
110
|
},
|
|
75
111
|
],
|
|
112
|
+
// Our libraries don't use ESM
|
|
113
|
+
"n/no-missing-import": "off",
|
|
114
|
+
// Our libraries don't use ESM
|
|
115
|
+
"n/no-unpublished-import": "off",
|
|
76
116
|
// Allow PascalCase for Decorators
|
|
77
|
-
"new-cap": ["warn", {
|
|
78
|
-
"import/no-cycle": ["error", { ignoreExternal: true, maxDepth: 16 }],
|
|
117
|
+
"new-cap": ["warn", { capIsNew: false, newIsCap: true }],
|
|
79
118
|
// Disallow `.only` in tests to prevent it from making it into `main`.
|
|
80
119
|
"no-only-tests/no-only-tests": "error",
|
|
120
|
+
"no-restricted-imports": [
|
|
121
|
+
"error",
|
|
122
|
+
{
|
|
123
|
+
paths: [
|
|
124
|
+
// We want `ObjectId` to be imported from `mongoose` only
|
|
125
|
+
{
|
|
126
|
+
importNames: ["ObjectId", "ObjectID"],
|
|
127
|
+
message: 'Importing `ObjectId` from `mongodb` is not allowed. Use `import { Types } from "mongoose"` and then `Types.ObjectId` instead.',
|
|
128
|
+
name: "mongodb",
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
81
133
|
// Adapter from Airbnb's config, but allows ForOfStatement.
|
|
82
134
|
// See https://github.com/airbnb/javascript/blob/0f3ca32323b8d5770de3301036e65511c6d18e00/packages/eslint-config-airbnb-base/rules/style.js#L340-L358
|
|
83
135
|
"no-restricted-syntax": [
|
|
84
136
|
"error",
|
|
85
137
|
{
|
|
86
|
-
selector: "ForInStatement",
|
|
87
138
|
message: "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.",
|
|
139
|
+
selector: "ForInStatement",
|
|
88
140
|
},
|
|
89
141
|
{
|
|
90
|
-
selector: "LabeledStatement",
|
|
91
142
|
message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",
|
|
143
|
+
selector: "LabeledStatement",
|
|
92
144
|
},
|
|
93
145
|
{
|
|
94
|
-
selector: "WithStatement",
|
|
95
146
|
message: "`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",
|
|
147
|
+
selector: "WithStatement",
|
|
96
148
|
},
|
|
97
149
|
],
|
|
150
|
+
// Prefer debugging ease over an extra microtask by requiring `return await`.
|
|
151
|
+
// `no-return-await` states "This can make debugging more difficult."
|
|
152
|
+
"no-return-await": "off",
|
|
98
153
|
// False positive on `enum`s
|
|
99
154
|
"no-shadow": "off",
|
|
155
|
+
// Polarizing naming convention that isn't followed by us
|
|
156
|
+
"no-underscore-dangle": "off",
|
|
157
|
+
// We use TypeScript where these are caught by the compiler
|
|
158
|
+
"no-use-before-define": ["error", { classes: false, functions: false }],
|
|
100
159
|
/*
|
|
101
160
|
* Only enable for properties. Favor arrow functions, they don’t have a `this` reference,
|
|
102
161
|
* preventing accidental usage.
|
|
103
162
|
*/
|
|
104
163
|
"object-shorthand": ["error", "properties"],
|
|
164
|
+
"security/detect-object-injection": "off",
|
|
165
|
+
"simple-import-sort/exports": "warn",
|
|
105
166
|
// Sort imports and exports
|
|
106
167
|
"simple-import-sort/imports": "warn",
|
|
107
|
-
"simple-import-sort/exports": "warn",
|
|
108
168
|
// "Better readability" is subjective
|
|
109
169
|
"unicorn/no-array-for-each": "off",
|
|
170
|
+
// "Better readability" is subjective
|
|
110
171
|
"unicorn/no-array-reduce": "off",
|
|
172
|
+
// Our libraries don't use ESM
|
|
173
|
+
"unicorn/prefer-module": "off",
|
|
111
174
|
// Allow common, well understood abbreviations
|
|
112
175
|
"unicorn/prevent-abbreviations": [
|
|
113
176
|
"error",
|
|
114
177
|
{ ignore: [/config/i, /params/i, /props/i, /ref/i] },
|
|
115
178
|
],
|
|
116
|
-
// Polarizing naming convention that isn't followed by us
|
|
117
|
-
"no-underscore-dangle": "off",
|
|
118
|
-
// We use TypeScript where these are caught by the compiler
|
|
119
|
-
"no-use-before-define": ["error", { functions: false, classes: false }],
|
|
120
|
-
"no-restricted-imports": [
|
|
121
|
-
"error",
|
|
122
|
-
{
|
|
123
|
-
paths: [
|
|
124
|
-
// We want `ObjectId` to be imported from `mongoose` only
|
|
125
|
-
{
|
|
126
|
-
name: "mongodb",
|
|
127
|
-
importNames: ["ObjectId", "ObjectID"],
|
|
128
|
-
message: 'Importing `ObjectId` from `mongodb` is not allowed. Use `import { Types } from "mongoose"` and then `Types.ObjectId` instead.',
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
},
|
|
132
|
-
],
|
|
133
179
|
},
|
|
134
|
-
overrides: [
|
|
135
|
-
{
|
|
136
|
-
files: [
|
|
137
|
-
"*.spec.ts",
|
|
138
|
-
"*.spec.tsx",
|
|
139
|
-
"*.spec.js",
|
|
140
|
-
"*.spec.jsx",
|
|
141
|
-
"*.test.ts",
|
|
142
|
-
"*.test.tsx",
|
|
143
|
-
"*.test.js",
|
|
144
|
-
"*.test.jsx",
|
|
145
|
-
],
|
|
146
|
-
rules: {
|
|
147
|
-
// Interferes with `jest`'s `expect.any`
|
|
148
|
-
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
149
|
-
// Duplication allows verbose test case setups and asserts
|
|
150
|
-
"sonarjs/no-duplicate-string": "off",
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
/**
|
|
154
|
-
* Exclude *.dto.ts, null is needed for PATCH endpoints to differentiate empty from optional fields
|
|
155
|
-
* Exclude *.repository.ts, null is needed for our ORMs (prisma and mongoose)
|
|
156
|
-
*/
|
|
157
|
-
{
|
|
158
|
-
files: ["**/*.dto.ts", "**/*.repository.ts"],
|
|
159
|
-
rules: {
|
|
160
|
-
"@typescript-eslint/ban-types": [
|
|
161
|
-
"error",
|
|
162
|
-
{
|
|
163
|
-
extendDefaults: true,
|
|
164
|
-
types: {
|
|
165
|
-
null: false,
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
],
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
],
|
|
172
180
|
settings: { node: { version: ">=18.15.0" } },
|
|
173
181
|
};
|
|
174
182
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/eslint-config/src/index.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,OAAO,EAAE;QACP,oBAAoB;QACpB,8CAA8C;QAC9C,uCAAuC;QACvC,aAAa;QACb,oCAAoC;QACpC,gCAAgC;QAChC,yBAAyB;QACzB,mBAAmB;QACnB,2BAA2B;QAC3B,sBAAsB;QACtB,yCAAyC;QACzC,6BAA6B;QAC7B,4BAA4B;QAC5B,4BAA4B;QAC5B,IAAI;QACJ,qBAAqB;QACrB,UAAU;KACX;IACD,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE;QACb,OAAO,EAAE,CAAC,eAAe,CAAC;QAC1B,eAAe,EAAE,SAAS;KAC3B;IACD,OAAO,EAAE;QACP,aAAa;QACb,MAAM;QACN,eAAe;QACf,oBAAoB;QACpB,SAAS;QACT,oBAAoB;KACrB;IACD,KAAK,EAAE;QACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/eslint-config/src/index.js"],"names":[],"mappings":"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"}
|