Skip to content

Instantly share code, notes, and snippets.

@codehz
Created October 24, 2020 14:56
Show Gist options
  • Save codehz/1f5134a5a7954bfd33d0c8b966094993 to your computer and use it in GitHub Desktop.
Save codehz/1f5134a5a7954bfd33d0c8b966094993 to your computer and use it in GitHub Desktop.
a hack to force tsc output .tjs
#!/usr/bin/env node
"use strict";
const ts = require("typescript");
function hook(fn, name) {
return (path, ...args) => {
path = path.replace(/\.js$/, '.tjs');
// console.log(name, path);
return fn(path, ...args);
}
}
function doHook(root, attr) {
if (root[attr])
root[attr] = hook(root[attr], attr);
else
console.warn("undefined to ", attr);
}
doHook(ts.sys, "readFile");
doHook(ts.sys, "writeFile");
doHook(ts.sys, "resolvePath");
doHook(ts.sys, "fileExists");
doHook(ts.sys, "getModifiedTime");
doHook(ts.sys, "setModifiedTime");
doHook(ts.sys, "deleteFile");
doHook(ts.sys, "createHash");
doHook(ts.sys, "createSHA256Hash");
doHook(ts.sys, "realpath");
const host = ts.createSolutionBuilderHost(ts.sys);
const builder = ts.createSolutionBuilder(host, ["."], {});
builder.build();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment