@noahnu/unused-files 0.1.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md
CHANGED
@@ -2,7 +2,13 @@
|
|
2
2
|
|
3
3
|
<!-- MONOWEAVE:BELOW -->
|
4
4
|
|
5
|
-
## @noahnu/unused-files (v0.1
|
5
|
+
## @noahnu/unused-files (v0.2.1) <a name="0.2.1"></a>
|
6
|
+
|
7
|
+
Respect ignorePatterns for visiting files.
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
## @noahnu/unused-files (v0.2.0) <a name="0.2.0"></a>
|
6
12
|
|
7
13
|
Support custom resolvers.
|
8
14
|
|
package/lib/api/index.js
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
import { type Resolver } from './types';
|
2
|
-
export declare function walkDependencyTree(source: string, { resolvers, visited, depth, }?: {
|
2
|
+
export declare function walkDependencyTree(source: string, { resolvers, visited, depth, ignorePatterns, }?: {
|
3
3
|
resolvers?: Resolver[];
|
4
4
|
visited?: Set<string>;
|
5
5
|
depth?: number;
|
6
|
+
ignorePatterns?: string[];
|
6
7
|
}): AsyncGenerator<{
|
7
8
|
source: string;
|
8
9
|
dependency: string;
|
@@ -8,10 +8,11 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
9
9
|
const typescript_estree_1 = require("@typescript-eslint/typescript-estree");
|
10
10
|
const debug_1 = __importDefault(require("debug"));
|
11
|
+
const micromatch_1 = __importDefault(require("micromatch"));
|
11
12
|
const debug = (0, debug_1.default)('unused-files:parse');
|
12
13
|
const DEFAULT_DEPTH_LIMIT = -1; // no depth limit
|
13
14
|
const VALID_EXTENSIONS = new Set(['ts', 'tsx', 'mts', 'cts', 'js', 'jsx', 'mjs', 'cjs']);
|
14
|
-
async function* walkDependencyTree(source, { resolvers, visited, depth = DEFAULT_DEPTH_LIMIT, } = {}) {
|
15
|
+
async function* walkDependencyTree(source, { resolvers, visited, depth = DEFAULT_DEPTH_LIMIT, ignorePatterns, } = {}) {
|
15
16
|
const ext = node_path_1.default.extname(source).substring(1);
|
16
17
|
if (!VALID_EXTENSIONS.has(ext)) {
|
17
18
|
debug(`${source}: Unknown file extension '${ext}' [skipping]`);
|
@@ -89,12 +90,16 @@ async function* walkDependencyTree(source, { resolvers, visited, depth = DEFAULT
|
|
89
90
|
for (const importFrom of Array.from(importFroms)) {
|
90
91
|
const absPath = await resolveToAbsPath(importFrom);
|
91
92
|
if (absPath) {
|
93
|
+
if (ignorePatterns && micromatch_1.default.isMatch(absPath, ignorePatterns)) {
|
94
|
+
continue;
|
95
|
+
}
|
92
96
|
yield { dependency: absPath, source };
|
93
97
|
if (depth === -1 || depth > 0) {
|
94
98
|
yield* walkDependencyTree(absPath, {
|
95
99
|
resolvers,
|
96
100
|
visited: visitedSet,
|
97
101
|
depth: depth === -1 ? depth : depth - 1,
|
102
|
+
ignorePatterns,
|
98
103
|
});
|
99
104
|
}
|
100
105
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@noahnu/unused-files",
|
3
|
-
"version": "0.1
|
3
|
+
"version": "0.2.1",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "https://github.com/noahnu/nodejs-tools.git",
|
@@ -35,11 +35,13 @@
|
|
35
35
|
"clipanion": "^4.0.0-rc.4",
|
36
36
|
"debug": "^4.3.7",
|
37
37
|
"fast-glob": "^3.3.2",
|
38
|
+
"micromatch": "^4.0.8",
|
38
39
|
"typanion": "^3.14.0"
|
39
40
|
},
|
40
41
|
"devDependencies": {
|
41
42
|
"@jest/globals": "^29.7.0",
|
42
43
|
"@noahnu/internal-test-utils": "0.0.0",
|
44
|
+
"@types/micromatch": "^4.0.9",
|
43
45
|
"@types/node": "^22.9.0",
|
44
46
|
"typescript": "^5.6.3"
|
45
47
|
},
|