First Commit
Yes, that is what I do at 31.12.2021 at 22:39 local time...
This commit is contained in:
62
src/index.ts
Normal file
62
src/index.ts
Normal file
@ -0,0 +1,62 @@
|
||||
import yargs from "yargs";
|
||||
import { hideBin } from "yargs/helpers";
|
||||
import startCompile, { Target } from "./process";
|
||||
|
||||
import dbg from "debug";
|
||||
const log = dbg("app");
|
||||
|
||||
dbg.disable();
|
||||
|
||||
yargs(hideBin(process.argv))
|
||||
.version("1.0.0")
|
||||
.command(
|
||||
"compile <input>",
|
||||
"Compile source",
|
||||
(yargs) => {
|
||||
return yargs
|
||||
.positional("input", {
|
||||
describe: "Input file",
|
||||
type: "string",
|
||||
demandOption: true,
|
||||
})
|
||||
.option("definition", {
|
||||
type: "string",
|
||||
describe: "Emit definition json at specified location",
|
||||
})
|
||||
.option("output", {
|
||||
type: "string",
|
||||
describe: "Output lang and location 'ts:out/' 'c:/test'",
|
||||
alias: "o",
|
||||
coerce: (arg: string | string[] | undefined) => {
|
||||
if (!arg) return [];
|
||||
if (!Array.isArray(arg)) arg = [arg];
|
||||
return arg.map((input) => {
|
||||
const [type, output] = input.split(":", 2);
|
||||
return {
|
||||
type,
|
||||
output,
|
||||
} as Target;
|
||||
});
|
||||
},
|
||||
array: true,
|
||||
});
|
||||
},
|
||||
(argv) => {
|
||||
if (argv.verbose) {dbg.enable("app");}
|
||||
log("Received compile command with args", argv);
|
||||
|
||||
startCompile({
|
||||
input: argv.input,
|
||||
targets: argv.output as any,
|
||||
emitDefinitions: argv.definition
|
||||
})
|
||||
}
|
||||
)
|
||||
.option("verbose", {
|
||||
alias: "v",
|
||||
type: "boolean",
|
||||
describe: "Adds additional outputs",
|
||||
})
|
||||
.strictCommands()
|
||||
.demandCommand()
|
||||
.parse();
|
Reference in New Issue
Block a user