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

@@ -6,16 +6,28 @@ export type { CompilerOptions, ScriptTarget, ModuleKind };
export * from './tsbuild.classes.tsbuild.js';
/**
* Interface for task information
*/
export interface ITaskInfo {
taskNumber: number;
totalTasks: number;
sourcePattern: string;
destDir: string;
fileCount: number;
}
/**
* compile an array of absolute file paths with error tracking
*/
export let compileFileArrayWithErrorTracking = async (
fileStringArrayArg: string[],
compilerOptionsArg: CompilerOptions = {},
argvArg?: any
argvArg?: any,
taskInfo?: ITaskInfo
): Promise<{ emittedFiles: any[], errorSummary: import('./tsbuild.classes.tsbuild.js').IErrorSummary }> => {
const { TsBuild } = await import('./tsbuild.classes.tsbuild.js');
const tsBuild = new TsBuild(fileStringArrayArg, compilerOptionsArg, argvArg);
const tsBuild = new TsBuild(fileStringArrayArg, compilerOptionsArg, argvArg, taskInfo);
return tsBuild.compileWithErrorTracking();
};
@@ -115,8 +127,11 @@ export let compileGlobStringObject = async (
let compiledFiles: any[] = [];
const errorSummaries: import('./tsbuild.classes.tsbuild.js').IErrorSummary[] = [];
const totalTasks = Object.keys(globStringObjectArg).length;
let currentTask = 0;
// Log the compilation tasks in a nice format
console.log('\n👷 TypeScript Compilation Tasks:');
console.log(`\n👷 TypeScript Compilation Tasks (${totalTasks} task${totalTasks !== 1 ? 's' : ''}):`);
Object.entries(globStringObjectArg).forEach(([source, dest]) => {
console.log(` 📂 ${source}${dest}`);
});
@@ -153,7 +168,16 @@ export let compileGlobStringObject = async (
};
// Compile with error tracking
const result = await compileFileArrayWithErrorTracking(absoluteFilePathArray, updatedTsOptions, argvArg);
currentTask++;
const taskInfo = {
taskNumber: currentTask,
totalTasks,
sourcePattern: keyArg,
destDir: globStringObjectArg[keyArg],
fileCount: absoluteFilePathArray.length
};
const result = await compileFileArrayWithErrorTracking(absoluteFilePathArray, updatedTsOptions, argvArg, taskInfo);
compiledFiles = compiledFiles.concat(result.emittedFiles);
errorSummaries.push(result.errorSummary);
}