UNPKG

ts-dev-stack

Version:

Development stack for TypeScript libraries

34 lines (33 loc) 1.08 kB
import fs from 'fs'; import path from 'path'; import url from 'url'; import exit from 'exit'; import getopts from 'getopts-compat'; import runCommand from './runCommand.mjs'; const _dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename); const ERROR_CODE = 15; export default function cli(argv, name) { if (argv.length === 0) { console.log(`Command missing ${name} ${argv.join(',')}`); return exit(ERROR_CODE); } const { _, ...opts } = getopts(argv, { stopEarly: true, alias: { version: 'v' }, boolean: [ 'version' ] }); if (opts.version) { const pkg = JSON.parse(fs.readFileSync(path.join(_dirname, '..', '..', 'package.json'), 'utf8')); console.log(pkg.version); return exit(0); } runCommand(argv[0], argv.slice(1), {}, (err)=>{ if (err && err.message.indexOf('ExperimentalWarning') >= 0) err = null; if (err) console.log(err.message); exit(err ? ERROR_CODE : 0); }); }