@clipboard-health/eslint-config 6.2.29 → 6.3.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": "6.2.29",
4
+ "version": "6.3.1",
5
5
  "bugs": "https://github.com/ClipboardHealth/core-utils/issues",
6
6
  "keywords": [
7
7
  "config",
package/src/index.d.ts CHANGED
@@ -4,6 +4,10 @@ export declare let overrides: ({
4
4
  files: string[];
5
5
  rules: {
6
6
  "@typescript-eslint/no-unsafe-assignment": string;
7
+ "no-restricted-syntax": (string | {
8
+ message: string;
9
+ selector: string;
10
+ })[];
7
11
  "@clipboard-health/enforce-ts-rest-in-controllers"?: never;
8
12
  "@clipboard-health/require-http-module-factory"?: never;
9
13
  };
@@ -12,6 +16,7 @@ export declare let overrides: ({
12
16
  rules: {
13
17
  "@clipboard-health/enforce-ts-rest-in-controllers": string;
14
18
  "@typescript-eslint/no-unsafe-assignment"?: never;
19
+ "no-restricted-syntax"?: never;
15
20
  "@clipboard-health/require-http-module-factory"?: never;
16
21
  };
17
22
  } | {
@@ -19,6 +24,7 @@ export declare let overrides: ({
19
24
  rules: {
20
25
  "@clipboard-health/require-http-module-factory": string;
21
26
  "@typescript-eslint/no-unsafe-assignment"?: never;
27
+ "no-restricted-syntax"?: never;
22
28
  "@clipboard-health/enforce-ts-rest-in-controllers"?: never;
23
29
  };
24
30
  })[];
package/src/index.js CHANGED
@@ -1,6 +1,28 @@
1
1
  "use strict";
2
2
  const path = require("node:path");
3
3
  const fs = require("node:fs");
4
+ const baseNoRestrictedSyntax = [
5
+ "error",
6
+ {
7
+ // Adapted from Airbnb's config, but allows ForOfStatement.
8
+ // See https://github.com/airbnb/javascript/blob/0f3ca32323b8d5770de3301036e65511c6d18e00/packages/eslint-config-airbnb-base/rules/style.js#L340-L358
9
+ 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.",
10
+ selector: "ForInStatement",
11
+ },
12
+ {
13
+ message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",
14
+ selector: "LabeledStatement",
15
+ },
16
+ {
17
+ message: "`with` is disallowed in strict mode because it makes code difficult to predict and optimize.",
18
+ selector: "WithStatement",
19
+ },
20
+ {
21
+ selector: "TSEnumDeclaration",
22
+ message: "Enums are one of the few non-type-level extensions to JavaScript, have pitfalls, and require explicit mapping. Use const objects instead.",
23
+ },
24
+ ];
25
+ const triggerIdempotencyKeyMessage = "Do not assert to TriggerIdempotencyKey; use `NotificationJobEnqueuer.enqueueOneOrMore` instead. See https://github.com/ClipboardHealth/core-utils/blob/main/packages/notifications/README.md.";
4
26
  /*
5
27
  * Since the rules in the eslint-plugin project are in Typescript and are a package in this
6
28
  * monorepo, it's not straightforward to include that plugin when using the ESLint config to lint
@@ -68,6 +90,7 @@ module.exports = {
68
90
  rules: {
69
91
  // Interferes with `jest`'s `expect.any`
70
92
  "@typescript-eslint/no-unsafe-assignment": "off",
93
+ "no-restricted-syntax": baseNoRestrictedSyntax,
71
94
  },
72
95
  },
73
96
  ...(isOutsideCoreUtilsMonorepo
@@ -179,24 +202,14 @@ module.exports = {
179
202
  },
180
203
  ],
181
204
  "no-restricted-syntax": [
182
- "error",
183
- {
184
- // Adapted from Airbnb's config, but allows ForOfStatement.
185
- // See https://github.com/airbnb/javascript/blob/0f3ca32323b8d5770de3301036e65511c6d18e00/packages/eslint-config-airbnb-base/rules/style.js#L340-L358
186
- 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.",
187
- selector: "ForInStatement",
188
- },
189
- {
190
- message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",
191
- selector: "LabeledStatement",
192
- },
205
+ ...baseNoRestrictedSyntax,
193
206
  {
194
- message: "`with` is disallowed in strict mode because it makes code difficult to predict and optimize.",
195
- selector: "WithStatement",
207
+ selector: "TSAsExpression TSTypeReference[typeName.name='TriggerIdempotencyKey']",
208
+ message: triggerIdempotencyKeyMessage,
196
209
  },
197
210
  {
198
- selector: "TSEnumDeclaration",
199
- message: "Enums are one of the few non-type-level extensions to JavaScript, have pitfalls, and require explicit mapping. Use const objects instead.",
211
+ selector: "TSTypeAssertion TSTypeReference[typeName.name='TriggerIdempotencyKey']",
212
+ message: triggerIdempotencyKeyMessage,
200
213
  },
201
214
  ],
202
215
  // Use a logger instead.
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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"}