pruny 1.30.0 → 1.32.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/dist/index.js +33 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -16196,6 +16196,7 @@ program2.command("init").description("Create a default pruny.config.json file").
|
|
|
16196
16196
|
});
|
|
16197
16197
|
program2.action(async (options) => {
|
|
16198
16198
|
const startTime = Date.now();
|
|
16199
|
+
const isNonInteractive = !process.stdin.isTTY || !!process.env.CI;
|
|
16199
16200
|
try {
|
|
16200
16201
|
const baseConfig = loadConfig({
|
|
16201
16202
|
dir: options.dir,
|
|
@@ -16256,7 +16257,7 @@ program2.action(async (options) => {
|
|
|
16256
16257
|
appsToScan.push(...availableApps.filter((app) => !ignoredApps.includes(app)));
|
|
16257
16258
|
} else if (options.folder) {
|
|
16258
16259
|
appsToScan.push(...availableApps);
|
|
16259
|
-
} else if (!options.ignoreApps && !options.filter && !options.json) {
|
|
16260
|
+
} else if (!isNonInteractive && !options.ignoreApps && !options.filter && !options.json) {
|
|
16260
16261
|
const response = await import_prompts.default({
|
|
16261
16262
|
type: "select",
|
|
16262
16263
|
name: "selected",
|
|
@@ -16349,6 +16350,10 @@ program2.action(async (options) => {
|
|
|
16349
16350
|
if (issues > 0) {
|
|
16350
16351
|
process.exit(1);
|
|
16351
16352
|
}
|
|
16353
|
+
} else if (isNonInteractive) {
|
|
16354
|
+
if (hasUnusedItems(result)) {
|
|
16355
|
+
printDetailedReport(result);
|
|
16356
|
+
}
|
|
16352
16357
|
} else if (hasUnusedItems(result)) {
|
|
16353
16358
|
if (options.verbose) {
|
|
16354
16359
|
printDetailedReport(result);
|
|
@@ -16384,7 +16389,7 @@ program2.action(async (options) => {
|
|
|
16384
16389
|
}
|
|
16385
16390
|
}
|
|
16386
16391
|
}
|
|
16387
|
-
if (!isMonorepo || !requestedBack && appsToScan.length > 0 || options.json || options.filter || options.all) {
|
|
16392
|
+
if (!isMonorepo || !requestedBack && appsToScan.length > 0 || options.json || options.filter || options.all || isNonInteractive) {
|
|
16388
16393
|
break;
|
|
16389
16394
|
}
|
|
16390
16395
|
}
|
|
@@ -16475,6 +16480,17 @@ function printDetailedReport(result) {
|
|
|
16475
16480
|
}
|
|
16476
16481
|
console.log("");
|
|
16477
16482
|
}
|
|
16483
|
+
if (result.missingAssets && result.missingAssets.total > 0) {
|
|
16484
|
+
console.log(source_default.yellow.bold(`⚠️ Missing Assets (Broken Links):
|
|
16485
|
+
`));
|
|
16486
|
+
for (const asset of result.missingAssets.assets) {
|
|
16487
|
+
console.log(source_default.red(` ${asset.path}`));
|
|
16488
|
+
for (const ref of asset.references) {
|
|
16489
|
+
console.log(source_default.dim(` → Referenced in: ${ref}`));
|
|
16490
|
+
}
|
|
16491
|
+
}
|
|
16492
|
+
console.log("");
|
|
16493
|
+
}
|
|
16478
16494
|
if (result.unusedServices && result.unusedServices.methods.length > 0) {
|
|
16479
16495
|
console.log(source_default.red.bold(`\uD83D\uDEE0️ Unused Service Methods:
|
|
16480
16496
|
`));
|
|
@@ -16496,10 +16512,11 @@ function countIssues(result) {
|
|
|
16496
16512
|
const unusedRoutes = result.routes.filter((r) => !r.used).length;
|
|
16497
16513
|
const partialRoutes = result.routes.filter((r) => r.used && r.unusedMethods.length > 0).length;
|
|
16498
16514
|
const unusedAssets = result.publicAssets ? result.publicAssets.unused : 0;
|
|
16515
|
+
const missingAssets = result.missingAssets ? result.missingAssets.total : 0;
|
|
16499
16516
|
const unusedFiles = result.unusedFiles ? result.unusedFiles.unused : 0;
|
|
16500
16517
|
const unusedExports = result.unusedExports ? result.unusedExports.unused : 0;
|
|
16501
16518
|
const unusedServices = result.unusedServices ? result.unusedServices.total : 0;
|
|
16502
|
-
return unusedRoutes + partialRoutes + unusedAssets + unusedFiles + unusedExports + unusedServices;
|
|
16519
|
+
return unusedRoutes + partialRoutes + unusedAssets + missingAssets + unusedFiles + unusedExports + unusedServices;
|
|
16503
16520
|
}
|
|
16504
16521
|
async function handleFixes(result, config, options, showBack) {
|
|
16505
16522
|
const gitRoot = findGitRoot(config.dir);
|
|
@@ -17102,6 +17119,19 @@ function printSummaryTable(result, context) {
|
|
|
17102
17119
|
}
|
|
17103
17120
|
}
|
|
17104
17121
|
printTable(summary);
|
|
17122
|
+
if (result.missingAssets && result.missingAssets.total > 0) {
|
|
17123
|
+
console.log(source_default.yellow.bold(`
|
|
17124
|
+
⚠ Missing Assets (Broken Links):
|
|
17125
|
+
`));
|
|
17126
|
+
for (const asset of result.missingAssets.assets) {
|
|
17127
|
+
console.log(source_default.red(` ✗ ${asset.path}`));
|
|
17128
|
+
for (const ref of asset.references) {
|
|
17129
|
+
console.log(source_default.dim(` → Referenced in: ${ref}`));
|
|
17130
|
+
}
|
|
17131
|
+
}
|
|
17132
|
+
console.log(source_default.yellow(`
|
|
17133
|
+
These files are referenced in code but don't exist. Update the links or create the files.`));
|
|
17134
|
+
}
|
|
17105
17135
|
}
|
|
17106
17136
|
function printConsolidatedTable(allResults) {
|
|
17107
17137
|
console.log(source_default.bold(`\uD83D\uDCCA Monorepo Summary
|