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