fix(unpack): catch unpack errors and add verbose unpack logging

This commit is contained in:
2026-03-05 12:29:11 +00:00
parent 7aec1548eb
commit 856099b5ed
4 changed files with 15 additions and 2 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## 2026-03-05 - 4.1.8 - fix(unpack)
catch unpack errors and add verbose unpack logging
- Wrap performUnpack call in the compiler to catch and log exceptions so unpack failures don't crash the process
- Log the number of directories and files being unpacked when moving nested contents to aid debugging
## 2026-03-05 - 4.1.7 - fix(fs/compiler/unpack) ## 2026-03-05 - 4.1.7 - fix(fs/compiler/unpack)
robustify directory removal and remove noisy diagnostic logging robustify directory removal and remove noisy diagnostic logging

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@git.zone/tsbuild', name: '@git.zone/tsbuild',
version: '4.1.7', version: '4.1.8',
description: 'A tool for compiling TypeScript files using the latest nightly features, offering flexible APIs and a CLI for streamlined development.' description: 'A tool for compiling TypeScript files using the latest nightly features, offering flexible APIs and a CLI for streamlined development.'
} }

View File

@@ -367,7 +367,11 @@ export class TsCompiler {
// Perform unpack if compilation succeeded // Perform unpack if compilation succeeded
if (result.errorSummary.totalErrors === 0) { if (result.errorSummary.totalErrors === 0) {
await performUnpack(pattern, destDir, this.cwd); try {
await performUnpack(pattern, destDir, this.cwd);
} catch (unpackErr: any) {
console.error(` ⚠️ Unpack error for ${destPath}: ${unpackErr.message}`);
}
successfulOutputDirs.push(destDir); successfulOutputDirs.push(destDir);
} }

View File

@@ -128,6 +128,9 @@ export class TsUnpacker {
private async moveNestedContentsUp(): Promise<void> { private async moveNestedContentsUp(): Promise<void> {
const nestedPath = this.getNestedPath(); const nestedPath = this.getNestedPath();
const entries = await FsHelpers.listDirectory(nestedPath); const entries = await FsHelpers.listDirectory(nestedPath);
const dirCount = entries.filter(e => e.isDirectory).length;
const fileCount = entries.filter(e => e.isFile).length;
console.log(` 📦 Unpacking ${this.sourceFolderName}/: ${dirCount} directories, ${fileCount} files`);
for (const entry of entries) { for (const entry of entries) {
const src = path.join(nestedPath, entry.name); const src = path.join(nestedPath, entry.name);
const dest = path.join(this.destDir, entry.name); const dest = path.join(this.destDir, entry.name);