Skip to content

Commit

Permalink
fix transpile on windows (#153285)
Browse files Browse the repository at this point in the history
make sure to normalize paths before entering internal TS API, also add better error logging to know what file paths fail
  • Loading branch information
jrieken committed Jun 27, 2022
1 parent e5301ee commit 0182e17
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 25 deletions.
33 changes: 21 additions & 12 deletions build/lib/tsb/transpiler.js
Expand Up @@ -121,20 +121,29 @@ class Transpiler {
this._allJobs = [];
logFn('Transpile', `will use ${Transpiler.P} transpile worker`);
this._getOutputFileName = (file) => {
if (!_cmdLine.options.configFilePath) {
// this is needed for the INTERNAL getOutputFileNames-call below...
_cmdLine.options.configFilePath = configFilePath;
}
const isDts = file.endsWith('.d.ts');
if (isDts) {
file = file.slice(0, -5) + '.ts';
_cmdLine.fileNames.push(file);
try {
// windows: path-sep normalizing
file = ts.normalizePath(file);
if (!_cmdLine.options.configFilePath) {
// this is needed for the INTERNAL getOutputFileNames-call below...
_cmdLine.options.configFilePath = configFilePath;
}
const isDts = file.endsWith('.d.ts');
if (isDts) {
file = file.slice(0, -5) + '.ts';
_cmdLine.fileNames.push(file);
}
const outfile = ts.getOutputFileNames(_cmdLine, file, true)[0];
if (isDts) {
_cmdLine.fileNames.pop();
}
return outfile;
}
const outfile = ts.getOutputFileNames(_cmdLine, file, true)[0];
if (isDts) {
_cmdLine.fileNames.pop();
catch (err) {
console.error(file, _cmdLine.fileNames);
console.error(err);
throw new err;
}
return outfile;
};
}
async join() {
Expand Down
38 changes: 25 additions & 13 deletions build/lib/tsb/transpiler.ts
Expand Up @@ -166,23 +166,35 @@ export class Transpiler {
// very complicated logic to re-use TS internal functions to know the output path
// given a TS input path and its config
type InternalTsApi = typeof ts & {
normalizePath(path: string): string;
getOutputFileNames(commandLine: ts.ParsedCommandLine, inputFileName: string, ignoreCase: boolean): readonly string[];
};
this._getOutputFileName = (file) => {
if (!_cmdLine.options.configFilePath) {
// this is needed for the INTERNAL getOutputFileNames-call below...
_cmdLine.options.configFilePath = configFilePath;
}
const isDts = file.endsWith('.d.ts');
if (isDts) {
file = file.slice(0, -5) + '.ts';
_cmdLine.fileNames.push(file);
}
const outfile = (<InternalTsApi>ts).getOutputFileNames(_cmdLine, file, true)[0];
if (isDts) {
_cmdLine.fileNames.pop();
try {

// windows: path-sep normalizing
file = (<InternalTsApi>ts).normalizePath(file);

if (!_cmdLine.options.configFilePath) {
// this is needed for the INTERNAL getOutputFileNames-call below...
_cmdLine.options.configFilePath = configFilePath;
}
const isDts = file.endsWith('.d.ts');
if (isDts) {
file = file.slice(0, -5) + '.ts';
_cmdLine.fileNames.push(file);
}
const outfile = (<InternalTsApi>ts).getOutputFileNames(_cmdLine, file, true)[0];
if (isDts) {
_cmdLine.fileNames.pop();
}
return outfile;

} catch (err) {
console.error(file, _cmdLine.fileNames);
console.error(err);
throw new err;
}
return outfile;
};
}

Expand Down

0 comments on commit 0182e17

Please sign in to comment.