node-janitor 1.0.1 โ 1.2.0
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 +118 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +119 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/schedule.d.ts +60 -0
- package/dist/commands/schedule.d.ts.map +1 -0
- package/dist/commands/schedule.js +139 -0
- package/dist/commands/schedule.js.map +1 -0
- package/dist/commands/watch.d.ts +57 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +138 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/core/config.d.ts +21 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +103 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/fast-scanner.d.ts +16 -0
- package/dist/core/fast-scanner.d.ts.map +1 -0
- package/dist/core/fast-scanner.js +150 -0
- package/dist/core/fast-scanner.js.map +1 -0
- package/dist/core/scanner.d.ts +6 -0
- package/dist/core/scanner.d.ts.map +1 -1
- package/dist/core/scanner.js +40 -0
- package/dist/core/scanner.js.map +1 -1
- package/dist/tui/live-view.d.ts +13 -0
- package/dist/tui/live-view.d.ts.map +1 -0
- package/dist/tui/live-view.js +243 -0
- package/dist/tui/live-view.js.map +1 -0
- package/dist/utils/git-utils.d.ts +40 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +122 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/dist/utils/i18n.d.ts +60 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +302 -0
- package/dist/utils/i18n.js.map +1 -0
- package/package.json +7 -1
package/README.md
CHANGED
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
- ๐ **Reports** - Detailed analytics
|
|
18
18
|
- โก **Fast Mode** - Native OS commands for speed
|
|
19
19
|
- ๐ **CI/CD Ready** - Silent mode with JSON output
|
|
20
|
+
- โ๏ธ **Config File** - Persistent settings with `.janitorrc`
|
|
21
|
+
- ๐ **Git-aware** - Skip repos with uncommitted changes
|
|
22
|
+
- ๐ **Multi-language** - 8 languages supported
|
|
23
|
+
- ๐ **Watch Mode** - Continuous monitoring
|
|
24
|
+
- ๐
**Scheduled Cleanup** - Cron-style automation
|
|
20
25
|
|
|
21
26
|
## ๐ฆ Installation
|
|
22
27
|
|
|
@@ -47,6 +52,41 @@ node-janitor --older-than 30d
|
|
|
47
52
|
node-janitor --interactive
|
|
48
53
|
```
|
|
49
54
|
|
|
55
|
+
## ๐ฅ๏ธ Interactive TUI Mode (NEW!)
|
|
56
|
+
|
|
57
|
+
Launch a full-screen, keyboard-navigable interface similar to npkill:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Start TUI mode
|
|
61
|
+
node-janitor --live
|
|
62
|
+
|
|
63
|
+
# Or use the tui subcommand
|
|
64
|
+
node-janitor tui --path ~/projects
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Features:**
|
|
68
|
+
- โจ๏ธ **Keyboard Navigation** - Use arrow keys or j/k to navigate
|
|
69
|
+
- โ๏ธ **Multi-select** - Press SPACE to select/deselect folders
|
|
70
|
+
- ๐ **Sort toggle** - Press S to switch between size/age sorting
|
|
71
|
+
- ๐จ **Color-coded** - Green (new), Yellow (medium), Red (old)
|
|
72
|
+
- ๐๏ธ **Quick delete** - Press D to delete selected folders
|
|
73
|
+
- ๐ **Real-time stats** - See total size and selection count
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
77
|
+
โ ๐งน NODE JANITOR - Interactive Mode โ
|
|
78
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
79
|
+
โ ๐ Found: 15 folders | Total: 2.5 GB | Selected: 3 (523 MB) โ
|
|
80
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
81
|
+
โ > โ ~/projects/old-app/node_modules 523 MB 180 days โ
|
|
82
|
+
โ โก ~/projects/test-project/node_modules 312 MB 95 days โ
|
|
83
|
+
โ โ ~/projects/archived/node_modules 245 MB 45 days โ
|
|
84
|
+
โ โก ~/projects/client-work/node_modules 198 MB 30 days โ
|
|
85
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
86
|
+
โ [โ/โ] Navigate [SPACE] Select [A] All [S] Sort [D] Delete โ
|
|
87
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
88
|
+
```
|
|
89
|
+
|
|
50
90
|
## ๐ Usage
|
|
51
91
|
|
|
52
92
|
### Basic Commands
|
|
@@ -151,6 +191,79 @@ node-janitor --json
|
|
|
151
191
|
```bash
|
|
152
192
|
# Exclude specific folders
|
|
153
193
|
node-janitor --exclude "important-project,client-work"
|
|
194
|
+
|
|
195
|
+
# Include only matching patterns (whitelist)
|
|
196
|
+
node-janitor --include "work-*,client-*"
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Git-aware Cleanup
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Skip repos with uncommitted changes
|
|
203
|
+
node-janitor --skip-dirty-git
|
|
204
|
+
|
|
205
|
+
# Only process folders inside git repos
|
|
206
|
+
node-janitor --git-only
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Config File
|
|
210
|
+
|
|
211
|
+
Create `.janitorrc` in your home directory or project:
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"exclude": ["important-project"],
|
|
216
|
+
"defaultOlderThan": "30d",
|
|
217
|
+
"defaultPath": "~/projects",
|
|
218
|
+
"lang": "vi"
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Use custom config:
|
|
223
|
+
```bash
|
|
224
|
+
node-janitor --config ~/.my-janitor-config.json
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Multi-language Support
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Vietnamese
|
|
231
|
+
node-janitor --lang vi
|
|
232
|
+
|
|
233
|
+
# Chinese
|
|
234
|
+
node-janitor --lang zh
|
|
235
|
+
|
|
236
|
+
# Japanese
|
|
237
|
+
node-janitor --lang ja
|
|
238
|
+
|
|
239
|
+
# Available: en, vi, zh, ja, ko, es, fr, de
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Watch Mode
|
|
243
|
+
|
|
244
|
+
Continuously monitor and clean:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Watch with 60s interval
|
|
248
|
+
node-janitor watch --interval 60 --older-than 30d
|
|
249
|
+
|
|
250
|
+
# Auto-clean when found
|
|
251
|
+
node-janitor watch --auto-clean --older-than 60d
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Scheduled Cleanup
|
|
255
|
+
|
|
256
|
+
Cron-style scheduling:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Daily cleanup at midnight
|
|
260
|
+
node-janitor schedule --daily --older-than 30d
|
|
261
|
+
|
|
262
|
+
# Weekly on Sunday
|
|
263
|
+
node-janitor schedule --weekly
|
|
264
|
+
|
|
265
|
+
# Custom cron expression
|
|
266
|
+
node-janitor schedule --cron "0 0 * * *" --older-than 60d
|
|
154
267
|
```
|
|
155
268
|
|
|
156
269
|
## ๐ All Options
|
|
@@ -176,6 +289,11 @@ node-janitor --exclude "important-project,client-work"
|
|
|
176
289
|
| `--silent` | Silent mode (CI/CD) |
|
|
177
290
|
| `--json` | JSON output |
|
|
178
291
|
| `--exclude <patterns>` | Exclude patterns (comma-separated) |
|
|
292
|
+
| `--include <patterns>` | Include only matching patterns |
|
|
293
|
+
| `-c, --config <path>` | Config file path |
|
|
294
|
+
| `--skip-dirty-git` | Skip repos with uncommitted changes |
|
|
295
|
+
| `--git-only` | Only process git repos |
|
|
296
|
+
| `--lang <code>` | Language (en, vi, zh, ja, ko, es, fr, de) |
|
|
179
297
|
|
|
180
298
|
## ๐ฏ Examples
|
|
181
299
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsCpC,wBAAgB,aAAa,IAAI,OAAO,CA4FvC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import { scanNodeModules, calculateTotals, filterByAge } from './core/scanner.js';
|
|
3
|
+
import { scanNodeModules, calculateTotals, filterByAge, filterByGitStatus } from './core/scanner.js';
|
|
4
4
|
import { cleanNodeModules } from './core/cleaner.js';
|
|
5
5
|
import { deepClean } from './core/deep-cleaner.js';
|
|
6
|
+
import { startWatch } from './commands/watch.js';
|
|
7
|
+
import { startSchedule, cronPresets } from './commands/schedule.js';
|
|
8
|
+
import { startLiveView } from './tui/live-view.js';
|
|
9
|
+
import { loadConfig, mergeOptions } from './core/config.js';
|
|
6
10
|
import { createSpinner } from './ui/spinner.js';
|
|
7
11
|
import { createFoldersTable, createSummaryTable, createBreakdownTable } from './ui/table.js';
|
|
8
12
|
import { createProgressBar, updateProgress, stopProgress } from './ui/progress.js';
|
|
9
13
|
import { promptPath, promptAge, promptConfirm, promptViewList, promptDelete, promptAction, promptSelectFolders, } from './ui/prompts.js';
|
|
10
14
|
import logger from './utils/logger.js';
|
|
11
15
|
import { formatBytes, parseDuration } from './utils/formatter.js';
|
|
12
|
-
|
|
16
|
+
import { setLanguage } from './utils/i18n.js';
|
|
17
|
+
const VERSION = '1.2.0';
|
|
13
18
|
// ASCII Art Banner
|
|
14
19
|
const BANNER = chalk.cyan(`
|
|
15
20
|
โโโโ โโโ โโโโโโโ โโโโโโโ โโโโโโโโ โโโ โโโโโโ โโโโ โโโโโโโโโโโโโโโ โโโโโโโ โโโโโโโ
|
|
@@ -45,6 +50,11 @@ export function createProgram() {
|
|
|
45
50
|
.option('--json', 'Output as JSON')
|
|
46
51
|
.option('--exclude <patterns>', 'Exclude patterns (comma-separated)')
|
|
47
52
|
.option('--include <patterns>', 'Include only matching patterns (comma-separated)')
|
|
53
|
+
.option('-c, --config <path>', 'Path to config file')
|
|
54
|
+
.option('--skip-dirty-git', 'Skip folders with uncommitted git changes')
|
|
55
|
+
.option('--git-only', 'Only process folders inside git repositories')
|
|
56
|
+
.option('--lang <language>', 'Language for output (en, vi, zh, ja, ko, es, fr, de)')
|
|
57
|
+
.option('-l, --live', 'Interactive TUI mode with keyboard navigation')
|
|
48
58
|
.action(async (options) => {
|
|
49
59
|
await mainAction(options);
|
|
50
60
|
});
|
|
@@ -59,23 +69,78 @@ export function createProgram() {
|
|
|
59
69
|
.action(async (options) => {
|
|
60
70
|
await reportAction(options);
|
|
61
71
|
});
|
|
72
|
+
// Watch sub-command
|
|
73
|
+
program
|
|
74
|
+
.command('watch')
|
|
75
|
+
.description('๐ Watch mode - continuously monitor and clean')
|
|
76
|
+
.option('-p, --path <path>', 'Directory to watch', process.cwd())
|
|
77
|
+
.option('-d, --depth <number>', 'Maximum depth to scan', parseInt)
|
|
78
|
+
.option('--older-than <duration>', 'Only clean folders older than (e.g., 30d)')
|
|
79
|
+
.option('--interval <seconds>', 'Scan interval in seconds', parseInt)
|
|
80
|
+
.option('--auto-clean', 'Automatically clean found folders')
|
|
81
|
+
.option('--dry-run', 'Preview only, do not delete')
|
|
82
|
+
.action(async (options) => {
|
|
83
|
+
await watchAction(options);
|
|
84
|
+
});
|
|
85
|
+
// Schedule sub-command
|
|
86
|
+
program
|
|
87
|
+
.command('schedule')
|
|
88
|
+
.description('๐
Scheduled cleanup with cron expressions')
|
|
89
|
+
.option('-p, --path <path>', 'Directory to clean', process.cwd())
|
|
90
|
+
.option('-d, --depth <number>', 'Maximum depth to scan', parseInt)
|
|
91
|
+
.option('--cron <expression>', 'Cron expression (e.g., "0 0 * * *" for daily)')
|
|
92
|
+
.option('--daily', 'Run daily at midnight')
|
|
93
|
+
.option('--weekly', 'Run weekly on Sunday')
|
|
94
|
+
.option('--monthly', 'Run monthly on 1st')
|
|
95
|
+
.option('--older-than <duration>', 'Only clean folders older than (e.g., 30d)')
|
|
96
|
+
.option('--dry-run', 'Preview only, do not delete')
|
|
97
|
+
.action(async (options) => {
|
|
98
|
+
await scheduleAction(options);
|
|
99
|
+
});
|
|
100
|
+
// TUI sub-command
|
|
101
|
+
program
|
|
102
|
+
.command('tui')
|
|
103
|
+
.description('๐ฅ๏ธ Interactive TUI mode with keyboard navigation')
|
|
104
|
+
.option('-p, --path <path>', 'Directory to scan', process.cwd())
|
|
105
|
+
.option('-d, --depth <number>', 'Maximum depth to scan', parseInt)
|
|
106
|
+
.action(async (options) => {
|
|
107
|
+
await startLiveView({
|
|
108
|
+
path: options.path || process.cwd(),
|
|
109
|
+
depth: options.depth,
|
|
110
|
+
});
|
|
111
|
+
});
|
|
62
112
|
return program;
|
|
63
113
|
}
|
|
64
114
|
/**
|
|
65
115
|
* Main action handler
|
|
66
116
|
*/
|
|
67
117
|
async function mainAction(options) {
|
|
118
|
+
// Load config file
|
|
119
|
+
const config = await loadConfig(options.config);
|
|
120
|
+
const mergedOptions = mergeOptions(options, config);
|
|
121
|
+
// Set language
|
|
122
|
+
if (mergedOptions.lang) {
|
|
123
|
+
setLanguage(mergedOptions.lang);
|
|
124
|
+
}
|
|
68
125
|
// Configure logger
|
|
69
126
|
logger.configure({
|
|
70
|
-
verbose:
|
|
71
|
-
debug:
|
|
72
|
-
silent:
|
|
127
|
+
verbose: mergedOptions.verbose,
|
|
128
|
+
debug: mergedOptions.debug,
|
|
129
|
+
silent: mergedOptions.silent,
|
|
73
130
|
});
|
|
74
131
|
// Interactive mode
|
|
75
132
|
if (options.interactive) {
|
|
76
133
|
await interactiveMode();
|
|
77
134
|
return;
|
|
78
135
|
}
|
|
136
|
+
// Live TUI mode
|
|
137
|
+
if (options.live) {
|
|
138
|
+
await startLiveView({
|
|
139
|
+
path: options.path || process.cwd(),
|
|
140
|
+
depth: options.depth,
|
|
141
|
+
});
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
79
144
|
// Show banner (unless silent/json)
|
|
80
145
|
if (!options.silent && !options.json) {
|
|
81
146
|
console.log(BANNER);
|
|
@@ -112,10 +177,14 @@ async function mainAction(options) {
|
|
|
112
177
|
}
|
|
113
178
|
// Apply age filter for display
|
|
114
179
|
let displayFolders = folders;
|
|
115
|
-
if (
|
|
116
|
-
const days = parseDuration(
|
|
180
|
+
if (mergedOptions.olderThan) {
|
|
181
|
+
const days = parseDuration(mergedOptions.olderThan);
|
|
117
182
|
displayFolders = filterByAge(folders, days);
|
|
118
183
|
}
|
|
184
|
+
// Apply git filters
|
|
185
|
+
if (mergedOptions.skipDirtyGit || mergedOptions.gitOnly) {
|
|
186
|
+
displayFolders = filterByGitStatus(displayFolders, mergedOptions.skipDirtyGit, mergedOptions.gitOnly);
|
|
187
|
+
}
|
|
119
188
|
// JSON output
|
|
120
189
|
if (options.json) {
|
|
121
190
|
const totals = calculateTotals(displayFolders);
|
|
@@ -339,4 +408,47 @@ async function reportAction(options) {
|
|
|
339
408
|
console.log(chalk.yellow(` โ Run ${chalk.cyan('node-janitor --deep-clean')} to save ~40% more space`));
|
|
340
409
|
}
|
|
341
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* Watch action handler
|
|
413
|
+
*/
|
|
414
|
+
async function watchAction(options) {
|
|
415
|
+
const intervalSeconds = options.interval || 60;
|
|
416
|
+
await startWatch({
|
|
417
|
+
path: options.path || process.cwd(),
|
|
418
|
+
depth: options.depth,
|
|
419
|
+
olderThan: options.olderThan,
|
|
420
|
+
dryRun: options.dryRun,
|
|
421
|
+
interval: intervalSeconds * 1000,
|
|
422
|
+
onClean: options.autoClean,
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Schedule action handler
|
|
427
|
+
*/
|
|
428
|
+
async function scheduleAction(options) {
|
|
429
|
+
// Determine cron expression from presets or custom
|
|
430
|
+
let cronExpression = options.cron;
|
|
431
|
+
if (!cronExpression) {
|
|
432
|
+
if (options.daily) {
|
|
433
|
+
cronExpression = cronPresets.daily;
|
|
434
|
+
}
|
|
435
|
+
else if (options.weekly) {
|
|
436
|
+
cronExpression = cronPresets.weekly;
|
|
437
|
+
}
|
|
438
|
+
else if (options.monthly) {
|
|
439
|
+
cronExpression = cronPresets.monthly;
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
// Default to daily
|
|
443
|
+
cronExpression = cronPresets.daily;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
startSchedule({
|
|
447
|
+
path: options.path || process.cwd(),
|
|
448
|
+
depth: options.depth,
|
|
449
|
+
cron: cronExpression,
|
|
450
|
+
olderThan: options.olderThan,
|
|
451
|
+
dryRun: options.dryRun,
|
|
452
|
+
});
|
|
453
|
+
}
|
|
342
454
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export interface ScheduleOptions {
|
|
2
|
+
path: string;
|
|
3
|
+
cron: string;
|
|
4
|
+
olderThan?: string;
|
|
5
|
+
dryRun?: boolean;
|
|
6
|
+
depth?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ScheduleStats {
|
|
9
|
+
lastRun: Date | null;
|
|
10
|
+
totalRuns: number;
|
|
11
|
+
totalCleaned: number;
|
|
12
|
+
totalFreed: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create initial stats object
|
|
16
|
+
*/
|
|
17
|
+
export declare function createInitialStats(): ScheduleStats;
|
|
18
|
+
/**
|
|
19
|
+
* Parse olderThan option to days
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseOlderThanDays(olderThan?: string): number | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Start a scheduled cleanup job
|
|
24
|
+
*/
|
|
25
|
+
export declare function startSchedule(options: ScheduleOptions): void;
|
|
26
|
+
/**
|
|
27
|
+
* Run the scheduled cleanup task (exported for testing)
|
|
28
|
+
*/
|
|
29
|
+
export declare function runScheduledCleanup(options: ScheduleOptions, olderThanDays: number | undefined, stats: ScheduleStats): Promise<{
|
|
30
|
+
cleaned: number;
|
|
31
|
+
freed: number;
|
|
32
|
+
errors: number;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Run cleanup once (for manual/immediate trigger)
|
|
36
|
+
*/
|
|
37
|
+
export declare function runOnce(options: Omit<ScheduleOptions, 'cron'>): Promise<void>;
|
|
38
|
+
export declare const cronPresets: {
|
|
39
|
+
daily: string;
|
|
40
|
+
weekly: string;
|
|
41
|
+
monthly: string;
|
|
42
|
+
hourly: string;
|
|
43
|
+
every6hours: string;
|
|
44
|
+
};
|
|
45
|
+
declare const _default: {
|
|
46
|
+
startSchedule: typeof startSchedule;
|
|
47
|
+
runOnce: typeof runOnce;
|
|
48
|
+
runScheduledCleanup: typeof runScheduledCleanup;
|
|
49
|
+
createInitialStats: typeof createInitialStats;
|
|
50
|
+
parseOlderThanDays: typeof parseOlderThanDays;
|
|
51
|
+
cronPresets: {
|
|
52
|
+
daily: string;
|
|
53
|
+
weekly: string;
|
|
54
|
+
monthly: string;
|
|
55
|
+
hourly: string;
|
|
56
|
+
every6hours: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export default _default;
|
|
60
|
+
//# sourceMappingURL=schedule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,CAOlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CA0C5D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyD7D;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF;AAGD,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;;;;;;;;;;;;;;;AAEF,wBAOE"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { CronJob } from 'cron';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { scanNodeModules, calculateTotals, filterByAge } from '../core/scanner.js';
|
|
4
|
+
import { cleanNodeModules } from '../core/cleaner.js';
|
|
5
|
+
import { formatBytes, parseDuration } from '../utils/formatter.js';
|
|
6
|
+
import logger from '../utils/logger.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create initial stats object
|
|
9
|
+
*/
|
|
10
|
+
export function createInitialStats() {
|
|
11
|
+
return {
|
|
12
|
+
lastRun: null,
|
|
13
|
+
totalRuns: 0,
|
|
14
|
+
totalCleaned: 0,
|
|
15
|
+
totalFreed: 0,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse olderThan option to days
|
|
20
|
+
*/
|
|
21
|
+
export function parseOlderThanDays(olderThan) {
|
|
22
|
+
return olderThan ? parseDuration(olderThan) : undefined;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Start a scheduled cleanup job
|
|
26
|
+
*/
|
|
27
|
+
export function startSchedule(options) {
|
|
28
|
+
const stats = createInitialStats();
|
|
29
|
+
const olderThanDays = parseOlderThanDays(options.olderThan);
|
|
30
|
+
console.log(chalk.cyan('๐
Scheduled Cleanup Started'));
|
|
31
|
+
console.log(chalk.gray(`Path: ${options.path}`));
|
|
32
|
+
console.log(chalk.gray(`Schedule: ${options.cron}`));
|
|
33
|
+
if (olderThanDays) {
|
|
34
|
+
console.log(chalk.gray(`Age filter: >${olderThanDays} days`));
|
|
35
|
+
}
|
|
36
|
+
if (options.dryRun) {
|
|
37
|
+
console.log(chalk.yellow('โ ๏ธ Dry run mode enabled'));
|
|
38
|
+
}
|
|
39
|
+
console.log(chalk.gray('Press Ctrl+C to stop\n'));
|
|
40
|
+
// Create cron job
|
|
41
|
+
const job = new CronJob(options.cron, async () => {
|
|
42
|
+
await runScheduledCleanup(options, olderThanDays, stats);
|
|
43
|
+
}, null, // onComplete
|
|
44
|
+
true, // start now
|
|
45
|
+
undefined, // timezone
|
|
46
|
+
null, // context
|
|
47
|
+
false // runOnInit
|
|
48
|
+
);
|
|
49
|
+
// Show next run time
|
|
50
|
+
const nextRun = job.nextDate();
|
|
51
|
+
console.log(chalk.gray(`Next run: ${nextRun.toLocaleString()}`));
|
|
52
|
+
// Handle graceful shutdown
|
|
53
|
+
process.on('SIGINT', () => {
|
|
54
|
+
job.stop();
|
|
55
|
+
console.log();
|
|
56
|
+
logger.success('Scheduled cleanup stopped');
|
|
57
|
+
console.log(chalk.gray(`Total runs: ${stats.totalRuns}`));
|
|
58
|
+
console.log(chalk.gray(`Total cleaned: ${stats.totalCleaned} folders`));
|
|
59
|
+
console.log(chalk.gray(`Total freed: ${formatBytes(stats.totalFreed)}`));
|
|
60
|
+
process.exit(0);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Run the scheduled cleanup task (exported for testing)
|
|
65
|
+
*/
|
|
66
|
+
export async function runScheduledCleanup(options, olderThanDays, stats) {
|
|
67
|
+
const timestamp = new Date().toLocaleString();
|
|
68
|
+
console.log(chalk.cyan(`\n[${timestamp}] Running scheduled cleanup...`));
|
|
69
|
+
try {
|
|
70
|
+
let folders = await scanNodeModules({
|
|
71
|
+
path: options.path,
|
|
72
|
+
depth: options.depth,
|
|
73
|
+
quick: false,
|
|
74
|
+
});
|
|
75
|
+
// Apply age filter
|
|
76
|
+
if (olderThanDays !== undefined) {
|
|
77
|
+
folders = filterByAge(folders, olderThanDays);
|
|
78
|
+
}
|
|
79
|
+
stats.lastRun = new Date();
|
|
80
|
+
stats.totalRuns++;
|
|
81
|
+
if (folders.length === 0) {
|
|
82
|
+
console.log(chalk.green('โ No folders to clean'));
|
|
83
|
+
return { cleaned: 0, freed: 0, errors: 0 };
|
|
84
|
+
}
|
|
85
|
+
const totals = calculateTotals(folders);
|
|
86
|
+
console.log(chalk.yellow(`Found ${folders.length} folders (${formatBytes(totals.totalSize)})`));
|
|
87
|
+
if (options.dryRun) {
|
|
88
|
+
console.log(chalk.gray('Dry run - no files deleted'));
|
|
89
|
+
folders.slice(0, 5).forEach(f => {
|
|
90
|
+
console.log(chalk.gray(` โ ${f.projectPath} (${f.ageDays}d)`));
|
|
91
|
+
});
|
|
92
|
+
return { cleaned: 0, freed: 0, errors: 0 };
|
|
93
|
+
}
|
|
94
|
+
// Perform cleanup
|
|
95
|
+
const result = await cleanNodeModules(folders, { fast: true });
|
|
96
|
+
stats.totalCleaned += result.deletedCount;
|
|
97
|
+
stats.totalFreed += result.freedBytes;
|
|
98
|
+
console.log(chalk.green(`โ Cleaned ${result.deletedCount} folders`));
|
|
99
|
+
console.log(chalk.green(`โ Freed ${formatBytes(result.freedBytes)}`));
|
|
100
|
+
if (result.errors.length > 0) {
|
|
101
|
+
console.log(chalk.red(`โ ${result.errors.length} errors`));
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
cleaned: result.deletedCount,
|
|
105
|
+
freed: result.freedBytes,
|
|
106
|
+
errors: result.errors.length,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.log(chalk.red('โ Cleanup failed'));
|
|
111
|
+
logger.debug(error instanceof Error ? error.message : String(error));
|
|
112
|
+
return { cleaned: 0, freed: 0, errors: 1 };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Run cleanup once (for manual/immediate trigger)
|
|
117
|
+
*/
|
|
118
|
+
export async function runOnce(options) {
|
|
119
|
+
const stats = createInitialStats();
|
|
120
|
+
const olderThanDays = parseOlderThanDays(options.olderThan);
|
|
121
|
+
await runScheduledCleanup({ ...options, cron: '' }, olderThanDays, stats);
|
|
122
|
+
}
|
|
123
|
+
// Common cron presets
|
|
124
|
+
export const cronPresets = {
|
|
125
|
+
daily: '0 0 * * *', // Every day at midnight
|
|
126
|
+
weekly: '0 0 * * 0', // Every Sunday at midnight
|
|
127
|
+
monthly: '0 0 1 * *', // First day of month at midnight
|
|
128
|
+
hourly: '0 * * * *', // Every hour
|
|
129
|
+
every6hours: '0 */6 * * *', // Every 6 hours
|
|
130
|
+
};
|
|
131
|
+
export default {
|
|
132
|
+
startSchedule,
|
|
133
|
+
runOnce,
|
|
134
|
+
runScheduledCleanup,
|
|
135
|
+
createInitialStats,
|
|
136
|
+
parseOlderThanDays,
|
|
137
|
+
cronPresets,
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":"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"}
|