import { cac } from 'cac'
import {
runBuild,
runDev,
ToOptions,
UtsTarget,
UtsTargetExtNames,
} from './index.bak'
const cli = cac('uts')
export interface CliOptions {
target: UtsTarget
silent: boolean
sourceMap: boolean
inlineSourcesContent: boolean
watch: boolean
extname: string
}
cli
.command(' [output]')
.option('-t, --target ', '[string] kotlin | swift', {
default: UtsTarget.KOTLIN,
})
.option('-s, --sourceMap [sourceMap]', `[boolean|string] output sourceMap`, {
default: false,
})
.option(
'-i, --inlineSourcesContent [inlineSourcesContent]',
`[boolean] inline sources content`,
{
default: false,
}
)
.option('-w, --watch', `[boolean] rebuilds when uts have changed on disk`, {
default: false,
})
.option('-e, --extname [extname]', `[string] extname`, {
default: '.uts',
})
.option('--silent', `[boolean] disable log`, {
default: false,
})
.action((input, output, opts: CliOptions) => {
const toOptions: ToOptions = {
silent: opts.silent,
input: {
dir: input,
extname: opts.extname,
},
output: {
dir: output,
sourceMap: opts.sourceMap,
inlineSourcesContent: opts.inlineSourcesContent,
extname: UtsTargetExtNames[opts.target],
},
}
return opts.watch
? runDev(opts.target, toOptions)
: runBuild(opts.target, toOptions)
})
cli.help()
cli.version(require('../package.json').version)
cli.parse()