rev-dep 2.8.0 → 2.9.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/Readme.md +30 -8
- package/package.json +4 -4
package/Readme.md
CHANGED
|
@@ -78,6 +78,7 @@ Available checks:
|
|
|
78
78
|
- `unresolvedImportsDetection` - detect unresolved import requests.
|
|
79
79
|
- `circularImportsDetection` - detect circular imports.
|
|
80
80
|
- `devDepsUsageOnProdDetection` - detect dev dependencies used in production code.
|
|
81
|
+
- `restrictedImportsDetection` - block importing denied files/modules from selected entry points.
|
|
81
82
|
|
|
82
83
|
### Exploratory analysis (CLI-based) 🔍
|
|
83
84
|
|
|
@@ -168,6 +169,7 @@ Available checks are:
|
|
|
168
169
|
- `unresolvedImportsDetection` - detect unresolved import requests.
|
|
169
170
|
- `circularImportsDetection` - detect circular imports.
|
|
170
171
|
- `devDepsUsageOnProdDetection` - detect dev dependencies used in production code.
|
|
172
|
+
- `restrictedImportsDetection` - block importing denied files/modules from selected entry points.
|
|
171
173
|
|
|
172
174
|
Checks are grouped in rules. You can have multiple rules, eg. for each monorepo package.
|
|
173
175
|
|
|
@@ -213,8 +215,8 @@ The configuration file (`rev-dep.config.json(c)` or `.rev-dep.config.json(c)`) a
|
|
|
213
215
|
|
|
214
216
|
```jsonc
|
|
215
217
|
{
|
|
216
|
-
"configVersion": "1.
|
|
217
|
-
"$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.
|
|
218
|
+
"configVersion": "1.5",
|
|
219
|
+
"$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.5.schema.json?raw=true",
|
|
218
220
|
"rules": [
|
|
219
221
|
{
|
|
220
222
|
"path": ".",
|
|
@@ -236,7 +238,8 @@ The configuration file (`rev-dep.config.json(c)` or `.rev-dep.config.json(c)`) a
|
|
|
236
238
|
},
|
|
237
239
|
"devDepsUsageOnProdDetection": {
|
|
238
240
|
"enabled": true,
|
|
239
|
-
"prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx"]
|
|
241
|
+
"prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx"],
|
|
242
|
+
"ignoreTypeImports": true
|
|
240
243
|
}
|
|
241
244
|
}
|
|
242
245
|
]
|
|
@@ -249,8 +252,8 @@ Here's a comprehensive example showing all available properties:
|
|
|
249
252
|
|
|
250
253
|
```jsonc
|
|
251
254
|
{
|
|
252
|
-
"configVersion": "1.
|
|
253
|
-
"$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.
|
|
255
|
+
"configVersion": "1.5",
|
|
256
|
+
"$schema": "https://github.com/jayu/rev-dep/blob/master/config-schema/1.5.schema.json?raw=true", // enables json autocompletion
|
|
254
257
|
"conditionNames": ["import", "default"],
|
|
255
258
|
"ignoreFiles": ["**/*.test.*"],
|
|
256
259
|
"rules": [
|
|
@@ -332,7 +335,16 @@ Here's a comprehensive example showing all available properties:
|
|
|
332
335
|
},
|
|
333
336
|
"devDepsUsageOnProdDetection": {
|
|
334
337
|
"enabled": true,
|
|
335
|
-
"prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx", "src/server.ts"]
|
|
338
|
+
"prodEntryPoints": ["src/main.tsx", "src/pages/**/*.tsx", "src/server.ts"],
|
|
339
|
+
"ignoreTypeImports": true
|
|
340
|
+
},
|
|
341
|
+
"restrictedImportsDetection": {
|
|
342
|
+
"enabled": true,
|
|
343
|
+
"entryPoints": ["src/server.ts", "src/server/**/*.ts"],
|
|
344
|
+
"denyFiles": ["**/*.tsx"],
|
|
345
|
+
"denyModules": ["react", "react-*"],
|
|
346
|
+
"ignoreMatches": ["src/server/allowed-view.tsx", "react-awsome-lib"],
|
|
347
|
+
"ignoreTypeImports": true
|
|
336
348
|
}
|
|
337
349
|
}
|
|
338
350
|
]
|
|
@@ -361,6 +373,7 @@ Each rule can contain the following properties:
|
|
|
361
373
|
- **`unusedExportsDetection`** (optional): Unused exports detection configuration
|
|
362
374
|
- **`unresolvedImportsDetection`** (optional): Unresolved imports detection configuration
|
|
363
375
|
- **`devDepsUsageOnProdDetection`** (optional): Restricted dev dependencies usage detection configuration
|
|
376
|
+
- **`restrictedImportsDetection`** (optional): Restrict importing denied files/modules from selected entry points
|
|
364
377
|
- **`importConventions`** (optional): Array of import convention rules
|
|
365
378
|
|
|
366
379
|
#### Module Boundary Properties
|
|
@@ -420,6 +433,15 @@ Each rule can contain the following properties:
|
|
|
420
433
|
**DevDepsUsageOnProd:**
|
|
421
434
|
- **`enabled`** (required): Enable/disable restricted dev dependencies usage detection
|
|
422
435
|
- **`prodEntryPoints`** (optional): Production entry point patterns to trace dependencies from (eg. ["src/pages/**/*.tsx", "src/main.tsx"])
|
|
436
|
+
- **`ignoreTypeImports`** (optional): Exclude type-only imports from graph traversal and module matching (default: false)
|
|
437
|
+
|
|
438
|
+
**RestrictedImportsDetection:**
|
|
439
|
+
- **`enabled`** (required): Enable/disable restricted imports detection
|
|
440
|
+
- **`entryPoints`** (required when enabled): Entry point patterns used to build reachable dependency graph
|
|
441
|
+
- **`denyFiles`** (optional): Denied file path patterns (eg. ["**/*.tsx"])
|
|
442
|
+
- **`denyModules`** (optional): Denied module patterns (eg. ["react", "react-*"])
|
|
443
|
+
- **`ignoreMatches`** (optional): File/module patterns to suppress from restricted import results
|
|
444
|
+
- **`ignoreTypeImports`** (optional): Exclude type-only imports from traversal (default: false)
|
|
423
445
|
|
|
424
446
|
### Performance Benefits
|
|
425
447
|
|
|
@@ -658,7 +680,7 @@ When `devDepsUsageOnProdDetection` is enabled in your config, rev-dep will:
|
|
|
658
680
|
```
|
|
659
681
|
|
|
660
682
|
**Important Notes:**
|
|
661
|
-
- Type-only imports (e.g., `import type { ReactNode } from 'react'`) are
|
|
683
|
+
- Type-only imports (e.g., `import type { ReactNode } from 'react'`) are ignored when `ignoreTypeImports` is enabled
|
|
662
684
|
- Only dependencies from `devDependencies` in package.json are flagged
|
|
663
685
|
- Production dependencies from `dependencies` are allowed
|
|
664
686
|
- Helps prevent runtime failures in production builds
|
|
@@ -722,7 +744,7 @@ Execute all checks defined in (.)rev-dep.config.json(c)
|
|
|
722
744
|
|
|
723
745
|
#### Synopsis
|
|
724
746
|
|
|
725
|
-
Process (.)rev-dep.config.json(c) and execute all enabled checks (circular imports, orphan files, module boundaries, node modules) per rule.
|
|
747
|
+
Process (.)rev-dep.config.json(c) and execute all enabled checks (circular imports, orphan files, module boundaries, import conventions, node modules, unused exports, unresolved imports, restricted imports and restricted dev deps usage) per rule.
|
|
726
748
|
|
|
727
749
|
```
|
|
728
750
|
rev-dep config run [flags]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rev-dep",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "Trace imports, detect unused code, clean dependencies — all with a super-fast CLI",
|
|
5
5
|
"bin": "bin.js",
|
|
6
6
|
"files": [
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
"node": ">=18"
|
|
18
18
|
},
|
|
19
19
|
"optionalDependencies": {
|
|
20
|
-
"@rev-dep/darwin-arm64": "2.
|
|
21
|
-
"@rev-dep/linux-x64": "2.
|
|
22
|
-
"@rev-dep/win32-x64": "2.
|
|
20
|
+
"@rev-dep/darwin-arm64": "2.9.1",
|
|
21
|
+
"@rev-dep/linux-x64": "2.9.1",
|
|
22
|
+
"@rev-dep/win32-x64": "2.9.1"
|
|
23
23
|
},
|
|
24
24
|
"keywords": [
|
|
25
25
|
"dependency-analysis",
|