@cogs/eslint-config 0.2.1 → 0.2.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/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,15 @@ export interface CreateConfigOptions {
|
|
|
12
12
|
react?: boolean;
|
|
13
13
|
/** Directories to search for nearest `package.json` when checking for extraneous deps. */
|
|
14
14
|
packageDirs?: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Whether to enable Jest-specific test rules. Defaults to `false` -- most of
|
|
17
|
+
* the fleet uses vitest, and `eslint-plugin-jest`'s rules hard-crash (not just
|
|
18
|
+
* warn) when the `jest` package itself isn't installed, since some rules
|
|
19
|
+
* detect the Jest version by requiring it. Only set `true` in repos that
|
|
20
|
+
* actually depend on `jest`.
|
|
21
|
+
*/
|
|
22
|
+
jest?: boolean;
|
|
15
23
|
}
|
|
16
|
-
export declare const createConfig: ({ additionalIgnores, tsconfigRootDir, tsProjects, internalRegex, react, packageDirs, }?: CreateConfigOptions) => Linter.Config[];
|
|
24
|
+
export declare const createConfig: ({ additionalIgnores, tsconfigRootDir, tsProjects, internalRegex, react, packageDirs, jest, }?: CreateConfigOptions) => Linter.Config[];
|
|
17
25
|
export default createConfig;
|
|
18
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAyD5C,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,eAAO,MAAM,YAAY,GAAI,+FAQ1B,mBAAwB,KAAG,MAAM,CAAC,MAAM,EAsS1C,CAAA;AAED,eAAe,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
1
|
import { fixupPluginRules } from '@eslint/compat';
|
|
3
2
|
import js from '@eslint/js';
|
|
4
3
|
import tanstackQuery from '@tanstack/eslint-plugin-query';
|
|
5
4
|
import prettier from 'eslint-config-prettier';
|
|
6
5
|
import canonical from 'eslint-plugin-canonical';
|
|
7
6
|
import importPlugin from 'eslint-plugin-import';
|
|
8
|
-
import
|
|
7
|
+
import jestPlugin from 'eslint-plugin-jest';
|
|
9
8
|
import a11y from 'eslint-plugin-jsx-a11y';
|
|
10
9
|
import * as mdx from 'eslint-plugin-mdx';
|
|
11
10
|
import reactPlugin from 'eslint-plugin-react';
|
|
@@ -54,12 +53,16 @@ const DEFAULT_IGNORES = [
|
|
|
54
53
|
];
|
|
55
54
|
const DEFAULT_TS_PROJECTS = ['./tsconfig.json'];
|
|
56
55
|
const DEFAULT_INTERNAL_REGEX = '^@cogs/';
|
|
57
|
-
export const createConfig = ({ additionalIgnores = [], tsconfigRootDir = process.cwd(), tsProjects = DEFAULT_TS_PROJECTS, internalRegex = DEFAULT_INTERNAL_REGEX, react = true, packageDirs, } = {}) => {
|
|
56
|
+
export const createConfig = ({ additionalIgnores = [], tsconfigRootDir = process.cwd(), tsProjects = DEFAULT_TS_PROJECTS, internalRegex = DEFAULT_INTERNAL_REGEX, react = true, packageDirs, jest = false, } = {}) => {
|
|
58
57
|
const ignores = [...DEFAULT_IGNORES, ...additionalIgnores];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
// Only set an explicit packageDir when the caller asks for one. Left unset,
|
|
59
|
+
// eslint-plugin-import walks up from each linted file to its nearest
|
|
60
|
+
// package.json -- the correct behavior in a multi-package monorepo, where a
|
|
61
|
+
// fixed [tsconfigRootDir, tsconfigRootDir/../..] pair (this package's old
|
|
62
|
+
// default) checks the wrong package.json for anything nested deeper than
|
|
63
|
+
// two levels and false-positives every dependency a nested package
|
|
64
|
+
// correctly declares in its own package.json.
|
|
65
|
+
const resolvedPackageDirs = packageDirs;
|
|
63
66
|
const importExtraneousOptions = {
|
|
64
67
|
devDependencies: [
|
|
65
68
|
'**/*.test.{js,jsx,ts,tsx}',
|
|
@@ -95,7 +98,6 @@ export const createConfig = ({ additionalIgnores = [], tsconfigRootDir = process
|
|
|
95
98
|
'react-hooks': reactHooks,
|
|
96
99
|
'jsx-a11y': a11y,
|
|
97
100
|
canonical,
|
|
98
|
-
jest,
|
|
99
101
|
'@typescript-eslint': tseslint.plugin,
|
|
100
102
|
'@tanstack/query': tanstackQuery,
|
|
101
103
|
},
|
|
@@ -230,20 +232,20 @@ export const createConfig = ({ additionalIgnores = [], tsconfigRootDir = process
|
|
|
230
232
|
'prefer-const': 'error',
|
|
231
233
|
},
|
|
232
234
|
},
|
|
233
|
-
//
|
|
235
|
+
// Unit tests (vitest by default -- globals like describe/test/expect come from
|
|
236
|
+
// vitest's own globals config or explicit imports, not from this block; this
|
|
237
|
+
// just relaxes rules that don't make sense in test files).
|
|
234
238
|
{
|
|
235
239
|
files: [
|
|
236
240
|
'**/__tests__/**/*.{js,jsx,ts,tsx}',
|
|
237
241
|
'**/*.{test,spec}.{js,jsx,ts,tsx}',
|
|
238
242
|
],
|
|
239
|
-
...jest.configs['flat/recommended'],
|
|
240
243
|
languageOptions: {
|
|
241
244
|
ecmaVersion: 'latest',
|
|
242
245
|
sourceType: 'module',
|
|
243
|
-
globals: { ...globals.node
|
|
246
|
+
globals: { ...globals.node },
|
|
244
247
|
},
|
|
245
248
|
rules: {
|
|
246
|
-
...jest.configs['flat/recommended'].rules,
|
|
247
249
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
248
250
|
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
249
251
|
'@typescript-eslint/no-unused-vars': 'off',
|
|
@@ -254,6 +256,23 @@ export const createConfig = ({ additionalIgnores = [], tsconfigRootDir = process
|
|
|
254
256
|
'no-useless-escape': 'off',
|
|
255
257
|
},
|
|
256
258
|
},
|
|
259
|
+
// Jest-specific test rules -- opt-in only (see `jest` option doc comment).
|
|
260
|
+
// eslint-plugin-jest's rules crash (not warn) if `jest` itself isn't
|
|
261
|
+
// installed, since some rules detect the Jest version by requiring it.
|
|
262
|
+
...(jest
|
|
263
|
+
? [
|
|
264
|
+
{
|
|
265
|
+
files: [
|
|
266
|
+
'**/__tests__/**/*.{js,jsx,ts,tsx}',
|
|
267
|
+
'**/*.{test,spec}.{js,jsx,ts,tsx}',
|
|
268
|
+
],
|
|
269
|
+
...jestPlugin.configs['flat/recommended'],
|
|
270
|
+
languageOptions: {
|
|
271
|
+
globals: jestPlugin.environments.globals.globals,
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
]
|
|
275
|
+
: []),
|
|
257
276
|
// Testing Library best practices for component tests
|
|
258
277
|
{
|
|
259
278
|
...testingLibraryReact,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|