40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import * as plugins from './plugins.js';
|
|
import { TsDeno } from './tsdeno.classes.tsdeno.js';
|
|
import { commitinfo } from './00_commitinfo_data.js';
|
|
|
|
const tsdenoCli = new plugins.smartcli.Smartcli();
|
|
|
|
tsdenoCli.addVersion(commitinfo.version);
|
|
|
|
tsdenoCli.standardCommand().subscribe(async (argvArg) => {
|
|
console.log(`@git.zone/tsdeno v${commitinfo.version}`);
|
|
console.log('');
|
|
console.log('Usage:');
|
|
console.log(' tsdeno compile Compile all targets from npmextra.json');
|
|
console.log(' tsdeno compile [deno compile args...] Compile with explicit args (passthrough)');
|
|
console.log('');
|
|
console.log('When no args are given, tsdeno reads compileTargets from npmextra.json.');
|
|
console.log('The compile command temporarily removes package.json before running');
|
|
console.log('deno compile, preventing devDependencies from bloating the binary.');
|
|
console.log('--node-modules-dir=none is added automatically.');
|
|
});
|
|
|
|
tsdenoCli.addCommand('compile').subscribe(async (argvArg) => {
|
|
const tsDeno = new TsDeno();
|
|
const rawArgs = process.argv.slice(3);
|
|
|
|
if (rawArgs.length === 0) {
|
|
// No args — read targets from npmextra.json
|
|
await tsDeno.compileFromConfig();
|
|
} else {
|
|
// Args provided — passthrough to deno compile
|
|
await tsDeno.compile(rawArgs);
|
|
}
|
|
});
|
|
|
|
export { tsdenoCli };
|
|
|
|
export const runCli = async () => {
|
|
tsdenoCli.startParse();
|
|
};
|