@clipboard-health/eslint-config 4.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clipboard-health/eslint-config",
3
3
  "description": "Our ESLint configuration.",
4
- "version": "4.10.0",
4
+ "version": "4.10.1",
5
5
  "bugs": "https://github.com/clipboardhealth/core-utils/issues",
6
6
  "keywords": [
7
7
  "config",
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
- curly: string[];
36
+ "capitalized-comments": string;
20
37
  "class-methods-use-this": string;
38
+ curly: string[];
21
39
  "import/extensions": string;
22
- "n/no-missing-import": string;
23
- "n/no-unpublished-import": string;
24
- "unicorn/prefer-module": string;
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
- "simple-import-sort/imports": string;
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
- // Prevent bugs
50
- curly: ["error", "all"],
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
- "n/no-missing-import": "off",
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
@@ -77,102 +109,74 @@ module.exports = {
77
109
  ],
78
110
  },
79
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",
80
116
  // Allow PascalCase for Decorators
81
- "new-cap": ["warn", { newIsCap: true, capIsNew: false }],
82
- "import/no-cycle": ["error", { ignoreExternal: true, maxDepth: 16 }],
117
+ "new-cap": ["warn", { capIsNew: false, newIsCap: true }],
83
118
  // Disallow `.only` in tests to prevent it from making it into `main`.
84
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
+ ],
85
133
  // Adapter from Airbnb's config, but allows ForOfStatement.
86
134
  // See https://github.com/airbnb/javascript/blob/0f3ca32323b8d5770de3301036e65511c6d18e00/packages/eslint-config-airbnb-base/rules/style.js#L340-L358
87
135
  "no-restricted-syntax": [
88
136
  "error",
89
137
  {
90
- selector: "ForInStatement",
91
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",
92
140
  },
93
141
  {
94
- selector: "LabeledStatement",
95
142
  message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",
143
+ selector: "LabeledStatement",
96
144
  },
97
145
  {
98
- selector: "WithStatement",
99
146
  message: "`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",
147
+ selector: "WithStatement",
100
148
  },
101
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",
102
153
  // False positive on `enum`s
103
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 }],
104
159
  /*
105
160
  * Only enable for properties. Favor arrow functions, they don’t have a `this` reference,
106
161
  * preventing accidental usage.
107
162
  */
108
163
  "object-shorthand": ["error", "properties"],
164
+ "security/detect-object-injection": "off",
165
+ "simple-import-sort/exports": "warn",
109
166
  // Sort imports and exports
110
167
  "simple-import-sort/imports": "warn",
111
- "simple-import-sort/exports": "warn",
112
168
  // "Better readability" is subjective
113
169
  "unicorn/no-array-for-each": "off",
170
+ // "Better readability" is subjective
114
171
  "unicorn/no-array-reduce": "off",
172
+ // Our libraries don't use ESM
173
+ "unicorn/prefer-module": "off",
115
174
  // Allow common, well understood abbreviations
116
175
  "unicorn/prevent-abbreviations": [
117
176
  "error",
118
177
  { ignore: [/config/i, /params/i, /props/i, /ref/i] },
119
178
  ],
120
- // Polarizing naming convention that isn't followed by us
121
- "no-underscore-dangle": "off",
122
- // We use TypeScript where these are caught by the compiler
123
- "no-use-before-define": ["error", { functions: false, classes: false }],
124
- "no-restricted-imports": [
125
- "error",
126
- {
127
- paths: [
128
- // We want `ObjectId` to be imported from `mongoose` only
129
- {
130
- name: "mongodb",
131
- importNames: ["ObjectId", "ObjectID"],
132
- message: 'Importing `ObjectId` from `mongodb` is not allowed. Use `import { Types } from "mongoose"` and then `Types.ObjectId` instead.',
133
- },
134
- ],
135
- },
136
- ],
137
179
  },
138
- overrides: [
139
- {
140
- files: [
141
- "*.spec.ts",
142
- "*.spec.tsx",
143
- "*.spec.js",
144
- "*.spec.jsx",
145
- "*.test.ts",
146
- "*.test.tsx",
147
- "*.test.js",
148
- "*.test.jsx",
149
- ],
150
- rules: {
151
- // Interferes with `jest`'s `expect.any`
152
- "@typescript-eslint/no-unsafe-assignment": "off",
153
- // Duplication allows verbose test case setups and asserts
154
- "sonarjs/no-duplicate-string": "off",
155
- },
156
- },
157
- /**
158
- * Exclude *.dto.ts, null is needed for PATCH endpoints to differentiate empty from optional fields
159
- * Exclude *.repository.ts, null is needed for our ORMs (prisma and mongoose)
160
- */
161
- {
162
- files: ["**/*.dto.ts", "**/*.repository.ts"],
163
- rules: {
164
- "@typescript-eslint/ban-types": [
165
- "error",
166
- {
167
- extendDefaults: true,
168
- types: {
169
- null: false,
170
- },
171
- },
172
- ],
173
- },
174
- },
175
- ],
176
180
  settings: { node: { version: ">=18.15.0" } },
177
181
  };
178
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/eslint-config/src/index.js"],"names":[],"mappings":"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"}