Compare commits

..

6 Commits

5 changed files with 46 additions and 17 deletions

View File

@ -1,5 +1,21 @@
# Changelog
## 2024-10-27 - 2.1.85 - fix(compiler)
Improve path handling in compiler options
- Refactored path import in tsbuild.classes.compiler.ts.
- Enhanced mergeCompilerOptions to read paths and baseUrl from tsconfig.json if present.
## 2024-07-22 - 2.1.84 - fix(cli)
Fixed transpilation order issue in tsfolders command
- Corrected the transpilation order so 'ts_shared' is processed before other folders in the 'tsfolders' CLI command.
## 2024-07-21 - 2.1.83 - fix(cli)
Ensure 'ts_shared' folder is compiled first if present
- Added logic to make sure the 'ts_shared' folder is compiled first when running 'tsfolders' command.
## 2024-06-24 - 2.1.82 - fix(core)
Minor improvements and optimizations in core TypeScript compiler integration.

View File

@ -1,6 +1,6 @@
{
"name": "@git.zone/tsbuild",
"version": "2.1.82",
"version": "2.1.85",
"private": false,
"description": "TypeScript nightly to easily make use of latest features",
"main": "dist_ts/index.js",

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@git.zone/tsbuild',
version: '2.1.82',
version: '2.1.85',
description: 'TypeScript nightly to easily make use of latest features'
}

View File

@ -1,5 +1,6 @@
// import all the stuff we need
import * as plugins from './plugins.js';
import * as paths from './paths.js';
import type { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
/**
@ -20,6 +21,7 @@ export const compilerOptionsDefault: CompilerOptions = {
esModuleInterop: true,
useDefineForClassFields: false,
verbatimModuleSyntax: true,
baseUrl: './',
};
/**
@ -49,6 +51,20 @@ export const mergeCompilerOptions = (
moduleResolution: plugins.typescript.ModuleResolutionKind.NodeJs,
}
: {}),
...(() => {
const returnObject: CompilerOptions = {};
console.log(`looking at tsconfig.json at ${paths.cwd}`);
const tsconfig = plugins.smartfile.fs.toObjectSync(plugins.path.join(paths.cwd, 'tsconfig.json'));
if (tsconfig && tsconfig.compilerOptions && tsconfig.compilerOptions.baseUrl) {
console.log('baseUrl found in tsconfig.json');
returnObject.baseUrl = tsconfig.compilerOptions.baseUrl;
}
if (tsconfig && tsconfig.compilerOptions && tsconfig.compilerOptions.paths) {
console.log('paths found in tsconfig.json');
returnObject.paths = tsconfig.compilerOptions.paths;
}
return returnObject;
})(),
};
console.log(mergedOptions);

View File

@ -37,26 +37,23 @@ export const runCli = async () => {
*/
tsbuildCli.addCommand('tsfolders').subscribe(async (argvArg) => {
const tsFolders = await plugins.smartfile.fs.listFolders(paths.cwd, /^ts/);
// lets make sure shared is always transpiled first
const indexShared = tsFolders.indexOf('ts_shared');
if (indexShared > -1) {
tsFolders.splice(indexShared, 1);
tsFolders.unshift('ts_shared');
}
// lets make sure interfaces are always transpiled first
const index = tsFolders.indexOf('ts_interfaces');
if (index > -1) {
tsFolders.splice(index, 1);
const indexInterfaces = tsFolders.indexOf('ts_interfaces');
if (indexInterfaces > -1) {
tsFolders.splice(indexInterfaces, 1);
tsFolders.unshift('ts_interfaces');
}
const compilationCommandObject: { [key: string]: string } = {};
for (const tsFolder of tsFolders) {
compilationCommandObject[`./${tsFolder}/**/*.ts`] = `./dist_${tsFolder}`;
}
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
});
/**
* the custom command compiles any customDir to dist_customDir
*/
tsbuildCli.addCommand('interfaces').subscribe(async (argvArg) => {
const tsFolders = ['ts_interfaces'];
const compilationCommandObject: { [key: string]: string } = {};
console.log(`compiling in this order:`);
console.log(tsFolders);
for (const tsFolder of tsFolders) {
compilationCommandObject[`./${tsFolder}/**/*.ts`] = `./dist_${tsFolder}`;
}