feat(tsbuild): Improve task logging and update dependencies

This commit is contained in:
2025-05-21 13:38:21 +00:00
parent f220a11caa
commit 050e41cdf9
8 changed files with 4218 additions and 1335 deletions

View File

@@ -41,6 +41,7 @@ export class TsBuild {
private fileNames: string[] = [];
private options: plugins.typescript.CompilerOptions;
private argvArg?: any;
private taskInfo?: any;
/**
* Create a new TsBuild instance
@@ -48,10 +49,12 @@ export class TsBuild {
constructor(
fileNames: string[] = [],
customOptions: CompilerOptions = {},
argvArg?: any
argvArg?: any,
taskInfo?: any
) {
this.fileNames = fileNames;
this.argvArg = argvArg;
this.taskInfo = taskInfo;
this.options = this.mergeCompilerOptions(customOptions, argvArg);
}
@@ -320,7 +323,17 @@ export class TsBuild {
await plugins.smartdelay.delayFor(5000);
}
console.log(`🔨 Compiling ${this.fileNames.length} files...`);
// Enhanced logging with task info
const startTime = Date.now();
if (this.taskInfo) {
const { taskNumber, totalTasks, sourcePattern, destDir, fileCount } = this.taskInfo;
const relativeDestDir = destDir.replace(process.cwd(), '').replace(/^\//, '');
console.log(`\n🔨 [${taskNumber}/${totalTasks}] Compiling ${fileCount} file${fileCount !== 1 ? 's' : ''} from ${sourcePattern}`);
console.log(` 📁 Output: ${relativeDestDir}`);
} else {
console.log(`🔨 Compiling ${this.fileNames.length} files...`);
}
const done = plugins.smartpromise.defer<{ emittedFiles: any[], errorSummary: IErrorSummary }>();
const program = this.createProgram();
@@ -352,7 +365,15 @@ export class TsBuild {
const exitCode = emitResult.emitSkipped ? 1 : 0;
if (exitCode === 0) {
console.log('\n✅ TypeScript emit succeeded!');
const endTime = Date.now();
const duration = endTime - startTime;
if (this.taskInfo) {
const { taskNumber, totalTasks } = this.taskInfo;
console.log(`✅ [${taskNumber}/${totalTasks}] Task completed in ${duration}ms`);
} else {
console.log(`✅ TypeScript emit succeeded! (${duration}ms)`);
}
// Get count of emitted files by type
const jsFiles = emitResult.emittedFiles?.filter(f => f.endsWith('.js')).length || 0;
@@ -361,7 +382,7 @@ export class TsBuild {
// If we have emitted files, show a summary
if (emitResult.emittedFiles && emitResult.emittedFiles.length > 0) {
console.log(` Generated ${emitResult.emittedFiles.length} files: ${jsFiles} .js, ${dtsFiles} .d.ts, ${mapFiles} source maps`);
console.log(` 📄 Generated ${emitResult.emittedFiles.length} files: ${jsFiles} .js, ${dtsFiles} .d.ts, ${mapFiles} source maps`);
}
done.resolve({ emittedFiles: emitResult.emittedFiles || [], errorSummary: combinedErrorSummary });