Files
tsdeno/ts/tsdeno.cli.ts

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();
};