dep-brain 1.0.1 → 1.0.2
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/CHANGELOG.md +7 -0
- package/dist/checks/unused.js +15 -0
- package/dist/core/graph-builder.d.ts +1 -0
- package/dist/core/graph-builder.js +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 1.0.2
|
|
6
|
+
|
|
7
|
+
- Treated npm `overrides` entries as intentional version pins so direct override packages are not flagged as unused.
|
|
8
|
+
- Improved script/register-path inference for `ts-node/register` and `tsconfig-paths/register`.
|
|
9
|
+
- Suppressed common NestJS TypeScript tooling false positives for `source-map-support`, `ts-loader`, `ts-node`, and `tsconfig-paths`.
|
|
10
|
+
- Added regression coverage for override pins and NestJS debug/build script patterns.
|
|
11
|
+
|
|
5
12
|
## 1.0.1
|
|
6
13
|
|
|
7
14
|
- Reduced NestJS unused false positives for implicit runtime packages such as `@nestjs/platform-express` and `reflect-metadata`.
|
package/dist/checks/unused.js
CHANGED
|
@@ -17,6 +17,8 @@ const SCRIPT_BINARY_PACKAGE_MAP = {
|
|
|
17
17
|
ts_jest: ["ts-jest"],
|
|
18
18
|
ts_loader: ["ts-loader"],
|
|
19
19
|
ts_node: ["ts-node", "tsconfig-paths"],
|
|
20
|
+
ts_node_register: ["ts-node", "tsconfig-paths"],
|
|
21
|
+
tsconfig_paths_register: ["tsconfig-paths"],
|
|
20
22
|
webpack: ["webpack", "ts-loader"]
|
|
21
23
|
};
|
|
22
24
|
export async function findUnusedDependencies(rootDir, graph, fileEntries, options) {
|
|
@@ -49,9 +51,11 @@ export async function findUnusedDependencies(rootDir, graph, fileEntries, option
|
|
|
49
51
|
const hasTypeScriptSources = projectFiles.some((filePath) => /\.(c|m)?tsx?$/.test(filePath));
|
|
50
52
|
if (options.hasTypeScriptConfig) {
|
|
51
53
|
devUsed.add("typescript");
|
|
54
|
+
addImplicitTypeScriptTooling(graph, devUsed);
|
|
52
55
|
}
|
|
53
56
|
const unusedDependencies = Object.keys(graph.dependencies)
|
|
54
57
|
.filter((name) => !runtimeUsed.has(name))
|
|
58
|
+
.filter((name) => !isPackageManagerOverride(name, graph))
|
|
55
59
|
.filter((name) => !isImplicitlyUsedRuntimeDependency(name, graph, runtimeUsed))
|
|
56
60
|
.map((name) => buildUnusedDependency(name, "dependencies"));
|
|
57
61
|
const unusedDevDependencies = Object.keys(graph.devDependencies)
|
|
@@ -145,6 +149,17 @@ function inferPackagesFromScriptReference(reference) {
|
|
|
145
149
|
const normalized = reference.replace(/[-/]/g, "_");
|
|
146
150
|
return SCRIPT_BINARY_PACKAGE_MAP[normalized] ?? [];
|
|
147
151
|
}
|
|
152
|
+
function addImplicitTypeScriptTooling(graph, devUsed) {
|
|
153
|
+
if (hasNestDependency(graph.dependencies) || hasNestDependency(graph.devDependencies)) {
|
|
154
|
+
devUsed.add("source-map-support");
|
|
155
|
+
devUsed.add("ts-loader");
|
|
156
|
+
devUsed.add("ts-node");
|
|
157
|
+
devUsed.add("tsconfig-paths");
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function isPackageManagerOverride(name, graph) {
|
|
161
|
+
return Object.prototype.hasOwnProperty.call(graph.overrides, name);
|
|
162
|
+
}
|
|
148
163
|
function isImplicitlyUsedRuntimeDependency(name, graph, runtimeUsed) {
|
|
149
164
|
if (name === "@nestjs/platform-express" &&
|
|
150
165
|
(runtimeUsed.has("@nestjs/core") || Boolean(graph.dependencies["@nestjs/core"]))) {
|
|
@@ -8,6 +8,7 @@ export interface DependencyGraph {
|
|
|
8
8
|
lockfilePath?: string;
|
|
9
9
|
dependencies: Record<string, string>;
|
|
10
10
|
devDependencies: Record<string, string>;
|
|
11
|
+
overrides: Record<string, unknown>;
|
|
11
12
|
scripts: Record<string, string>;
|
|
12
13
|
lockPackages: Record<string, LockPackageInstance[]>;
|
|
13
14
|
}
|
|
@@ -39,6 +39,7 @@ export async function buildDependencyGraph(rootDir) {
|
|
|
39
39
|
lockfilePath: fallbackLockfile.lockfilePath,
|
|
40
40
|
dependencies: packageJson.dependencies ?? {},
|
|
41
41
|
devDependencies: packageJson.devDependencies ?? {},
|
|
42
|
+
overrides: packageJson.overrides ?? {},
|
|
42
43
|
scripts: packageJson.scripts ?? {},
|
|
43
44
|
lockPackages: fallbackLockfile.lockPackages
|
|
44
45
|
};
|
|
@@ -49,6 +50,7 @@ export async function buildDependencyGraph(rootDir) {
|
|
|
49
50
|
lockfilePath,
|
|
50
51
|
dependencies: packageJson.dependencies ?? {},
|
|
51
52
|
devDependencies: packageJson.devDependencies ?? {},
|
|
53
|
+
overrides: packageJson.overrides ?? {},
|
|
52
54
|
scripts: packageJson.scripts ?? {},
|
|
53
55
|
lockPackages: Object.fromEntries(Array.from(lockPackages.entries()).map(([name, instances]) => [
|
|
54
56
|
name,
|