@zukhruf/eslint 0.3.40 → 0.3.42
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/README.md +34 -15
- package/dist/async-values/no-promise-field.d.ts.map +1 -1
- package/dist/async-values/no-promise-field.js +5 -3
- package/dist/async-values/no-promise-field.js.map +1 -1
- package/dist/base/config.d.ts.map +1 -1
- package/dist/base/config.js +8 -1
- package/dist/base/config.js.map +1 -1
- package/dist/base/options.d.ts +4 -3
- package/dist/base/options.d.ts.map +1 -1
- package/dist/base/options.js.map +1 -1
- package/dist/environment/config.d.ts +1 -0
- package/dist/environment/config.d.ts.map +1 -1
- package/dist/environment/config.js +4 -2
- package/dist/environment/config.js.map +1 -1
- package/dist/environment/no-undeclared-process-env.d.ts.map +1 -1
- package/dist/environment/no-undeclared-process-env.js +19 -18
- package/dist/environment/no-undeclared-process-env.js.map +1 -1
- package/dist/files.d.ts +1 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +1 -0
- package/dist/files.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest/manifest-policy.d.ts +3 -2
- package/dist/manifest/manifest-policy.d.ts.map +1 -1
- package/dist/manifest/manifest-policy.js +10 -3
- package/dist/manifest/manifest-policy.js.map +1 -1
- package/dist/manifest/project-build.d.ts +7 -5
- package/dist/manifest/project-build.d.ts.map +1 -1
- package/dist/manifest/project-build.js +11 -5
- package/dist/manifest/project-build.js.map +1 -1
- package/dist/manifest/test-support.d.ts +10 -0
- package/dist/manifest/test-support.d.ts.map +1 -0
- package/dist/manifest/test-support.js +52 -0
- package/dist/manifest/test-support.js.map +1 -0
- package/dist/react-router/config.d.ts.map +1 -1
- package/dist/react-router/config.js +15 -1
- package/dist/react-router/config.js.map +1 -1
- package/dist/react-router/options.d.ts +10 -0
- package/dist/react-router/options.d.ts.map +1 -0
- package/dist/react-router/options.js +13 -0
- package/dist/react-router/options.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,19 +40,19 @@ Put framework presets (for example Nx's `flat/react`) **before** the zukhruf con
|
|
|
40
40
|
|
|
41
41
|
## Configs
|
|
42
42
|
|
|
43
|
-
| Config | Files
|
|
44
|
-
| ----------------- |
|
|
45
|
-
| `base` | all source
|
|
46
|
-
| `tests` | test files
|
|
47
|
-
| `diagnostics` | source, not tests
|
|
48
|
-
| `env` | TypeScript, not tests | `no-undeclared-process-env`, `no-single-env-read-wrapper`, `no-default-for-path-env`
|
|
49
|
-
| `packaged-app` | TypeScript, not tests
|
|
50
|
-
| `react` | `.tsx`, `.jsx`
|
|
51
|
-
| `react-router` | source
|
|
52
|
-
| `hono` | TypeScript, not tests
|
|
53
|
-
| `tailwind` | source
|
|
54
|
-
| `pulumi` | TypeScript
|
|
55
|
-
| `nx-project-json` | `project.json`
|
|
43
|
+
| Config | Files | Rules |
|
|
44
|
+
| ----------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
45
|
+
| `base` | all source | `@eslint/js` and `typescript-eslint` recommended; `consistent-type-assertions` (never), `no-namespace`, `zukhruf/no-enum`; `import-x/no-duplicates`, `import-x/no-unassigned-import`; `functional/no-let` (module scope); `zukhruf/no-state-managers`, `zukhruf/no-playwright-test`; typed lint: `no-floating-promises`, `no-misused-promises`, `only-throw-error`, `switch-exhaustiveness-check` (a `default` counts as exhaustive), `zukhruf/no-promise-field`, `zukhruf/no-phase-flag`; `no-require-imports` is off in `.cjs` and `.cts`, because `require()` is the only import form in a CommonJS file |
|
|
46
|
+
| `tests` | test files | `no-test-lifecycle-hooks`, `require-msw-error-on-unhandled-request` |
|
|
47
|
+
| `diagnostics` | source, not tests | `no-fabricated-fallback`, `no-hardcoded-id-shape`, `consistent-event-name` |
|
|
48
|
+
| `env` | TypeScript, not tests or tool configs | `no-undeclared-process-env`, `no-single-env-read-wrapper`, `no-default-for-path-env` |
|
|
49
|
+
| `packaged-app` | TypeScript, not tests | `no-bare-spawn` |
|
|
50
|
+
| `react` | `.tsx`, `.jsx` | `no-as-child` |
|
|
51
|
+
| `react-router` | source | `require-loader-data-type-argument`; outside tests: `no-raw-route-path`, `no-internal-anchor`; TypeScript: `only-throw-error` allows a `Response` and `DataWithResponseInit` |
|
|
52
|
+
| `hono` | TypeScript, not tests | `no-untyped-empty-json` |
|
|
53
|
+
| `tailwind` | source | `no-h-screen`, `no-arbitrary-z-index`, `no-will-change` |
|
|
54
|
+
| `pulumi` | TypeScript | `require-server-replace-guard` |
|
|
55
|
+
| `nx-project-json` | `project.json` | `no-missing-asset-input` |
|
|
56
56
|
|
|
57
57
|
`base` turns on typed lint (`parserOptions.projectService`). Each linted TypeScript file must be in a tsconfig.
|
|
58
58
|
|
|
@@ -68,13 +68,22 @@ Give repo-specific values as rule options. For example:
|
|
|
68
68
|
{
|
|
69
69
|
rules: {
|
|
70
70
|
'zukhruf/no-bare-spawn': ['error', { roots: ['apps/desktop/src'] }],
|
|
71
|
-
'zukhruf/no-undeclared-process-env': ['error', { startupFile: 'src/env.ts' }],
|
|
72
71
|
},
|
|
73
72
|
}
|
|
74
73
|
```
|
|
75
74
|
|
|
76
75
|
`roots` are folders relative to the workspace root. A rule finds the workspace root from the linted file: the nearest folder with `nx.json`, `pnpm-workspace.yaml`, or a `package.json` that declares `workspaces`.
|
|
77
76
|
|
|
77
|
+
A fact about the repo goes in `settings`, not in rule options. If you set a rule again, you replace its config's `files` and `ignores`. A setting changes no scope. For example, `env` reads the startup env schema from `src/startup.ts` in each project. If the schema is in a different file, give that file:
|
|
78
|
+
|
|
79
|
+
```js
|
|
80
|
+
{
|
|
81
|
+
settings: { env: { startupFile: 'src/env.ts' } },
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
A relative `startupFile` is relative to the project of the linted file. `env` does not check test files or tool configs, such as `vite.config.ts`. A tool config runs at build time and has no startup env schema.
|
|
86
|
+
|
|
78
87
|
To extend a `base` rule, use its factory. Do not declare the key again with only your entries: that replaces the base options.
|
|
79
88
|
|
|
80
89
|
```js
|
|
@@ -88,6 +97,14 @@ import { noFloatingPromises, noLet } from '@zukhruf/eslint';
|
|
|
88
97
|
}
|
|
89
98
|
```
|
|
90
99
|
|
|
100
|
+
React Router's loaders and actions throw `redirect()`, `replace()` (a `Response`) or `data()` (a `DataWithResponseInit`). React Router catches the value and renders it. So `react-router` sets `only-throw-error` again with these two types in its allow list. The allow list applies in every TypeScript file of the config, not only in a routes folder, because a loader helper, such as an auth gate, can live in a different folder. Use `react-router` together with `base`, because `base` gives the typed lint that the rule needs. To add more types, use the factory:
|
|
101
|
+
|
|
102
|
+
```js
|
|
103
|
+
import { reactRouterOnlyThrowError } from '@zukhruf/eslint';
|
|
104
|
+
|
|
105
|
+
'@typescript-eslint/only-throw-error': ['error', reactRouterOnlyThrowError({ allow: [/* … */] })]
|
|
106
|
+
```
|
|
107
|
+
|
|
91
108
|
## Nx: islands and module boundaries
|
|
92
109
|
|
|
93
110
|
`@zukhruf/eslint/nx` needs `@nx/eslint-plugin`.
|
|
@@ -139,10 +156,12 @@ An island is an Nx project tagged `layer:island`. Its tags come from its `projec
|
|
|
139
156
|
- A **bundled** project is an application whose build inlines the workspace packages it imports. Their manifests are not there when it is deployed, so its own manifest declares every npm package they pull in. Workspace packages themselves are not demanded.
|
|
140
157
|
- Every other project is **unbundled**. It declares what its own code imports.
|
|
141
158
|
|
|
142
|
-
The rule reads the build target as Nx resolves it: `project.json`, the target defaults in `nx.json`, and the targets that Nx plugins infer. An application bundles unless its build is `nx:noop`, or esbuild with `bundle: false`.
|
|
159
|
+
The rule reads the build target as Nx resolves it: `project.json`, the target defaults in `nx.json`, and the targets that Nx plugins infer. An application bundles unless its build compiles with tsc, is `nx:noop`, or is esbuild with `bundle: false`. tsc emits one file for each source file and keeps each import. The rule counts `@nx/js:tsc` and the `tsc --build` target that the `@nx/js/typescript` plugin infers.
|
|
143
160
|
|
|
144
161
|
An esbuild app can name workspace packages in `external`. Its build does not inline those packages, so they come from `node_modules` when the app runs. When the app imports one of them, it is unbundled, and its manifest declares them. Its manifest does not declare the workspace packages that its build still inlines. The rule reads the list that Nx gives esbuild: `external` and `esbuildOptions.external`, less the entries in `excludeFromExternal`. A `*` in an entry is esbuild's wildcard, as in `@acme/*`.
|
|
145
162
|
|
|
163
|
+
A `testing/` folder holds test support, so the rule does not check its imports. A package can also ship a testing subpath to its consumers. So the rule checks a `testing/` folder when the manifest publishes it: an `exports` target or a `files` entry has a `testing` segment, or an `exports` target has a `*`. For a bundled project, the rule applies the same decision to each workspace package that it inlines.
|
|
164
|
+
|
|
146
165
|
Nx's check follows the imports of all workspace packages, or of none. So when an app inlines some workspace packages and names others in `external`, the rule does not check the npm imports of the inlined packages.
|
|
147
166
|
|
|
148
167
|
```js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-promise-field.d.ts","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"no-promise-field.d.ts","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":";AAwLA,wBAAgC"}
|
|
@@ -59,8 +59,9 @@ function recordMembers({ checker }, type) {
|
|
|
59
59
|
* Whether `type` is a promise, or carries one as a type argument
|
|
60
60
|
* (`Map<string, Promise<X>>`, `Promise<X>[]`) or as a member of a record the
|
|
61
61
|
* project declares, in any member of a union or an intersection. A function
|
|
62
|
-
* type is not entered
|
|
63
|
-
*
|
|
62
|
+
* type is not entered, not even through the arguments of the generic alias
|
|
63
|
+
* that names it (Zod's `z.infer` of `z.function()`): a field that holds
|
|
64
|
+
* `() => Promise<X>` holds the memoized function this rule asks for.
|
|
64
65
|
*
|
|
65
66
|
* `path` holds only the types on the way to this one: a type that one branch
|
|
66
67
|
* met at the depth limit must still be walked when another branch meets it
|
|
@@ -76,7 +77,8 @@ function holdsPromise(walk, type, depth = 0, path = new Set()) {
|
|
|
76
77
|
return unionConstituents(type)
|
|
77
78
|
.flatMap((part) => intersectionConstituents(part))
|
|
78
79
|
.some((part) => isPromiseWithResolvers(walk, part) ||
|
|
79
|
-
|
|
80
|
+
(part.getCallSignatures().length === 0 &&
|
|
81
|
+
typeArguments(walk, part).some((argument) => holdsPromise(walk, argument, depth, path))) ||
|
|
80
82
|
(depth < RECORD_DEPTH &&
|
|
81
83
|
isProjectRecord(walk, part) &&
|
|
82
84
|
recordMembers(walk, part).some((member) => holdsPromise(walk, member, depth + 1, path))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-promise-field.js","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AASzD,sEAAsE;AACtE,MAAM,aAAa,GAAG,CAAC,OAAmB,EAAE,IAAmB,EAAE,EAAE,CACjE,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACxC,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;AAEhD;;;GAGG;AACH,SAAS,sBAAsB,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,OAAO,CACL,MAAM,EAAE,OAAO,EAAE,KAAK,sBAAsB;QAC5C,MAAM;aACH,eAAe,EAAE;YAClB,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACrB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,CACpD,KAAK,IAAI,CACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IACrD,OAAO;QACL,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;GAKG;AACH,SAAS,eAAe,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,OAAO,CACL,YAAY,KAAK,SAAS;QAC1B,YAAY,CAAC,MAAM,GAAG,CAAC;QACvB,YAAY,CAAC,KAAK,CAChB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,CACtE,CACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IACrD,OAAO;QACL,GAAG,OAAO;aACP,mBAAmB,CAAC,IAAI,CAAC;aACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvD,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"no-promise-field.js","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AA4BrD;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,OA6HlB,CAAC"}
|
package/dist/base/config.js
CHANGED
|
@@ -7,7 +7,7 @@ import tseslint from 'typescript-eslint';
|
|
|
7
7
|
import noPromiseField from "../async-values/no-promise-field.js";
|
|
8
8
|
import noPhaseFlag from "../class-state/no-phase-flag.js";
|
|
9
9
|
import { enable } from "../concept.js";
|
|
10
|
-
import { BUILD_OUTPUT, FIXTURES, JAVASCRIPT, SOURCE, TESTS, TYPESCRIPT, } from "../files.js";
|
|
10
|
+
import { BUILD_OUTPUT, COMMONJS, FIXTURES, JAVASCRIPT, SOURCE, TESTS, TYPESCRIPT, } from "../files.js";
|
|
11
11
|
import noPlaywrightTest from "../imports/no-playwright-test.js";
|
|
12
12
|
import noStateManagers from "../imports/no-state-managers.js";
|
|
13
13
|
import noEnum from "../language/no-enum.js";
|
|
@@ -56,6 +56,13 @@ export const base = {
|
|
|
56
56
|
'@typescript-eslint/prefer-namespace-keyword': 'error',
|
|
57
57
|
'@typescript-eslint/no-inferrable-types': 'error',
|
|
58
58
|
},
|
|
59
|
+
}, {
|
|
60
|
+
// In a CommonJS file require() is the only import form: Node runs a
|
|
61
|
+
// `.cts` with its types stripped, which rejects `import x = require()`,
|
|
62
|
+
// and `verbatimModuleSyntax` rejects ESM imports there.
|
|
63
|
+
name: 'zukhruf/base/commonjs',
|
|
64
|
+
files: COMMONJS,
|
|
65
|
+
rules: { '@typescript-eslint/no-require-imports': 'off' },
|
|
59
66
|
}, {
|
|
60
67
|
name: 'zukhruf/base/typescript',
|
|
61
68
|
files: TYPESCRIPT,
|
package/dist/base/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"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"}
|
package/dist/base/options.d.ts
CHANGED
|
@@ -7,17 +7,18 @@ export declare function noLet({ ignoreIdentifierPattern }?: NoLetOptions): {
|
|
|
7
7
|
allowInFunctions: boolean;
|
|
8
8
|
ignoreIdentifierPattern: string[];
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
/** typescript-eslint's name for a type or value by where it is declared: the TS lib, a package, or a file. */
|
|
11
|
+
export interface TypeOrValueSpecifier {
|
|
11
12
|
from: 'file' | 'lib' | 'package';
|
|
12
13
|
name: string | string[];
|
|
13
14
|
package?: string;
|
|
14
15
|
path?: string;
|
|
15
16
|
}
|
|
16
17
|
export interface NoFloatingPromisesOptions {
|
|
17
|
-
allowForKnownSafeCalls?:
|
|
18
|
+
allowForKnownSafeCalls?: TypeOrValueSpecifier[];
|
|
18
19
|
}
|
|
19
20
|
/** Options for `@typescript-eslint/no-floating-promises`, with node:test's calls already allowed. */
|
|
20
21
|
export declare function noFloatingPromises({ allowForKnownSafeCalls, }?: NoFloatingPromisesOptions): {
|
|
21
|
-
allowForKnownSafeCalls:
|
|
22
|
+
allowForKnownSafeCalls: TypeOrValueSpecifier[];
|
|
22
23
|
};
|
|
23
24
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,8GAA8G;AAC9G,wBAAgB,KAAK,CAAC,EAAE,uBAA4B,EAAE,GAAE,YAAiB;;;EAExE;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,8GAA8G;AAC9G,wBAAgB,KAAK,CAAC,EAAE,uBAA4B,EAAE,GAAE,YAAiB;;;EAExE;AAED,8GAA8G;AAC9G,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACjD;AASD,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,EACjC,sBAA2B,GAC5B,GAAE,yBAA8B;;EAIhC"}
|
package/dist/base/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,sEAAsE;AACtE,iEAAiE;AAOjE,8GAA8G;AAC9G,MAAM,UAAU,KAAK,CAAC,EAAE,uBAAuB,GAAG,EAAE,KAAmB,EAAE;IACvE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAC7D,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,sEAAsE;AACtE,iEAAiE;AAOjE,8GAA8G;AAC9G,MAAM,UAAU,KAAK,CAAC,EAAE,uBAAuB,GAAG,EAAE,KAAmB,EAAE;IACvE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAC7D,CAAC;AAcD,uEAAuE;AACvE,MAAM,eAAe,GAAyB;IAC5C,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,qGAAqG;AACrG,MAAM,UAAU,kBAAkB,CAAC,EACjC,sBAAsB,GAAG,EAAE,MACE,EAAE;IAC/B,OAAO;QACL,sBAAsB,EAAE,CAAC,eAAe,EAAE,GAAG,sBAAsB,CAAC;KACrE,CAAC;AACJ,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { type Concept } from '../concept.ts';
|
|
|
2
2
|
/**
|
|
3
3
|
* A service that validates its environment once, in a startup zod schema
|
|
4
4
|
* (`const env = z.object({...})`), and reads it only through declared keys.
|
|
5
|
+
* `settings.env.startupFile` names that file when it is not `src/startup.ts`.
|
|
5
6
|
*/
|
|
6
7
|
export declare const env: Concept;
|
|
7
8
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAYrD
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAYrD;;;;GAIG;AACH,eAAO,MAAM,GAAG,EAAE,OAajB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { enable } from "../concept.js";
|
|
2
|
-
import { TESTS, TYPESCRIPT } from "../files.js";
|
|
2
|
+
import { CONFIG_FILES, TESTS, TYPESCRIPT } from "../files.js";
|
|
3
3
|
import noDefaultForPathEnv from "./no-default-for-path-env.js";
|
|
4
4
|
import noSingleEnvReadWrapper from "./no-single-env-read-wrapper.js";
|
|
5
5
|
import noUndeclaredProcessEnv from "./no-undeclared-process-env.js";
|
|
@@ -11,6 +11,7 @@ const rules = {
|
|
|
11
11
|
/**
|
|
12
12
|
* A service that validates its environment once, in a startup zod schema
|
|
13
13
|
* (`const env = z.object({...})`), and reads it only through declared keys.
|
|
14
|
+
* `settings.env.startupFile` names that file when it is not `src/startup.ts`.
|
|
14
15
|
*/
|
|
15
16
|
export const env = {
|
|
16
17
|
name: 'env',
|
|
@@ -19,7 +20,8 @@ export const env = {
|
|
|
19
20
|
{
|
|
20
21
|
name: 'zukhruf/env',
|
|
21
22
|
files: TYPESCRIPT,
|
|
22
|
-
|
|
23
|
+
// A tool config runs at build time, with no startup env schema.
|
|
24
|
+
ignores: [...TESTS, ...CONFIG_FILES],
|
|
23
25
|
plugins,
|
|
24
26
|
rules: enable(rules),
|
|
25
27
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AAEpE,MAAM,KAAK,GAAG;IACZ,2BAA2B,EAAE,sBAAsB;IACnD,4BAA4B,EAAE,sBAAsB;IACpD,yBAAyB,EAAE,mBAAmB;CAC/C,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAY;IAC1B,IAAI,EAAE,KAAK;IACX,KAAK;IACL,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,UAAU;YACjB,gEAAgE;YAChE,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,YAAY,CAAC;YACpC,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-undeclared-process-env.d.ts","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"no-undeclared-process-env.d.ts","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkMnC;;;;;;GAMG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAkEhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -23,12 +23,24 @@ function isProcessEnvMember(node) {
|
|
|
23
23
|
memberKey(node) === 'env' &&
|
|
24
24
|
identifierName(node['object']) === 'process');
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const DEFAULT_STARTUP_FILE = 'src/startup.ts';
|
|
27
|
+
/**
|
|
28
|
+
* `settings.env.startupFile` names the startup file. It is a fact about the
|
|
29
|
+
* repo, not a rule option, so a repo gives it without setting the rule again
|
|
30
|
+
* and the `env` config keeps its files and ignores.
|
|
31
|
+
*/
|
|
32
|
+
function startupFileSetting(context) {
|
|
33
|
+
const envSettings = isRecord(context.settings)
|
|
34
|
+
? context.settings['env']
|
|
35
|
+
: undefined;
|
|
36
|
+
const startupFile = isRecord(envSettings)
|
|
37
|
+
? envSettings['startupFile']
|
|
38
|
+
: undefined;
|
|
39
|
+
if (startupFile === undefined) {
|
|
40
|
+
return DEFAULT_STARTUP_FILE;
|
|
41
|
+
}
|
|
30
42
|
if (typeof startupFile !== 'string') {
|
|
31
|
-
throw new TypeError('no-undeclared-process-env:
|
|
43
|
+
throw new TypeError('no-undeclared-process-env: settings.env.startupFile must be a string.');
|
|
32
44
|
}
|
|
33
45
|
return startupFile;
|
|
34
46
|
}
|
|
@@ -137,21 +149,10 @@ const rule = {
|
|
|
137
149
|
startupUnavailable: 'Could not validate process.env usage because the startup env schema is unavailable: {{error}}',
|
|
138
150
|
undeclaredEnv: 'Declare {{key}} in {{startupFile}} before using process.env.{{key}}.',
|
|
139
151
|
},
|
|
140
|
-
schema: [
|
|
141
|
-
{
|
|
142
|
-
type: 'object',
|
|
143
|
-
additionalProperties: false,
|
|
144
|
-
properties: {
|
|
145
|
-
startupFile: {
|
|
146
|
-
type: 'string',
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
],
|
|
151
|
-
defaultOptions: [{ startupFile: 'src/startup.ts' }],
|
|
152
|
+
schema: [],
|
|
152
153
|
},
|
|
153
154
|
create(context) {
|
|
154
|
-
const startupPath = resolveStartupPath(context,
|
|
155
|
+
const startupPath = resolveStartupPath(context, startupFileSetting(context));
|
|
155
156
|
const declared = declaredEnvOf(startupPath);
|
|
156
157
|
let reportedStartupError = false;
|
|
157
158
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-undeclared-process-env.js","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAEL,cAAc,EACd,SAAS,EACT,MAAM,GACP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EACL,mBAAmB,EACnB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAQxC,4EAA4E;AAC5E,sDAAsD;AACtD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAuB,CAAC;AAE7D,SAAS,SAAS,CAAC,IAAa;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,OAAO,CACL,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK;QACzB,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,SAAS,CAC7C,CAAC;AACJ,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"no-undeclared-process-env.js","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"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"}
|
package/dist/files.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const TYPESCRIPT: string[];
|
|
2
2
|
export declare const JAVASCRIPT: string[];
|
|
3
3
|
export declare const SOURCE: string[];
|
|
4
|
+
export declare const COMMONJS: string[];
|
|
4
5
|
export declare const JSX: string[];
|
|
5
6
|
/** The extensions a test file can have: `x.test.<extension>` or `x.spec.<extension>`. */
|
|
6
7
|
export declare const TEST_EXTENSIONS: string[];
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,MAAM,UAAiC,CAAC;AACrD,eAAO,MAAM,GAAG,UAA2B,CAAC;AAC5C,yFAAyF;AACzF,eAAO,MAAM,eAAe,UAS3B,CAAC;AACF,eAAO,MAAM,KAAK,UAAsD,CAAC;AACzE,mFAAmF;AACnF,eAAO,MAAM,QAAQ,UAAsB,CAAC;AAC5C,0CAA0C;AAC1C,eAAO,MAAM,OAAO,UAAoB,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,YAAY,UAA0C,CAAC;AACpE,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,UAOxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,MAAM,UAAiC,CAAC;AACrD,eAAO,MAAM,QAAQ,UAA2B,CAAC;AACjD,eAAO,MAAM,GAAG,UAA2B,CAAC;AAC5C,yFAAyF;AACzF,eAAO,MAAM,eAAe,UAS3B,CAAC;AACF,eAAO,MAAM,KAAK,UAAsD,CAAC;AACzE,mFAAmF;AACnF,eAAO,MAAM,QAAQ,UAAsB,CAAC;AAC5C,0CAA0C;AAC1C,eAAO,MAAM,OAAO,UAAoB,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,YAAY,UAA0C,CAAC;AACpE,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,UAOxB,CAAC"}
|
package/dist/files.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export const TYPESCRIPT = ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'];
|
|
6
6
|
export const JAVASCRIPT = ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'];
|
|
7
7
|
export const SOURCE = [...TYPESCRIPT, ...JAVASCRIPT];
|
|
8
|
+
export const COMMONJS = ['**/*.cjs', '**/*.cts'];
|
|
8
9
|
export const JSX = ['**/*.tsx', '**/*.jsx'];
|
|
9
10
|
/** The extensions a test file can have: `x.test.<extension>` or `x.spec.<extension>`. */
|
|
10
11
|
export const TEST_EXTENSIONS = [
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uEAAuE;AACvE,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5C,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,qBAAqB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzE,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,6BAA6B;IAC7B,+BAA+B;CAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uEAAuE;AACvE,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5C,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,qBAAqB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzE,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,6BAA6B;IAC7B,+BAA+B;CAChC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { default } from './plugin.ts';
|
|
2
|
-
export { noFloatingPromises, type NoFloatingPromisesOptions, noLet, type NoLetOptions, type
|
|
2
|
+
export { noFloatingPromises, type NoFloatingPromisesOptions, noLet, type NoLetOptions, type TypeOrValueSpecifier, } from './base/options.ts';
|
|
3
|
+
export { reactRouterOnlyThrowError, type ReactRouterOnlyThrowErrorOptions, } from './react-router/options.ts';
|
|
3
4
|
//# 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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAElB,KAAK,GAGN,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAElB,KAAK,GAGN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,GAE1B,MAAM,2BAA2B,CAAC"}
|
|
@@ -13,9 +13,10 @@ export interface ManifestPolicyOptions extends Omit<DependencyPolicyOptions, 'in
|
|
|
13
13
|
* The complete `@nx/dependency-checks` options for `project`: the shared
|
|
14
14
|
* policy, the repo's entries, the project's own extras, and what its shape
|
|
15
15
|
* demands. A bundled project declares the npm packages its workspace imports
|
|
16
|
-
* pull in. No project declares the workspace packages its build inlines
|
|
16
|
+
* pull in. No project declares the workspace packages its build inlines, or
|
|
17
|
+
* what a `testing/` folder that its manifest does not publish imports.
|
|
17
18
|
*/
|
|
18
|
-
export declare function manifestPolicy(graph: ProjectGraph, project: ProjectGraphProjectNode, { projects, ignoredDependencies, ...options }?: ManifestPolicyOptions): {
|
|
19
|
+
export declare function manifestPolicy(graph: ProjectGraph, project: ProjectGraphProjectNode, { projects, ignoredDependencies, ignoredFiles, ...options }?: ManifestPolicyOptions): {
|
|
19
20
|
ignoredFiles: string[];
|
|
20
21
|
ignoredDependencies: string[];
|
|
21
22
|
includeTransitiveDependencies: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-policy.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-policy.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,mCAAmC,CAAC;AAI3C,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,8FAA8F;AAC9F,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,uBAAuB,EACvB,+BAA+B,CAChC;IACC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,EACE,QAAa,EACb,mBAAwB,EACxB,YAAiB,EACjB,GAAG,OAAO,EACX,GAAE,qBAA0B;;;;;;;;EAiB9B"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { dependencyPolicy, } from "../nx-policy/dependency-policy.js";
|
|
2
2
|
import { ProjectBuild } from "./project-build.js";
|
|
3
|
+
import { testSupportFiles } from "./test-support.js";
|
|
3
4
|
/**
|
|
4
5
|
* The complete `@nx/dependency-checks` options for `project`: the shared
|
|
5
6
|
* policy, the repo's entries, the project's own extras, and what its shape
|
|
6
7
|
* demands. A bundled project declares the npm packages its workspace imports
|
|
7
|
-
* pull in. No project declares the workspace packages its build inlines
|
|
8
|
+
* pull in. No project declares the workspace packages its build inlines, or
|
|
9
|
+
* what a `testing/` folder that its manifest does not publish imports.
|
|
8
10
|
*/
|
|
9
|
-
export function manifestPolicy(graph, project, { projects = {}, ignoredDependencies = [], ...options } = {}) {
|
|
11
|
+
export function manifestPolicy(graph, project, { projects = {}, ignoredDependencies = [], ignoredFiles = [], ...options } = {}) {
|
|
10
12
|
const build = new ProjectBuild(graph, project);
|
|
13
|
+
const bundled = build.shape === 'bundled';
|
|
11
14
|
return dependencyPolicy({
|
|
12
15
|
...options,
|
|
13
|
-
includeTransitiveDependencies:
|
|
16
|
+
includeTransitiveDependencies: bundled,
|
|
17
|
+
ignoredFiles: [
|
|
18
|
+
...testSupportFiles(graph, project, bundled),
|
|
19
|
+
...ignoredFiles,
|
|
20
|
+
],
|
|
14
21
|
ignoredDependencies: [
|
|
15
22
|
...build.inlined,
|
|
16
23
|
...ignoredDependencies,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-policy.js","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-policy.js","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,OAAgC,EAChC,EACE,QAAQ,GAAG,EAAE,EACb,mBAAmB,GAAG,EAAE,EACxB,YAAY,GAAG,EAAE,EACjB,GAAG,OAAO,KACe,EAAE;IAE7B,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IAC1C,OAAO,gBAAgB,CAAC;QACtB,GAAG,OAAO;QACV,6BAA6B,EAAE,OAAO;QACtC,YAAY,EAAE;YACZ,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;YAC5C,GAAG,YAAY;SAChB;QACD,mBAAmB,EAAE;YACnB,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,mBAAmB;YACtB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,mBAAmB,IAAI,EAAE,CAAC;SAC5D;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -14,11 +14,13 @@ export type ProjectShape = 'bundled' | 'unbundled';
|
|
|
14
14
|
* as Nx resolves it: project.json, the target defaults in nx.json, and the
|
|
15
15
|
* targets that Nx plugins infer.
|
|
16
16
|
*
|
|
17
|
-
* An application bundles unless its build
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* An application bundles unless its build compiles with tsc (it emits file by
|
|
18
|
+
* file and keeps each import), as `@nx/js:tsc` or the `tsc --build` target
|
|
19
|
+
* that the `@nx/js/typescript` plugin infers, is `nx:noop` (it ships what
|
|
20
|
+
* other projects built), esbuild with `bundle: false` (it transpiles file by
|
|
21
|
+
* file), or esbuild that leaves a workspace package it imports to
|
|
22
|
+
* node_modules (it installs that package, and inlines only the others).
|
|
23
|
+
* esbuild bundles by default.
|
|
22
24
|
*/
|
|
23
25
|
export declare class ProjectBuild {
|
|
24
26
|
readonly shape: ProjectShape;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-build.d.ts","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAKxE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AA4BnD
|
|
1
|
+
{"version":3,"file":"project-build.d.ts","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAKxE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AA4BnD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAExB,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB;CA8BlE"}
|
|
@@ -29,11 +29,13 @@ function matchesExternal(name, pattern) {
|
|
|
29
29
|
* as Nx resolves it: project.json, the target defaults in nx.json, and the
|
|
30
30
|
* targets that Nx plugins infer.
|
|
31
31
|
*
|
|
32
|
-
* An application bundles unless its build
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
32
|
+
* An application bundles unless its build compiles with tsc (it emits file by
|
|
33
|
+
* file and keeps each import), as `@nx/js:tsc` or the `tsc --build` target
|
|
34
|
+
* that the `@nx/js/typescript` plugin infers, is `nx:noop` (it ships what
|
|
35
|
+
* other projects built), esbuild with `bundle: false` (it transpiles file by
|
|
36
|
+
* file), or esbuild that leaves a workspace package it imports to
|
|
37
|
+
* node_modules (it installs that package, and inlines only the others).
|
|
38
|
+
* esbuild bundles by default.
|
|
37
39
|
*/
|
|
38
40
|
export class ProjectBuild {
|
|
39
41
|
shape;
|
|
@@ -42,7 +44,11 @@ export class ProjectBuild {
|
|
|
42
44
|
constructor(graph, project) {
|
|
43
45
|
const build = project.data.targets?.['build'];
|
|
44
46
|
const esbuild = build?.executor?.includes('esbuild') === true;
|
|
47
|
+
const typescript = build?.executor === '@nx/js:tsc' ||
|
|
48
|
+
(build?.executor === 'nx:run-commands' &&
|
|
49
|
+
build.metadata?.technologies?.includes('typescript') === true);
|
|
45
50
|
if (project.data.projectType !== 'application' ||
|
|
51
|
+
typescript ||
|
|
46
52
|
build?.executor === 'nx:noop' ||
|
|
47
53
|
(esbuild && build?.options?.bundle === false)) {
|
|
48
54
|
this.shape = 'unbundled';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-build.js","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAa5E;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACpE,OAAO;QACL,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC;QACnD,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;KAClC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,IAAY,EAAE,OAAe;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,KAAK,OAAO,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,CACL,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;QAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtB,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"project-build.js","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ProjectGraph, type ProjectGraphProjectNode } from '@nx/devkit';
|
|
2
|
+
/**
|
|
3
|
+
* The `testing/` folders that hold test support, as `ignoredFiles` globs. A
|
|
4
|
+
* `testing/` folder is test support unless its project's manifest publishes it,
|
|
5
|
+
* because a package can ship a testing subpath for its consumers. The globs
|
|
6
|
+
* are relative to the workspace root, not `{projectRoot}`, because Nx applies
|
|
7
|
+
* one `ignoredFiles` list to every project a bundled app inlines.
|
|
8
|
+
*/
|
|
9
|
+
export declare function testSupportFiles(graph: ProjectGraph, project: ProjectGraphProjectNode, bundled: boolean): string[];
|
|
10
|
+
//# sourceMappingURL=test-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-support.d.ts","sourceRoot":"","sources":["../../src/manifest/test-support.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,YAAY,CAAC;AA+CpB;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CASV"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { join, posix } from 'node:path';
|
|
2
|
+
import { workspaceRoot, } from '@nx/devkit';
|
|
3
|
+
import { isRecord, stringsAt } from "../unknown-values.js";
|
|
4
|
+
import { readJson } from "../workspace/project-manifest.js";
|
|
5
|
+
/** The file paths a manifest's `exports` maps to, in any of its forms. */
|
|
6
|
+
function exportTargets(exports) {
|
|
7
|
+
if (typeof exports === 'string')
|
|
8
|
+
return [exports];
|
|
9
|
+
if (Array.isArray(exports))
|
|
10
|
+
return exports.flatMap(exportTargets);
|
|
11
|
+
return isRecord(exports) ? Object.values(exports).flatMap(exportTargets) : [];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether the manifest publishes a `testing/` folder: an `exports` target or
|
|
15
|
+
* a `files` entry names a `testing` segment, or an `exports` target has a
|
|
16
|
+
* `*`, which can reach any folder.
|
|
17
|
+
*/
|
|
18
|
+
function publishesTesting(manifest) {
|
|
19
|
+
const exports = isRecord(manifest) ? exportTargets(manifest['exports']) : [];
|
|
20
|
+
return (exports.some((path) => path.includes('*')) ||
|
|
21
|
+
[...exports, ...stringsAt(manifest, 'files')].some((path) => path.split('/').includes('testing')));
|
|
22
|
+
}
|
|
23
|
+
/** `project` and, when its build inlines them, the workspace projects it imports, transitively. */
|
|
24
|
+
function checkedProjects(graph, project, bundled) {
|
|
25
|
+
const seen = new Map([[project.name, project]]);
|
|
26
|
+
if (!bundled)
|
|
27
|
+
return [...seen.values()];
|
|
28
|
+
const visit = (name) => {
|
|
29
|
+
for (const { target } of graph.dependencies[name] ?? []) {
|
|
30
|
+
const node = graph.nodes[target];
|
|
31
|
+
if (!node || seen.has(target))
|
|
32
|
+
continue;
|
|
33
|
+
seen.set(target, node);
|
|
34
|
+
visit(target);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
visit(project.name);
|
|
38
|
+
return [...seen.values()];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The `testing/` folders that hold test support, as `ignoredFiles` globs. A
|
|
42
|
+
* `testing/` folder is test support unless its project's manifest publishes it,
|
|
43
|
+
* because a package can ship a testing subpath for its consumers. The globs
|
|
44
|
+
* are relative to the workspace root, not `{projectRoot}`, because Nx applies
|
|
45
|
+
* one `ignoredFiles` list to every project a bundled app inlines.
|
|
46
|
+
*/
|
|
47
|
+
export function testSupportFiles(graph, project, bundled) {
|
|
48
|
+
return checkedProjects(graph, project, bundled)
|
|
49
|
+
.filter(({ data }) => !publishesTesting(readJson(join(workspaceRoot, data.root, 'package.json'))))
|
|
50
|
+
.map(({ data }) => posix.join(data.root, '**/testing/**'));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=test-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-support.js","sourceRoot":"","sources":["../../src/manifest/test-support.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAarD,eAAO,MAAM,WAAW,EAAE,OAmCzB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { enable } from "../concept.js";
|
|
2
|
-
import { SOURCE, TESTS } from "../files.js";
|
|
2
|
+
import { SOURCE, TESTS, TYPESCRIPT } from "../files.js";
|
|
3
3
|
import noInternalAnchor from "./no-internal-anchor.js";
|
|
4
4
|
import noRawRoutePath from "./no-raw-route-path.js";
|
|
5
|
+
import { reactRouterOnlyThrowError } from "./options.js";
|
|
5
6
|
import requireLoaderDataTypeArgument from "./require-loader-data-type-argument.js";
|
|
6
7
|
const rules = {
|
|
7
8
|
'require-loader-data-type-argument': requireLoaderDataTypeArgument,
|
|
@@ -29,6 +30,19 @@ export const reactRouter = {
|
|
|
29
30
|
'no-internal-anchor': noInternalAnchor,
|
|
30
31
|
}),
|
|
31
32
|
},
|
|
33
|
+
{
|
|
34
|
+
// `base` turns the rule on with no allow list. Loader helpers live
|
|
35
|
+
// outside the route modules, so the allow list covers every file of
|
|
36
|
+
// this config, not only a routes folder.
|
|
37
|
+
name: 'zukhruf/react-router/throws',
|
|
38
|
+
files: TYPESCRIPT,
|
|
39
|
+
rules: {
|
|
40
|
+
'@typescript-eslint/only-throw-error': [
|
|
41
|
+
'error',
|
|
42
|
+
reactRouterOnlyThrowError(),
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
32
46
|
],
|
|
33
47
|
};
|
|
34
48
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,cAAc,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,6BAA6B,MAAM,wCAAwC,CAAC;AAEnF,MAAM,KAAK,GAAG;IACZ,mCAAmC,EAAE,6BAA6B;IAClE,mBAAmB,EAAE,cAAc;IACnC,oBAAoB,EAAE,gBAAgB;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,cAAc;IACpB,KAAK;IACL,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,MAAM;YACb,OAAO;YACP,KAAK,EAAE,EAAE,2CAA2C,EAAE,OAAO,EAAE;SAChE;QACD;YACE,oDAAoD;YACpD,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK;YACd,OAAO;YACP,KAAK,EAAE,MAAM,CAAC;gBACZ,mBAAmB,EAAE,cAAc;gBACnC,oBAAoB,EAAE,gBAAgB;aACvC,CAAC;SACH;QACD;YACE,mEAAmE;YACnE,oEAAoE;YACpE,yCAAyC;YACzC,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACL,qCAAqC,EAAE;oBACrC,OAAO;oBACP,yBAAyB,EAAE;iBAC5B;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TypeOrValueSpecifier } from '../base/options.ts';
|
|
2
|
+
export interface ReactRouterOnlyThrowErrorOptions {
|
|
3
|
+
/** More types that a react-router file may throw. */
|
|
4
|
+
allow?: TypeOrValueSpecifier[];
|
|
5
|
+
}
|
|
6
|
+
/** Options for `@typescript-eslint/only-throw-error` in react-router files, with React Router's thrown types already allowed. */
|
|
7
|
+
export declare function reactRouterOnlyThrowError({ allow, }?: ReactRouterOnlyThrowErrorOptions): {
|
|
8
|
+
allow: TypeOrValueSpecifier[];
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/react-router/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,gCAAgC;IAC/C,qDAAqD;IACrD,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAWD,iIAAiI;AACjI,wBAAgB,yBAAyB,CAAC,EACxC,KAAU,GACX,GAAE,gCAAqC;;EAEvC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// A loader or an action throws `redirect()`, `replace()` (a Response) or
|
|
2
|
+
// `data()` (a DataWithResponseInit) to stop and answer at once. React Router
|
|
3
|
+
// catches the thrown value and renders it, so it is not an error that loses
|
|
4
|
+
// its stack.
|
|
5
|
+
const ROUTER_THROWS = [
|
|
6
|
+
{ from: 'lib', name: 'Response' },
|
|
7
|
+
{ from: 'package', package: 'react-router', name: 'DataWithResponseInit' },
|
|
8
|
+
];
|
|
9
|
+
/** Options for `@typescript-eslint/only-throw-error` in react-router files, with React Router's thrown types already allowed. */
|
|
10
|
+
export function reactRouterOnlyThrowError({ allow = [], } = {}) {
|
|
11
|
+
return { allow: [...ROUTER_THROWS, ...allow] };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/react-router/options.ts"],"names":[],"mappings":"AAOA,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,aAAa;AACb,MAAM,aAAa,GAA2B;IAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACjC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE;CAC3E,CAAC;AAEF,iIAAiI;AACjI,MAAM,UAAU,yBAAyB,CAAC,EACxC,KAAK,GAAG,EAAE,MAC0B,EAAE;IACtC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zukhruf/eslint",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.42",
|
|
4
4
|
"description": "ESLint rules and configs shared across workspaces. Every check is its own named rule, so a repo's own config cannot silently erase it.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|