@clipboard-health/eslint-config 5.4.0 → 5.6.0

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": "5.4.0",
4
+ "version": "5.6.0",
5
5
  "bugs": "https://github.com/ClipboardHealth/core-utils/issues",
6
6
  "keywords": [
7
7
  "config",
@@ -10,6 +10,7 @@
10
10
  "license": "MIT",
11
11
  "main": "./src/index.js",
12
12
  "peerDependencies": {
13
+ "@clipboard-health/eslint-plugin": "^0.3.0",
13
14
  "@typescript-eslint/eslint-plugin": "^7",
14
15
  "@typescript-eslint/parser": "^7",
15
16
  "eslint": "^8",
package/src/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
+ export const plugins: string[];
1
2
  declare let _extends: string[];
2
- export { _extends as extends };
3
3
  export declare let overrides: ({
4
4
  files: string[];
5
5
  rules: {
6
6
  "@typescript-eslint/no-unsafe-assignment": string;
7
7
  "@typescript-eslint/ban-types"?: never;
8
+ "@clipboard-health/enforce-ts-rest-in-controllers"?: never;
9
+ "@clipboard-health/require-http-module-factory"?: never;
8
10
  };
9
11
  } | {
10
12
  files: string[];
@@ -16,6 +18,24 @@ export declare let overrides: ({
16
18
  };
17
19
  })[];
18
20
  "@typescript-eslint/no-unsafe-assignment"?: never;
21
+ "@clipboard-health/enforce-ts-rest-in-controllers"?: never;
22
+ "@clipboard-health/require-http-module-factory"?: never;
23
+ };
24
+ } | {
25
+ files: string[];
26
+ rules: {
27
+ "@clipboard-health/enforce-ts-rest-in-controllers": string;
28
+ "@typescript-eslint/no-unsafe-assignment"?: never;
29
+ "@typescript-eslint/ban-types"?: never;
30
+ "@clipboard-health/require-http-module-factory"?: never;
31
+ };
32
+ } | {
33
+ files: string[];
34
+ rules: {
35
+ "@clipboard-health/require-http-module-factory": string;
36
+ "@typescript-eslint/no-unsafe-assignment"?: never;
37
+ "@typescript-eslint/ban-types"?: never;
38
+ "@clipboard-health/enforce-ts-rest-in-controllers"?: never;
19
39
  };
20
40
  })[];
21
41
  export declare let parser: string;
@@ -23,7 +43,6 @@ export declare namespace parserOptions {
23
43
  let project: string[];
24
44
  let tsconfigRootDir: string;
25
45
  }
26
- export declare let plugins: string[];
27
46
  export declare let rules: {
28
47
  "@typescript-eslint/consistent-type-definitions": string[];
29
48
  "@typescript-eslint/naming-convention": string;
@@ -96,3 +115,4 @@ export declare namespace settings {
96
115
  let version: string;
97
116
  }
98
117
  }
118
+ export { _extends as extends };
package/src/index.js CHANGED
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ const path = require("node:path");
3
+ const fs = require("node:fs");
4
+ /*
5
+ * Since the rules in the eslint-plugin project are in Typescript and are a package
6
+ * in this monorepo, it's not straightforward to include that plugin when using the
7
+ * ESLint config to lint the code in this monorepo itself. Nx currently symlinks each
8
+ * package in `node_modules/@clipboard-health` folder to the source folder rather than
9
+ * the output in `dist/`, and this will give an error where it cannot find the file:
10
+ * `core-utils/node_modules/@clipboard-health/eslint-plugin/src/index.js` when trying
11
+ * to lint code for any package in this monorepo.
12
+ * As a workaround, we check if we're inside the core-utils monorepo and skip including
13
+ * the eslint-plugin in the ESLint config. We'll need to fix this in the future if we
14
+ * need to rely on a rule from the eslint-plugin to lint code within core-utils itself.
15
+ */
16
+ const isOutsideCoreUtilsMonorepo = (() => {
17
+ try {
18
+ const packageJsonPath = path.resolve(process.cwd(), "package.json");
19
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
20
+ return packageJson.name !== "@clipboard-health/core-utils";
21
+ }
22
+ catch {
23
+ return true;
24
+ }
25
+ })();
26
+ const plugins = [
27
+ "expect-type",
28
+ "jest",
29
+ "no-only-tests",
30
+ "simple-import-sort",
31
+ "sonarjs",
32
+ "@typescript-eslint",
33
+ ];
34
+ // Only add `@clipboard-health/eslint-plugin` if we're outside the core-utils monorepo
35
+ if (isOutsideCoreUtilsMonorepo) {
36
+ plugins.push("@clipboard-health");
37
+ }
2
38
  module.exports = {
3
39
  extends: [
4
40
  "eslint:recommended",
@@ -54,20 +90,29 @@ module.exports = {
54
90
  ],
55
91
  },
56
92
  },
93
+ ...(isOutsideCoreUtilsMonorepo
94
+ ? [
95
+ {
96
+ files: ["**/*.controller.ts", "**/*.controllers.ts"],
97
+ rules: {
98
+ "@clipboard-health/enforce-ts-rest-in-controllers": "error",
99
+ },
100
+ },
101
+ {
102
+ files: ["**/*.module.ts"],
103
+ rules: {
104
+ "@clipboard-health/require-http-module-factory": "error",
105
+ },
106
+ },
107
+ ]
108
+ : []),
57
109
  ],
58
110
  parser: "@typescript-eslint/parser",
59
111
  parserOptions: {
60
112
  project: ["tsconfig.json"],
61
113
  tsconfigRootDir: __dirname,
62
114
  },
63
- plugins: [
64
- "expect-type",
65
- "jest",
66
- "no-only-tests",
67
- "simple-import-sort",
68
- "sonarjs",
69
- "@typescript-eslint",
70
- ],
115
+ plugins,
71
116
  rules: {
72
117
  // See https://github.com/microsoft/TypeScript/wiki/Performance#preferring-interfaces-over-intersections
73
118
  "@typescript-eslint/consistent-type-definitions": ["error", "interface"],
@@ -171,7 +216,7 @@ module.exports = {
171
216
  // We use TypeScript where these are caught by the compiler
172
217
  "no-use-before-define": ["error", { classes: false, functions: false }],
173
218
  /*
174
- * Only enable for properties. Favor arrow functions, they dont have a `this` reference,
219
+ * Only enable for properties. Favor arrow functions, they don't have a `this` reference,
175
220
  * preventing accidental usage.
176
221
  */
177
222
  "object-shorthand": ["error", "properties"],
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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"}