Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
18573c777d | |||
fa654b83e3 | |||
aa3c83cd95 | |||
20ed41df42 | |||
7162476f7f | |||
1b012628eb | |||
4081086621 | |||
b9cf09ccba | |||
8463fbc78a | |||
0164eb51a1 | |||
a305dd89dd | |||
fa6b053ee0 |
43
changelog.md
43
changelog.md
@@ -1,5 +1,48 @@
|
||||
# Changelog
|
||||
|
||||
## 2025-08-18 - 2.6.6 - fix(dependencies)
|
||||
Update dependency @git.zone/tspublish to ^1.10.2
|
||||
|
||||
- Bumped @git.zone/tspublish in package.json from ^1.10.1 to ^1.10.2
|
||||
|
||||
## 2025-08-18 - 2.6.5 - fix(dependencies)
|
||||
Bump dependencies and add pnpm-workspace configuration
|
||||
|
||||
- Updated @git.zone/tspublish from ^1.9.1 to ^1.10.1
|
||||
- Updated @push.rocks/smartfile from ^11.2.4 to ^11.2.7
|
||||
- Updated @push.rocks/smartpath from ^5.0.18 to ^6.0.0
|
||||
- Updated typescript from 5.8.3 to 5.9.2
|
||||
- Updated devDependency @git.zone/tstest from ^1.10.1 to ^2.3.4
|
||||
- Added pnpm-workspace.yaml with onlyBuiltDependencies list (esbuild, mongodb-memory-server, puppeteer)
|
||||
|
||||
## 2025-05-24 - 2.6.4 - fix(dependencies)
|
||||
Add .npmrc and update dependency versions for smartfile and tstest
|
||||
|
||||
- Add .npmrc with registry configuration for npm
|
||||
- Bump @push.rocks/smartfile version from ^11.2.3 to ^11.2.4
|
||||
- Bump @git.zone/tstest version from ^1.9.0 to ^1.10.1
|
||||
|
||||
## 2025-05-21 - 2.6.3 - fix(tsbuild)
|
||||
minor maintenance updates and documentation improvements
|
||||
|
||||
- Updated commit metadata to align with project version
|
||||
- Refined CLI command parsing and diagnostics logging for better clarity
|
||||
- Improved code readability in compiler options merging
|
||||
|
||||
## 2025-05-21 - 2.6.2 - fix(npm configuration)
|
||||
Remove .npmrc file to default npm registry behavior
|
||||
|
||||
- Deleted .npmrc file that hard-coded the npm registry URL to https://registry.npmjs.org/
|
||||
- This change leverages npm's default registry settings and reduces configuration clutter
|
||||
|
||||
## 2025-05-21 - 2.6.1 - fix(tsbuild.classes)
|
||||
Improve error diagnostics handling by removing legacy helper and integrating more robust error summaries in the compilation process
|
||||
|
||||
- Removed the handleDiagnostics method and its legacy usage
|
||||
- Replaced legacy calls with inline processDiagnostics checks for pre-emit and emit phases
|
||||
- Combined error summaries for clearer reporting during emit checks and type validation
|
||||
- Enhanced error output to guide users on resolving TypeScript errors before emission
|
||||
|
||||
## 2025-05-21 - 2.6.0 - feat(tsbuild)
|
||||
Improve task logging and update dependencies
|
||||
|
||||
|
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@git.zone/tsbuild",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.6",
|
||||
"private": false,
|
||||
"description": "A tool for compiling TypeScript files using the latest nightly features, offering flexible APIs and a CLI for streamlined development.",
|
||||
"main": "dist_ts/index.js",
|
||||
@@ -36,19 +36,19 @@
|
||||
},
|
||||
"homepage": "https://code.foss.global/git.zone/tsbuild#README",
|
||||
"dependencies": {
|
||||
"@git.zone/tspublish": "^1.9.1",
|
||||
"@git.zone/tspublish": "^1.10.2",
|
||||
"@push.rocks/early": "^4.0.4",
|
||||
"@push.rocks/smartcli": "^4.0.11",
|
||||
"@push.rocks/smartdelay": "^3.0.5",
|
||||
"@push.rocks/smartfile": "^11.2.3",
|
||||
"@push.rocks/smartfile": "^11.2.7",
|
||||
"@push.rocks/smartlog": "^3.1.8",
|
||||
"@push.rocks/smartpath": "^5.0.18",
|
||||
"@push.rocks/smartpath": "^6.0.0",
|
||||
"@push.rocks/smartpromise": "^4.2.3",
|
||||
"typescript": "5.8.3"
|
||||
"typescript": "5.9.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@git.zone/tsrun": "^1.2.47",
|
||||
"@git.zone/tstest": "^1.9.0",
|
||||
"@git.zone/tstest": "^2.3.4",
|
||||
"@types/node": "^22.15.21"
|
||||
},
|
||||
"files": [
|
||||
|
4258
pnpm-lock.yaml
generated
4258
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
4
pnpm-workspace.yaml
Normal file
4
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
onlyBuiltDependencies:
|
||||
- esbuild
|
||||
- mongodb-memory-server
|
||||
- puppeteer
|
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@git.zone/tsbuild',
|
||||
version: '2.6.0',
|
||||
version: '2.6.6',
|
||||
description: 'A tool for compiling TypeScript files using the latest nightly features, offering flexible APIs and a CLI for streamlined development.'
|
||||
}
|
||||
|
@@ -280,14 +280,6 @@ export class TsBuild {
|
||||
console.log('\n' + '='.repeat(80) + '\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to handle and log TypeScript diagnostics (legacy method)
|
||||
*/
|
||||
private handleDiagnostics(diagnostics: readonly plugins.typescript.Diagnostic[]): boolean {
|
||||
const errorSummary = this.processDiagnostics(diagnostics);
|
||||
this.displayErrorSummary(errorSummary);
|
||||
return errorSummary.totalErrors > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a TypeScript program from file names and options
|
||||
@@ -413,10 +405,11 @@ export class TsBuild {
|
||||
|
||||
// Check for pre-emit diagnostics first
|
||||
const preEmitDiagnostics = plugins.typescript.getPreEmitDiagnostics(program);
|
||||
const hasPreEmitErrors = this.handleDiagnostics(preEmitDiagnostics);
|
||||
const preEmitErrorSummary = this.processDiagnostics(preEmitDiagnostics);
|
||||
|
||||
// Only continue to emit phase if no pre-emit errors
|
||||
if (hasPreEmitErrors) {
|
||||
if (preEmitErrorSummary.totalErrors > 0) {
|
||||
this.displayErrorSummary(preEmitErrorSummary);
|
||||
console.error('\n❌ TypeScript pre-emit checks failed. Please fix the issues listed above before proceeding.');
|
||||
console.error(' Type errors must be resolved before the compiler can emit output files.\n');
|
||||
process.exit(1);
|
||||
@@ -424,7 +417,7 @@ export class TsBuild {
|
||||
|
||||
// If no pre-emit errors, proceed with emit
|
||||
const emitResult = program.emit();
|
||||
const hasEmitErrors = this.handleDiagnostics(emitResult.diagnostics);
|
||||
const emitErrorSummary = this.processDiagnostics(emitResult.diagnostics);
|
||||
|
||||
const exitCode = emitResult.emitSkipped ? 1 : 0;
|
||||
if (exitCode === 0) {
|
||||
@@ -442,6 +435,7 @@ export class TsBuild {
|
||||
|
||||
done.resolve(emitResult.emittedFiles);
|
||||
} else {
|
||||
this.displayErrorSummary(emitErrorSummary);
|
||||
console.error('\n❌ TypeScript emit failed. Please investigate the errors listed above!');
|
||||
console.error(' No output files have been generated.\n');
|
||||
process.exit(exitCode);
|
||||
@@ -465,18 +459,27 @@ export class TsBuild {
|
||||
|
||||
// Check for pre-emit diagnostics
|
||||
const preEmitDiagnostics = plugins.typescript.getPreEmitDiagnostics(program);
|
||||
const hasPreEmitErrors = this.handleDiagnostics(preEmitDiagnostics);
|
||||
const preEmitErrorSummary = this.processDiagnostics(preEmitDiagnostics);
|
||||
|
||||
// Run the emit phase but with noEmit: true to check for emit errors without producing files
|
||||
const emitResult = program.emit(undefined, undefined, undefined, true);
|
||||
const hasEmitErrors = this.handleDiagnostics(emitResult.diagnostics);
|
||||
const emitErrorSummary = this.processDiagnostics(emitResult.diagnostics);
|
||||
|
||||
const success = !hasPreEmitErrors && !hasEmitErrors && !emitResult.emitSkipped;
|
||||
// Combine error summaries
|
||||
const combinedErrorSummary: IErrorSummary = {
|
||||
errorsByFile: { ...preEmitErrorSummary.errorsByFile, ...emitErrorSummary.errorsByFile },
|
||||
generalErrors: [...preEmitErrorSummary.generalErrors, ...emitErrorSummary.generalErrors],
|
||||
totalErrors: preEmitErrorSummary.totalErrors + emitErrorSummary.totalErrors,
|
||||
totalFiles: Object.keys({ ...preEmitErrorSummary.errorsByFile, ...emitErrorSummary.errorsByFile }).length
|
||||
};
|
||||
|
||||
const success = combinedErrorSummary.totalErrors === 0 && !emitResult.emitSkipped;
|
||||
|
||||
if (success) {
|
||||
console.log('\n✅ TypeScript emit check passed! All files can be emitted successfully.');
|
||||
console.log(` ${fileCount} file${fileCount !== 1 ? 's' : ''} ${fileCount !== 1 ? 'are' : 'is'} ready to be compiled.\n`);
|
||||
} else {
|
||||
this.displayErrorSummary(combinedErrorSummary);
|
||||
console.error('\n❌ TypeScript emit check failed. Please fix the issues listed above.');
|
||||
console.error(' The compilation cannot proceed until these errors are resolved.\n');
|
||||
}
|
||||
@@ -499,15 +502,16 @@ export class TsBuild {
|
||||
|
||||
// Check for type errors
|
||||
const diagnostics = plugins.typescript.getPreEmitDiagnostics(program);
|
||||
const hasErrors = this.handleDiagnostics(diagnostics);
|
||||
const errorSummary = this.processDiagnostics(diagnostics);
|
||||
|
||||
// Set success flag
|
||||
const success = !hasErrors;
|
||||
const success = errorSummary.totalErrors === 0;
|
||||
|
||||
if (success) {
|
||||
console.log('\n✅ TypeScript type check passed! No type errors found.');
|
||||
console.log(` All ${fileCount} file${fileCount !== 1 ? 's' : ''} passed type checking successfully.\n`);
|
||||
} else {
|
||||
this.displayErrorSummary(errorSummary);
|
||||
console.error('\n❌ TypeScript type check failed. Please fix the type errors listed above.');
|
||||
console.error(' The type checker found issues that need to be resolved.\n');
|
||||
}
|
||||
|
Reference in New Issue
Block a user