fix(core): update
This commit is contained in:
39
ts/index.ts
39
ts/index.ts
@@ -1,32 +1,27 @@
|
||||
import * as path from 'path';
|
||||
import * as tsNode from 'ts-node';
|
||||
import { CompilerOptions } from 'typescript';
|
||||
import * as plugins from './plugins.js';
|
||||
|
||||
const defaultTsNodeOptions: tsNode.CreateOptions = {
|
||||
compilerOptions: {
|
||||
lib: ['dom'],
|
||||
target: <any>'es2020', // Script Target should be a string -> 2 is for ES2015
|
||||
experimentalDecorators: true,
|
||||
esModuleInterop: true,
|
||||
strictNullChecks: false,
|
||||
moduleResolution: <any>'node12',
|
||||
module: <any>'es2020',
|
||||
importsNotUsedAsValues: <any>'preserve',
|
||||
} as CompilerOptions,
|
||||
skipIgnore: true,
|
||||
esm: true,
|
||||
};
|
||||
import { dirname } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
tsNode.register(defaultTsNodeOptions);
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
export const runCli = async () => {
|
||||
// contents of argv array
|
||||
// process.argv[0] -> node Executable
|
||||
// process.argv[1] -> tsrun executable
|
||||
const pathToTsFile = process.argv[2];
|
||||
|
||||
const pathToLoad = path.join(process.cwd(), pathToTsFile);
|
||||
process.argv.splice(2, 1);
|
||||
|
||||
const tsNodeLoaderPath = plugins.path.join(__dirname, 'loader.js')
|
||||
const pathToLoad = plugins.path.join(process.cwd(), pathToTsFile);
|
||||
process.argv.splice(0, 3);
|
||||
// console.log(process.argv);
|
||||
import(pathToLoad);
|
||||
|
||||
const smartshellInstance = new plugins.smartshell.Smartshell({
|
||||
executor: 'bash'
|
||||
});
|
||||
|
||||
smartshellInstance.exec(`node --loader ${tsNodeLoaderPath} ${pathToLoad} ${process.argv.reduce((prevArg, currentArg) => {
|
||||
return prevArg + ' ' + currentArg;
|
||||
})}`);
|
||||
|
||||
};
|
||||
|
20
ts/loader.ts
Normal file
20
ts/loader.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import * as plugins from './plugins.js';
|
||||
import type { CompilerOptions } from 'typescript';
|
||||
|
||||
const defaultTsNodeOptions: plugins.tsNode.CreateOptions = {
|
||||
compilerOptions: {
|
||||
lib: ['dom'],
|
||||
target: <any>'es2020', // Script Target should be a string -> 2 is for ES2015
|
||||
experimentalDecorators: true,
|
||||
esModuleInterop: true,
|
||||
strictNullChecks: false,
|
||||
moduleResolution: <any>'node12',
|
||||
module: <any>'ESNext',
|
||||
importsNotUsedAsValues: <any>'preserve',
|
||||
} as CompilerOptions,
|
||||
esm: true,
|
||||
skipIgnore: true,
|
||||
transpileOnly: true
|
||||
};
|
||||
|
||||
export const { resolve, load, getFormat, transformSource } = plugins.tsNode.createEsmHooks(plugins.tsNode.register(defaultTsNodeOptions)) as any;
|
15
ts/plugins.ts
Normal file
15
ts/plugins.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
// @pushrocks scope
|
||||
import * as smartshell from '@pushrocks/smartshell';
|
||||
|
||||
export {
|
||||
smartshell
|
||||
}
|
||||
|
||||
// third party scope
|
||||
import * as path from 'path';
|
||||
import * as tsNode from 'ts-node';
|
||||
|
||||
export {
|
||||
path,
|
||||
tsNode
|
||||
}
|
Reference in New Issue
Block a user