zoroaster
Version:
A Modern Testing Framework For Node.js With Support For Test Contexts Which Can Be Reused Across Test Suites And Packages. Zoroaster Improves Developer Productivity And Experience With IDE Hints, And Test Reliability.
62 lines (57 loc) • 1.39 kB
JavaScript
#!/usr/bin/env node
const { resolve } = require('path');
const run = require('../lib/run');
let argufy = require('argufy'); if (argufy && argufy.__esModule) argufy = argufy.default;
const getUsage = require('./usage');
const { version } = require('../../package.json');
const {
babel,
alamode,
watch: _watch,
version: _version,
help: _help,
paths: _paths = [],
timeout: _timeout = 2000,
_argv,
} = argufy({
paths: { command: true, multiple: true },
babel: { short: 'b', boolean: true },
alamode: { short: 'a', boolean: true },
watch: { short: 'w', boolean: true },
version: { short: 'v', boolean: true },
help: { short: 'h', boolean: true },
timeout: { short: 't', number: true },
})
if (_version) {
console.log(version)
process.exit()
}
if (_help) {
const usage = getUsage()
console.log(usage)
process.exit()
}
if (babel) {
try {
require('@babel/register')
} catch (err) {
const p = resolve(process.cwd(), 'node_modules/@babel/register')
require(p)
}
}
if (alamode) {
require('alamode')()
}
(async () => {
try {
await run({
paths: [..._paths, ..._argv],
watch: _watch,
timeout: _timeout,
})
} catch ({ message, stack }) {
if (process.env.DEBUG) console.log(stack) // eslint-disable-line no-console
console.error(message) // eslint-disable-line no-console
process.exit(1)
}
})()