pruny 1.1.23 → 1.1.26
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/dist/index.js +56 -54
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7651,7 +7651,7 @@ var API_METHOD_PATTERNS = [
|
|
|
7651
7651
|
{ regex: /fetch\s*\(\s*['"`]\/api\/([^'"`\s)]+)['"`]/g, method: undefined },
|
|
7652
7652
|
{ regex: /fetch\s*\(\s*`\/api\/([^`\s)]+)`/g, method: undefined },
|
|
7653
7653
|
{ regex: /['"`]\/api\/([^'"`\s]+)['"`]/g, method: undefined },
|
|
7654
|
-
{ regex: /['"`](?:https?:\/\/[
|
|
7654
|
+
{ regex: /['"`](?:https?:\/\/[^/]+)?\/api\/([^'"`\s]+)['"`]/g, method: undefined }
|
|
7655
7655
|
];
|
|
7656
7656
|
function extractApiReferences(content) {
|
|
7657
7657
|
const matches = [];
|
|
@@ -9531,79 +9531,84 @@ Config:`));
|
|
|
9531
9531
|
console.log(JSON.stringify(result, null, 2));
|
|
9532
9532
|
return;
|
|
9533
9533
|
}
|
|
9534
|
-
|
|
9534
|
+
const partiallyUnusedRoutes = result.routes.filter((r) => r.used && r.unusedMethods.length > 0);
|
|
9535
|
+
if (partiallyUnusedRoutes.length > 0) {
|
|
9536
|
+
console.log(source_default.yellow.bold(`⚠️ Partially Unused API Routes:
|
|
9535
9537
|
`));
|
|
9536
|
-
|
|
9537
|
-
|
|
9538
|
-
|
|
9539
|
-
|
|
9540
|
-
|
|
9541
|
-
console.
|
|
9542
|
-
console.log(source_default.bold("\uD83D\uDDBC️ Public Assets"));
|
|
9543
|
-
console.log(` Total assets: ${result.publicAssets.total}`);
|
|
9544
|
-
console.log(source_default.green(` Used assets: ${result.publicAssets.used}`));
|
|
9545
|
-
console.log(source_default.red(` Unused assets: ${result.publicAssets.unused}`));
|
|
9546
|
-
}
|
|
9547
|
-
if (result.unusedFiles) {
|
|
9538
|
+
const tableData = partiallyUnusedRoutes.map((r) => ({
|
|
9539
|
+
Route: r.path,
|
|
9540
|
+
"Unused Methods": r.unusedMethods.join(", "),
|
|
9541
|
+
File: r.filePath
|
|
9542
|
+
}));
|
|
9543
|
+
console.table(tableData);
|
|
9548
9544
|
console.log("");
|
|
9549
|
-
console.log(source_default.bold("\uD83D\uDCC4 Source Files"));
|
|
9550
|
-
console.log(source_default.red(` Unused files: ${result.unusedFiles.total}`));
|
|
9551
9545
|
}
|
|
9552
|
-
console.log("");
|
|
9553
9546
|
const unusedRoutes = result.routes.filter((r) => !r.used);
|
|
9554
9547
|
if (unusedRoutes.length > 0) {
|
|
9555
9548
|
console.log(source_default.red.bold(`❌ Unused API Routes (Fully Unused):
|
|
9556
9549
|
`));
|
|
9557
|
-
|
|
9558
|
-
|
|
9559
|
-
|
|
9560
|
-
|
|
9561
|
-
}
|
|
9562
|
-
console.
|
|
9563
|
-
}
|
|
9564
|
-
const partiallyUnusedRoutes = result.routes.filter((r) => r.used && r.unusedMethods.length > 0);
|
|
9565
|
-
if (partiallyUnusedRoutes.length > 0) {
|
|
9566
|
-
console.log(source_default.yellow.bold(`⚠️ Partially Unused API Routes:
|
|
9567
|
-
`));
|
|
9568
|
-
for (const route of partiallyUnusedRoutes) {
|
|
9569
|
-
console.log(source_default.yellow(` ${route.path}`));
|
|
9570
|
-
console.log(source_default.red(` ❌ Unused: ${route.unusedMethods.join(", ")}`));
|
|
9571
|
-
console.log(source_default.dim(` → ${route.filePath}`));
|
|
9572
|
-
}
|
|
9550
|
+
const tableData = unusedRoutes.map((r) => ({
|
|
9551
|
+
Route: r.path,
|
|
9552
|
+
Methods: r.methods.join(", "),
|
|
9553
|
+
File: r.filePath
|
|
9554
|
+
}));
|
|
9555
|
+
console.table(tableData);
|
|
9573
9556
|
console.log("");
|
|
9574
9557
|
}
|
|
9575
|
-
if (unusedRoutes.length === 0 && partiallyUnusedRoutes.length === 0) {
|
|
9576
|
-
console.log(source_default.green(`✅ All API routes and methods are used!
|
|
9577
|
-
`));
|
|
9578
|
-
}
|
|
9579
9558
|
if (result.publicAssets) {
|
|
9580
9559
|
const unusedAssets = result.publicAssets.assets.filter((a) => !a.used);
|
|
9581
9560
|
if (unusedAssets.length > 0) {
|
|
9582
|
-
console.log(source_default.red.bold(
|
|
9561
|
+
console.log(source_default.red.bold(`\uD83D\uDDBC️ Unused Public Assets:
|
|
9583
9562
|
`));
|
|
9584
|
-
|
|
9585
|
-
|
|
9586
|
-
|
|
9587
|
-
}
|
|
9563
|
+
const tableData = unusedAssets.map((a) => ({
|
|
9564
|
+
Asset: a.relativePath,
|
|
9565
|
+
Path: a.path.replace(process.cwd(), ".")
|
|
9566
|
+
}));
|
|
9567
|
+
console.table(tableData);
|
|
9588
9568
|
console.log("");
|
|
9589
|
-
} else if (result.publicAssets.total > 0) {
|
|
9590
|
-
console.log(source_default.green(`✅ All public assets are used!
|
|
9591
|
-
`));
|
|
9592
9569
|
}
|
|
9593
9570
|
}
|
|
9594
9571
|
if (result.unusedFiles && result.unusedFiles.files.length > 0) {
|
|
9595
|
-
console.log(source_default.red.bold(
|
|
9572
|
+
console.log(source_default.red.bold(`\uD83D\uDCC4 Unused Source Files:
|
|
9596
9573
|
`));
|
|
9597
|
-
|
|
9598
|
-
|
|
9599
|
-
|
|
9600
|
-
}
|
|
9574
|
+
const tableData = result.unusedFiles.files.map((f) => ({
|
|
9575
|
+
File: f.path,
|
|
9576
|
+
Size: (f.size / 1024).toFixed(1) + " KB"
|
|
9577
|
+
}));
|
|
9578
|
+
console.table(tableData);
|
|
9601
9579
|
console.log("");
|
|
9602
9580
|
}
|
|
9581
|
+
if (unusedRoutes.length === 0 && partiallyUnusedRoutes.length === 0 && (!result.publicAssets || result.publicAssets.unused === 0)) {
|
|
9582
|
+
console.log(source_default.green(`✅ Everything is used! Clean as a whistle.
|
|
9583
|
+
`));
|
|
9584
|
+
}
|
|
9585
|
+
console.log(source_default.bold(`\uD83D\uDCCA Summary Report
|
|
9586
|
+
`));
|
|
9587
|
+
const summary = [
|
|
9588
|
+
{ Category: "API Routes", Total: result.total, Used: result.used, Unused: result.unused }
|
|
9589
|
+
];
|
|
9590
|
+
if (result.publicAssets) {
|
|
9591
|
+
summary.push({
|
|
9592
|
+
Category: "Public Assets",
|
|
9593
|
+
Total: result.publicAssets.total,
|
|
9594
|
+
Used: result.publicAssets.used,
|
|
9595
|
+
Unused: result.publicAssets.unused
|
|
9596
|
+
});
|
|
9597
|
+
}
|
|
9598
|
+
if (result.unusedFiles) {
|
|
9599
|
+
summary.push({
|
|
9600
|
+
Category: "Source Files",
|
|
9601
|
+
Total: "-",
|
|
9602
|
+
Used: "-",
|
|
9603
|
+
Unused: result.unusedFiles.total
|
|
9604
|
+
});
|
|
9605
|
+
}
|
|
9606
|
+
console.table(summary);
|
|
9607
|
+
console.log("");
|
|
9603
9608
|
if (options.verbose) {
|
|
9604
9609
|
const used = result.routes.filter((r) => r.used);
|
|
9605
9610
|
if (used.length > 0) {
|
|
9606
|
-
console.log(source_default.green.bold(`✅ Used routes:
|
|
9611
|
+
console.log(source_default.green.bold(`✅ Used routes (References):
|
|
9607
9612
|
`));
|
|
9608
9613
|
for (const route of used) {
|
|
9609
9614
|
console.log(source_default.green(` ${route.path}`));
|
|
@@ -9634,9 +9639,6 @@ Config:`));
|
|
|
9634
9639
|
}
|
|
9635
9640
|
console.log(source_default.green(`
|
|
9636
9641
|
✅ Deleted ${unusedRoutes.length} unused route(s).
|
|
9637
|
-
`));
|
|
9638
|
-
} else {
|
|
9639
|
-
console.log(source_default.yellow(`No unused routes to delete.
|
|
9640
9642
|
`));
|
|
9641
9643
|
}
|
|
9642
9644
|
} else if (unusedRoutes.length > 0) {
|