@bobfrankston/tswalk 1.1.10 → 1.1.12
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/diskwalker.js +263 -21
- package/diskwalker.js.map +1 -1
- package/index.js +47 -35
- package/index.js.map +1 -1
- package/package.json +66 -58
- package/utils.js +4 -1
- package/utils.js.map +1 -1
package/diskwalker.js
CHANGED
|
@@ -21,17 +21,54 @@ import * as path from 'path';
|
|
|
21
21
|
import { spawn } from 'child_process';
|
|
22
22
|
import { styleText } from 'node:util';
|
|
23
23
|
import { compilePatterns, defaultWalkOptions, suppressedErrors } from './utils.js';
|
|
24
|
+
/**
|
|
25
|
+
* Quick hack to detect junction vs symlink on Windows by parsing dir output
|
|
26
|
+
* Returns 'junction', 'symlink', or null if not a link or can't determine
|
|
27
|
+
*/
|
|
28
|
+
async function getLinkType(linkPath) {
|
|
29
|
+
if (process.platform !== 'win32') {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const dirName = path.dirname(linkPath);
|
|
34
|
+
const baseName = path.basename(linkPath);
|
|
35
|
+
const { spawn } = await import('child_process');
|
|
36
|
+
const proc = spawn('cmd', ['/c', 'dir', dirName], {
|
|
37
|
+
windowsHide: true,
|
|
38
|
+
stdio: ['ignore', 'pipe', 'ignore']
|
|
39
|
+
});
|
|
40
|
+
let output = '';
|
|
41
|
+
proc.stdout.on('data', (data) => { output += data.toString(); });
|
|
42
|
+
await new Promise((resolve, reject) => {
|
|
43
|
+
proc.on('close', resolve);
|
|
44
|
+
proc.on('error', reject);
|
|
45
|
+
});
|
|
46
|
+
// Parse lines looking for: <JUNCTION> or <SYMLINKD>
|
|
47
|
+
const lines = output.split(/[\n\r]+/);
|
|
48
|
+
for (const line of lines) {
|
|
49
|
+
const match = /<(?<type>JUNCTION|SYMLINKD?)>\s*(?<name>[^\[]+)/.exec(line);
|
|
50
|
+
if (match?.groups && match.groups.name.trim().toLowerCase() === baseName.toLowerCase()) {
|
|
51
|
+
return match.groups.type === 'JUNCTION' ? 'junction' : 'symlink';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// Fall through
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
24
60
|
export class DiskWalker {
|
|
25
61
|
topPath;
|
|
26
62
|
static defaultOptions = defaultWalkOptions;
|
|
27
63
|
options;
|
|
28
64
|
walker;
|
|
29
65
|
lastProgressTime = 0;
|
|
66
|
+
visitedDirs = new Set();
|
|
30
67
|
constructor(topPath = '.', options = {}) {
|
|
31
68
|
this.topPath = topPath;
|
|
32
69
|
this.options = { ...DiskWalker.defaultOptions, ...options };
|
|
33
70
|
this.topPath = path.resolve(topPath);
|
|
34
|
-
this.walker = new WalkTree(this.topPath, this.options, this.showProgress.bind(this));
|
|
71
|
+
this.walker = new WalkTree(this.topPath, this.options, this.showProgress.bind(this), 0, this.visitedDirs);
|
|
35
72
|
}
|
|
36
73
|
truncatePath(fullPath, maxLength = 64) {
|
|
37
74
|
if (fullPath.length <= maxLength)
|
|
@@ -63,7 +100,11 @@ export class DiskWalker {
|
|
|
63
100
|
if (!this.options.quiet) {
|
|
64
101
|
process.stdout.write('\x1b[2K\r'); // Clear progress line
|
|
65
102
|
}
|
|
66
|
-
console.log(`${this.walker.formatSize()} ${this.
|
|
103
|
+
console.log(`${this.walker.formatSize()} ${this.walker.getDisplayUnit()} ${styleText(['blue'], this.topPath)}`);
|
|
104
|
+
// Show grand totals
|
|
105
|
+
if (!this.options.quiet && !this.options.finding && !this.options.cmd) {
|
|
106
|
+
console.log(`\nTotal: ${this.walker.getTotalDirCount().toLocaleString()} directories, ${this.walker.getTotalFileCount().toLocaleString()} files`);
|
|
107
|
+
}
|
|
67
108
|
}
|
|
68
109
|
catch (err) {
|
|
69
110
|
console.error('Failed:', err.message);
|
|
@@ -75,6 +116,7 @@ class WalkTree {
|
|
|
75
116
|
options;
|
|
76
117
|
progressCallback;
|
|
77
118
|
atDepth;
|
|
119
|
+
visitedDirs;
|
|
78
120
|
length = 0;
|
|
79
121
|
compressedLength = 0;
|
|
80
122
|
fileCount = 0;
|
|
@@ -86,11 +128,12 @@ class WalkTree {
|
|
|
86
128
|
nextTitleUpdate = new Date(0);
|
|
87
129
|
seenErrors = new Set();
|
|
88
130
|
findingRegexes = null;
|
|
89
|
-
constructor(dirPath, options, progressCallback, atDepth = 0) {
|
|
131
|
+
constructor(dirPath, options, progressCallback, atDepth = 0, visitedDirs = new Set()) {
|
|
90
132
|
this.dirPath = dirPath;
|
|
91
133
|
this.options = options;
|
|
92
134
|
this.progressCallback = progressCallback;
|
|
93
135
|
this.atDepth = atDepth;
|
|
136
|
+
this.visitedDirs = visitedDirs;
|
|
94
137
|
// Precompile find patterns into safe RegExp objects to avoid invalid regex errors
|
|
95
138
|
if (this.options.finding) {
|
|
96
139
|
this.findingRegexes = compilePatterns(this.options.finding);
|
|
@@ -100,7 +143,31 @@ class WalkTree {
|
|
|
100
143
|
this.prefix = atDepth.toString().padStart(2, '0') + ' ' + this.prefix;
|
|
101
144
|
}
|
|
102
145
|
}
|
|
146
|
+
async getFileId(filePath) {
|
|
147
|
+
try {
|
|
148
|
+
const stats = await fp.stat(filePath);
|
|
149
|
+
// Use device + inode as unique identifier
|
|
150
|
+
// On Windows, dev and ino are available but may not be as reliable
|
|
151
|
+
// We combine them to create a unique key
|
|
152
|
+
return `${stats.dev}:${stats.ino}`;
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
103
158
|
formatSize() {
|
|
159
|
+
// If under 1MB, show in KB
|
|
160
|
+
if (this.length < 1024 * 1024) {
|
|
161
|
+
const sizeKB = this.length / 1024;
|
|
162
|
+
const formatted = Math.round(sizeKB).toLocaleString();
|
|
163
|
+
if (this.options.showCompressed && this.length !== this.compressedLength) {
|
|
164
|
+
const compressedKB = this.compressedLength / 1024;
|
|
165
|
+
const compressedFormatted = Math.round(compressedKB).toLocaleString();
|
|
166
|
+
return `${formatted}/${compressedFormatted}`;
|
|
167
|
+
}
|
|
168
|
+
return formatted;
|
|
169
|
+
}
|
|
170
|
+
// Otherwise use the configured unit (MB or GB)
|
|
104
171
|
const divisor = this.options.sizeUnit === 'GB' ? (1024 * 1024 * 1024) : (1024 * 1024);
|
|
105
172
|
const size = this.length / divisor;
|
|
106
173
|
// For MB, show whole numbers; for GB, show 2 decimal places
|
|
@@ -113,6 +180,20 @@ class WalkTree {
|
|
|
113
180
|
}
|
|
114
181
|
return formatted;
|
|
115
182
|
}
|
|
183
|
+
getDisplayUnit() {
|
|
184
|
+
// If under 1MB, show KB
|
|
185
|
+
if (this.length < 1024 * 1024) {
|
|
186
|
+
return 'KB';
|
|
187
|
+
}
|
|
188
|
+
// Otherwise use the configured unit
|
|
189
|
+
return this.options.sizeUnit;
|
|
190
|
+
}
|
|
191
|
+
getTotalDirCount() {
|
|
192
|
+
return this.totalDirCount;
|
|
193
|
+
}
|
|
194
|
+
getTotalFileCount() {
|
|
195
|
+
return this.totalFileCount;
|
|
196
|
+
}
|
|
116
197
|
logError(context, err) {
|
|
117
198
|
if (!this.options.verbose &&
|
|
118
199
|
(this.options.quiet || suppressedErrors.some(e => err.message.includes(e)))) {
|
|
@@ -133,6 +214,64 @@ class WalkTree {
|
|
|
133
214
|
return false;
|
|
134
215
|
}
|
|
135
216
|
}
|
|
217
|
+
async getSymlinkInfo(testPath) {
|
|
218
|
+
try {
|
|
219
|
+
const stats = await fp.lstat(testPath);
|
|
220
|
+
// Check if it's a symbolic link (includes junctions on some Node.js versions)
|
|
221
|
+
if (stats.isSymbolicLink()) {
|
|
222
|
+
let target = '';
|
|
223
|
+
try {
|
|
224
|
+
target = await fp.readlink(testPath);
|
|
225
|
+
}
|
|
226
|
+
catch { }
|
|
227
|
+
// On Windows, distinguish between junctions and symlinks
|
|
228
|
+
if (process.platform === 'win32') {
|
|
229
|
+
try {
|
|
230
|
+
const realStats = await fp.stat(testPath);
|
|
231
|
+
// If it's a directory symlink on Windows, it's likely a junction
|
|
232
|
+
return { isLink: true, isJunction: realStats.isDirectory(), target };
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return { isLink: true, isJunction: false, target };
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return { isLink: true, isJunction: false, target };
|
|
239
|
+
}
|
|
240
|
+
// On Windows, also check for junctions/reparse points that might not be detected as symlinks
|
|
241
|
+
if (process.platform === 'win32' && stats.isDirectory()) {
|
|
242
|
+
try {
|
|
243
|
+
// Try to read the link target - if successful, it's a junction/reparse point
|
|
244
|
+
const target = await fp.readlink(testPath);
|
|
245
|
+
if (target) {
|
|
246
|
+
return { isLink: true, isJunction: true, target };
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Not a reparse point/junction
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return { isLink: false, isJunction: false, target: '' };
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return { isLink: false, isJunction: false, target: '' };
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
isSystemDirectory(dirPath) {
|
|
260
|
+
if (process.platform !== 'win32')
|
|
261
|
+
return false;
|
|
262
|
+
const normalized = path.normalize(dirPath).toLowerCase();
|
|
263
|
+
const systemPaths = [
|
|
264
|
+
'\\windows\\',
|
|
265
|
+
'\\program files\\',
|
|
266
|
+
'\\program files (x86)\\',
|
|
267
|
+
'\\programdata\\',
|
|
268
|
+
'\\system volume information',
|
|
269
|
+
'\\$recycle.bin',
|
|
270
|
+
'\\recovery',
|
|
271
|
+
'\\perflogs'
|
|
272
|
+
];
|
|
273
|
+
return systemPaths.some(sysPath => normalized.includes(sysPath));
|
|
274
|
+
}
|
|
136
275
|
async processDirectory() {
|
|
137
276
|
try {
|
|
138
277
|
if (Date.now() > this.nextTitleUpdate.getTime()) {
|
|
@@ -205,9 +344,18 @@ class WalkTree {
|
|
|
205
344
|
}
|
|
206
345
|
async walk() {
|
|
207
346
|
try {
|
|
208
|
-
|
|
209
|
-
|
|
347
|
+
// Check if this directory itself is a symlink - if not following links, don't traverse into it
|
|
348
|
+
const currentIsSymlink = await this.isSymlink(this.dirPath);
|
|
349
|
+
if (currentIsSymlink && !this.options.followLinks)
|
|
210
350
|
return;
|
|
351
|
+
// Check if we've already visited this directory (loop detection)
|
|
352
|
+
const fileId = await this.getFileId(this.dirPath);
|
|
353
|
+
if (fileId) {
|
|
354
|
+
if (this.visitedDirs.has(fileId)) {
|
|
355
|
+
return; // Already visited, skip to prevent loops
|
|
356
|
+
}
|
|
357
|
+
this.visitedDirs.add(fileId);
|
|
358
|
+
}
|
|
211
359
|
this.progressCallback(this, this.dirPath);
|
|
212
360
|
if (this.options.cmd || this.options.finding || this.options.forceAcl) {
|
|
213
361
|
if (this.options.forceAcl) {
|
|
@@ -225,29 +373,123 @@ class WalkTree {
|
|
|
225
373
|
}
|
|
226
374
|
const entries = await fp.readdir(this.dirPath, { withFileTypes: true });
|
|
227
375
|
for (const entry of entries) {
|
|
228
|
-
if (entry.isDirectory()) {
|
|
376
|
+
if (entry.isDirectory() || entry.isSymbolicLink()) {
|
|
229
377
|
const subPath = path.join(this.dirPath, entry.name);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
378
|
+
// Use Dirent's isSymbolicLink() which is reliable on Windows
|
|
379
|
+
const isLink = entry.isSymbolicLink();
|
|
380
|
+
let target = '';
|
|
381
|
+
let linkType = null;
|
|
382
|
+
let isBroken = false;
|
|
383
|
+
let isRevisit = false;
|
|
384
|
+
if (isLink) {
|
|
385
|
+
try {
|
|
386
|
+
target = await fp.readlink(subPath);
|
|
387
|
+
// Get the actual link type (junction vs symlink) - Windows only
|
|
388
|
+
if (process.platform === 'win32') {
|
|
389
|
+
linkType = await getLinkType(subPath);
|
|
390
|
+
}
|
|
391
|
+
// Check if target exists
|
|
392
|
+
try {
|
|
393
|
+
const targetStats = await fp.stat(subPath); // Follow the link
|
|
394
|
+
// Check if we've already visited this target
|
|
395
|
+
const targetId = `${targetStats.dev}:${targetStats.ino}`;
|
|
396
|
+
if (this.visitedDirs.has(targetId)) {
|
|
397
|
+
isRevisit = true;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
catch {
|
|
401
|
+
// Target doesn't exist or can't be accessed
|
|
402
|
+
isBroken = true;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
catch {
|
|
406
|
+
// Can't read link target
|
|
407
|
+
isBroken = true;
|
|
408
|
+
}
|
|
409
|
+
// Verbose logging for link detection
|
|
410
|
+
if (this.options.verbose) {
|
|
411
|
+
const status = isBroken ? ' (BROKEN)' : isRevisit ? ' (REVISIT)' : '';
|
|
412
|
+
const typeStr = linkType === 'junction' ? 'Junction' : linkType === 'symlink' ? 'Symlink' : 'Link';
|
|
413
|
+
console.log(`[DEBUG] Detected ${typeStr}: ${entry.name} -> ${target}${status}`);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
const isSystem = this.isSystemDirectory(subPath);
|
|
417
|
+
let linkSymbol = '';
|
|
418
|
+
if (isLink && !this.options.noTargets) {
|
|
419
|
+
// Show [sym] for symlinks only, junctions don't need prefix
|
|
420
|
+
const linkPrefix = linkType === 'symlink' ? '[sym] ' : '';
|
|
421
|
+
const linkLabel = this.options.showTargets ? `${linkPrefix}${target}` : linkPrefix;
|
|
422
|
+
if (isBroken) {
|
|
423
|
+
// Broken link - link symbol with white on red background, then label
|
|
424
|
+
linkSymbol = ' ' + styleText(['white', 'bgRed'], '🔗') + ' ' + linkLabel;
|
|
425
|
+
}
|
|
426
|
+
else if (isRevisit) {
|
|
427
|
+
// Revisit - link symbol with green background, then label and circular arrow
|
|
428
|
+
linkSymbol = ' ' + styleText(['white', 'bgGreen'], '🔗') + ' ' + linkLabel + ' ' + styleText(['yellow', 'bgBlack'], '↻');
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
// Normal link - link symbol with green background, then label
|
|
432
|
+
linkSymbol = ' ' + styleText(['white', 'bgGreen'], '🔗') + ' ' + linkLabel;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
const systemSymbol = isSystem ? ' ' + styleText(['yellow', 'bgBlack'], '🛡️') : '';
|
|
436
|
+
// If it's a link and we're not following links, show it but don't traverse
|
|
437
|
+
if (isLink && !this.options.followLinks) {
|
|
233
438
|
this.dirCount++;
|
|
234
|
-
this.
|
|
235
|
-
this.
|
|
236
|
-
this.totalFileCount += walker.totalFileCount;
|
|
237
|
-
this.totalDirCount += walker.totalDirCount + 1;
|
|
238
|
-
const divisor = this.options.sizeUnit === 'GB' ? (1024 * 1024 * 1024) : (1024 * 1024);
|
|
239
|
-
const size = walker.length / divisor;
|
|
240
|
-
if (size >= this.options.threshold && this.atDepth < this.options.depth) {
|
|
439
|
+
this.totalDirCount++;
|
|
440
|
+
if (this.atDepth < this.options.depth) {
|
|
241
441
|
if (!this.options.quiet) {
|
|
242
442
|
process.stdout.write('\x1b[2K\r'); // Clear progress line
|
|
243
443
|
}
|
|
244
|
-
console.log(`${this.prefix} ${
|
|
245
|
-
`${
|
|
246
|
-
`${
|
|
444
|
+
console.log(`${this.prefix} ${'0'.padStart(13)} ${this.options.sizeUnit} ` +
|
|
445
|
+
`${'0'.padStart(5)} ` +
|
|
446
|
+
`${'0'.padStart(6)} ${styleText(['blue'], entry.name)}${linkSymbol}${systemSymbol}`);
|
|
247
447
|
}
|
|
248
448
|
}
|
|
249
|
-
|
|
250
|
-
|
|
449
|
+
else if (entry.isDirectory() || isLink) {
|
|
450
|
+
// Traverse directories and links (if followLinks is true, we wouldn't be here if it's a link)
|
|
451
|
+
// For links, check if target was already visited before traversing
|
|
452
|
+
let shouldSkip = false;
|
|
453
|
+
if (isLink && isRevisit) {
|
|
454
|
+
shouldSkip = true; // Already visited this target
|
|
455
|
+
}
|
|
456
|
+
if (!shouldSkip) {
|
|
457
|
+
const walker = new WalkTree(subPath, this.options, this.progressCallback, this.atDepth + 1, this.visitedDirs);
|
|
458
|
+
try {
|
|
459
|
+
await walker.walk();
|
|
460
|
+
this.dirCount++;
|
|
461
|
+
this.length += walker.length;
|
|
462
|
+
this.compressedLength += walker.compressedLength;
|
|
463
|
+
this.totalFileCount += walker.totalFileCount;
|
|
464
|
+
this.totalDirCount += walker.totalDirCount + 1;
|
|
465
|
+
const divisor = this.options.sizeUnit === 'GB' ? (1024 * 1024 * 1024) : (1024 * 1024);
|
|
466
|
+
const size = walker.length / divisor;
|
|
467
|
+
if (size >= this.options.threshold && this.atDepth < this.options.depth) {
|
|
468
|
+
if (!this.options.quiet) {
|
|
469
|
+
process.stdout.write('\x1b[2K\r'); // Clear progress line
|
|
470
|
+
}
|
|
471
|
+
console.log(`${this.prefix} ${walker.formatSize().padStart(13)} ${walker.getDisplayUnit()} ` +
|
|
472
|
+
`${walker.totalDirCount.toString().padStart(5)} ` +
|
|
473
|
+
`${walker.totalFileCount.toString().padStart(6)} ${styleText(['blue'], entry.name)}${linkSymbol}${systemSymbol}`);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
catch (err) {
|
|
477
|
+
this.logError(entry.name, err);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
// Show the revisited link without traversing
|
|
482
|
+
this.dirCount++;
|
|
483
|
+
this.totalDirCount++;
|
|
484
|
+
if (this.atDepth < this.options.depth) {
|
|
485
|
+
if (!this.options.quiet) {
|
|
486
|
+
process.stdout.write('\x1b[2K\r'); // Clear progress line
|
|
487
|
+
}
|
|
488
|
+
console.log(`${this.prefix} ${'0'.padStart(13)} ${this.options.sizeUnit} ` +
|
|
489
|
+
`${'0'.padStart(5)} ` +
|
|
490
|
+
`${'0'.padStart(6)} ${styleText(['blue'], entry.name)}${linkSymbol}${systemSymbol}`);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
251
493
|
}
|
|
252
494
|
}
|
|
253
495
|
}
|
package/diskwalker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diskwalker.js","sourceRoot":"","sources":["diskwalker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diskwalker.js","sourceRoot":"","sources":["diskwalker.ts"],"names":[],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -9,41 +9,43 @@ function showVersion() {
|
|
|
9
9
|
process.exit(0);
|
|
10
10
|
}
|
|
11
11
|
function showUsage() {
|
|
12
|
-
console.log(`tswalk v${version}
|
|
13
|
-
|
|
14
|
-
Usage: tswalk [path] [depth] [options]
|
|
15
|
-
path Directory to analyze (default: current directory)
|
|
16
|
-
depth Maximum depth to show in output (default: 1)
|
|
17
|
-
|
|
18
|
-
Options:
|
|
19
|
-
-d, -depth Set maximum depth to show in output
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
tswalk
|
|
44
|
-
tswalk /path
|
|
45
|
-
tswalk
|
|
46
|
-
tswalk /path -
|
|
12
|
+
console.log(`tswalk v${version}
|
|
13
|
+
|
|
14
|
+
Usage: tswalk [path] [depth] [options]
|
|
15
|
+
path Directory to analyze (default: current directory)
|
|
16
|
+
depth Maximum depth to show in output (default: 1)
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
-d, -depth Set maximum depth to show in output
|
|
20
|
+
-threshold Threshold in MB/GB for showing directories
|
|
21
|
+
-nt Don't show link targets (targets shown by default)
|
|
22
|
+
-l, -links Follow symbolic links and junctions (with loop detection)
|
|
23
|
+
-mb Show sizes in megabytes (default)
|
|
24
|
+
-gb Show sizes in gigabytes
|
|
25
|
+
-c Show compressed sizes (Windows only)
|
|
26
|
+
-r "cmd" Run command in each directory
|
|
27
|
+
-f pattern Find files matching pattern (can use ;-separated patterns)
|
|
28
|
+
-v Verbose output (show all errors including ENOENT/EPERM)
|
|
29
|
+
-q Quiet mode (no progress updates, minimal errors)
|
|
30
|
+
-acl Force ACL operations (Windows only)
|
|
31
|
+
--version Show version number
|
|
32
|
+
|
|
33
|
+
Progress:
|
|
34
|
+
Shows current directory being processed every second in blue.
|
|
35
|
+
Long paths are truncated in progress display.
|
|
36
|
+
|
|
37
|
+
Error Handling:
|
|
38
|
+
Default: Shows significant errors (excluding ENOENT/EPERM)
|
|
39
|
+
-v: Shows all errors including access denied and not found
|
|
40
|
+
-q: Shows only fatal errors
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
tswalk . # Analyze current directory
|
|
44
|
+
tswalk /path 3 # Show 3 levels deep
|
|
45
|
+
tswalk /path -d 3 -gb # Same, but show sizes in GB
|
|
46
|
+
tswalk /path -t 100 -gb # Show dirs > 100GB
|
|
47
|
+
tswalk . -f "*.ts;*.js" # Find TypeScript and JavaScript files
|
|
48
|
+
tswalk /path -v # Show all errors while processing
|
|
47
49
|
`);
|
|
48
50
|
process.exit(0);
|
|
49
51
|
}
|
|
@@ -73,6 +75,16 @@ async function main() {
|
|
|
73
75
|
foundDepth = true;
|
|
74
76
|
break;
|
|
75
77
|
case '-t':
|
|
78
|
+
case '-target':
|
|
79
|
+
options.showTargets = true;
|
|
80
|
+
break;
|
|
81
|
+
case '-nt':
|
|
82
|
+
options.noTargets = true;
|
|
83
|
+
break;
|
|
84
|
+
case '-l':
|
|
85
|
+
case '-links':
|
|
86
|
+
options.followLinks = true;
|
|
87
|
+
break;
|
|
76
88
|
case '-threshold':
|
|
77
89
|
options.threshold = parseInt(args[++i]);
|
|
78
90
|
break;
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,WAAW,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,SAAS,WAAW;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS;IACd,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,58 +1,66 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@bobfrankston/tswalk",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "Fast TypeScript directory tree walker with file search, size analysis, and pattern matching",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"exports": {
|
|
7
|
-
".": {
|
|
8
|
-
"import": "./index.js",
|
|
9
|
-
"types": "./index.d.ts"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
"bin": {
|
|
13
|
-
"tswalk": "./index.js"
|
|
14
|
-
},
|
|
15
|
-
"files": [
|
|
16
|
-
"*.js",
|
|
17
|
-
"*.d.ts",
|
|
18
|
-
"*.js.map",
|
|
19
|
-
"bin/"
|
|
20
|
-
],
|
|
21
|
-
"engines": {
|
|
22
|
-
"node": ">=24.0.0"
|
|
23
|
-
},
|
|
24
|
-
"scripts": {
|
|
25
|
-
"build": "tsc",
|
|
26
|
-
"clean": "rimraf *.js *.d.ts *.js.map bin/*.js",
|
|
27
|
-
"prerelease:local": "git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")",
|
|
28
|
-
"preversion": "npm run build && git add -A",
|
|
29
|
-
"postversion": "git push && git push --tags",
|
|
30
|
-
"release": "npm run prerelease:local && npm version patch && npm publish",
|
|
31
|
-
"release:ps1": "releaseapp.ps1",
|
|
32
|
-
"test": "echo \"Error: no test specified\" && exit 1",
|
|
33
|
-
"installer": "npm run release && npm install -g @bobfrankston/tswalk && wsl npm install -g @bobfrankston/tswalk",
|
|
34
|
-
"dev": "tsc --watch",
|
|
35
|
-
"start": "node index.js"
|
|
36
|
-
},
|
|
37
|
-
"keywords": [
|
|
38
|
-
"typescript",
|
|
39
|
-
"directory",
|
|
40
|
-
"tree",
|
|
41
|
-
"walker",
|
|
42
|
-
"filesystem",
|
|
43
|
-
"disk-usage",
|
|
44
|
-
"file-search"
|
|
45
|
-
],
|
|
46
|
-
"author": "Bob Frankston",
|
|
47
|
-
"license": "ISC",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
},
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@bobfrankston/tswalk",
|
|
3
|
+
"version": "1.1.12",
|
|
4
|
+
"description": "Fast TypeScript directory tree walker with file search, size analysis, and pattern matching",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./index.js",
|
|
9
|
+
"types": "./index.d.ts"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"tswalk": "./index.js"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"*.js",
|
|
17
|
+
"*.d.ts",
|
|
18
|
+
"*.js.map",
|
|
19
|
+
"bin/"
|
|
20
|
+
],
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=24.0.0"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"clean": "rimraf *.js *.d.ts *.js.map bin/*.js",
|
|
27
|
+
"prerelease:local": "git add -A && (git diff-index --quiet HEAD || git commit -m \"Pre-release commit\")",
|
|
28
|
+
"preversion": "npm run build && git add -A",
|
|
29
|
+
"postversion": "git push && git push --tags",
|
|
30
|
+
"release": "npm run prerelease:local && npm version patch && npm publish",
|
|
31
|
+
"release:ps1": "releaseapp.ps1",
|
|
32
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
33
|
+
"installer": "npm run release && npm install -g @bobfrankston/tswalk && wsl npm install -g @bobfrankston/tswalk",
|
|
34
|
+
"dev": "tsc --watch",
|
|
35
|
+
"start": "node index.js"
|
|
36
|
+
},
|
|
37
|
+
"keywords": [
|
|
38
|
+
"typescript",
|
|
39
|
+
"directory",
|
|
40
|
+
"tree",
|
|
41
|
+
"walker",
|
|
42
|
+
"filesystem",
|
|
43
|
+
"disk-usage",
|
|
44
|
+
"file-search"
|
|
45
|
+
],
|
|
46
|
+
"author": "Bob Frankston",
|
|
47
|
+
"license": "ISC",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "git+https://github.com/BobFrankston/tswalk.git"
|
|
51
|
+
},
|
|
52
|
+
"bugs": {
|
|
53
|
+
"url": "https://github.com/BobFrankston/tswalk/issues"
|
|
54
|
+
},
|
|
55
|
+
"homepage": "https://github.com/BobFrankston/tswalk#readme",
|
|
56
|
+
"publishConfig": {
|
|
57
|
+
"access": "public"
|
|
58
|
+
},
|
|
59
|
+
"type": "module",
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"esm": "^3.2.25"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/node": "^24.9.1"
|
|
65
|
+
}
|
|
66
|
+
}
|
package/utils.js
CHANGED
|
@@ -48,7 +48,10 @@ export const defaultWalkOptions = {
|
|
|
48
48
|
finding: null,
|
|
49
49
|
forceAcl: false,
|
|
50
50
|
quiet: false,
|
|
51
|
-
sizeUnit: 'MB'
|
|
51
|
+
sizeUnit: 'MB',
|
|
52
|
+
showTargets: true,
|
|
53
|
+
noTargets: false,
|
|
54
|
+
followLinks: true
|
|
52
55
|
};
|
|
53
56
|
/**
|
|
54
57
|
* Error types to suppress unless verbose mode is enabled
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB;IAC9C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC;YACD,4CAA4C;YAC5C,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClC,SAAS;YACb,CAAC;YAED,kFAAkF;YAClF,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;iBACnD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;iBACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,sEAAsE;YACtE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB;IAC9C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC;YACD,4CAA4C;YAC5C,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClC,SAAS;YACb,CAAC;YAED,kFAAkF;YAClF,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;iBACnD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;iBACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,sEAAsE;YACtE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAoBD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC3C,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,GAAG,EAAE,EAAE;IACP,OAAO,EAAE,KAAK;IACd,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,IAAI;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC"}
|