2018-07-13 20:31:15 +00:00
|
|
|
import * as path from "path";
|
|
|
|
import * as tsNode from "ts-node";
|
|
|
|
|
|
|
|
const tsCacheDir = path.join(__dirname, "../tscache");
|
2018-06-04 21:25:19 +00:00
|
|
|
|
2018-07-03 12:40:58 +00:00
|
|
|
const defaultTsNodeOptions: tsNode.Options = {
|
2018-06-04 21:25:19 +00:00
|
|
|
compilerOptions: {
|
2018-07-13 20:31:15 +00:00
|
|
|
lib: ["es2016", "es2017"],
|
|
|
|
target: "es2015"
|
2018-06-30 16:43:16 +00:00
|
|
|
},
|
2018-07-01 15:30:05 +00:00
|
|
|
skipIgnore: true,
|
2018-07-13 20:31:15 +00:00
|
|
|
cacheDirectory: tsCacheDir
|
2018-07-03 12:44:57 +00:00
|
|
|
};
|
2018-07-03 12:40:58 +00:00
|
|
|
|
2018-07-13 20:31:15 +00:00
|
|
|
// check wether a cache is feasible
|
|
|
|
if (process.argv.includes("--nocache")) {
|
2018-07-03 12:40:58 +00:00
|
|
|
defaultTsNodeOptions.cache = false;
|
2018-07-13 20:31:15 +00:00
|
|
|
} else {
|
|
|
|
var fs = require('fs');
|
|
|
|
fs.access(tsCacheDir, fs.constants.W_OK, function(err) {
|
|
|
|
if (err) {
|
|
|
|
defaultTsNodeOptions.cache = false;
|
|
|
|
}
|
|
|
|
});
|
2018-07-03 12:40:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
tsNode.register(defaultTsNodeOptions);
|
2018-06-04 21:25:19 +00:00
|
|
|
|
2018-06-30 15:59:15 +00:00
|
|
|
if (process.env.CLI_CALL_TSRUN) {
|
2018-06-25 08:23:15 +00:00
|
|
|
// contents of argv array
|
|
|
|
// process.argv[0] -> node Executable
|
|
|
|
// process.argv[1] -> tsrun executable
|
2018-07-03 12:44:57 +00:00
|
|
|
const pathToTsFile = process.argv[2];
|
|
|
|
|
2018-06-25 08:23:15 +00:00
|
|
|
const pathToLoad = path.join(process.cwd(), pathToTsFile);
|
2018-06-05 21:40:59 +00:00
|
|
|
import(pathToLoad);
|
|
|
|
}
|