#!/usr/bin/env node import * as minimist from 'minimist' import { Command } from './types' import createCommand from './commands/create' import fetchCommand from './commands/fetch' import authCommand from './commands/auth' import * as chalk from 'chalk' import figures = require('figures') import { usageRoot, usageCreate, usageFetch, usageAuth } from './usage' const {version} = require('../package.json') async function main() { const argv = minimist(process.argv.slice(2)) const command = argv._[0] as Command | undefined process.stdout.write('\n') switch (command) { case undefined: { process.stdout.write(usageRoot) process.exit(0) } case 'auth': { checkHelp(argv, usageAuth) const token = argv['token'] || argv['t'] await authCommand({ token, }) break } case 'create': { checkHelp(argv, usageCreate) const name = argv['name'] || argv['n'] const alias = argv['alias'] || argv['a'] const schema = argv._[1] await createCommand({ name, alias, schema, }) break } case 'fetch': { checkHelp(argv, usageFetch) const projectId = argv['project-id'] || argv['p'] await fetchCommand({ projectId, }) break } case 'version': { console.log(version) break } default: { console.log(`Unknown command: ${command}`) break } } } function checkHelp(argv: any, usage: string) { if (argv['help'] || argv['h']) { process.stdout.write(usage) process.exit(0) } } function onError(e: Error) { console.log(`${chalk.red(figures.cross)} Error: ${e.message}\n`) console.log(e.stack) process.exit(1) } process.on('unhandledRejection', e => onError(e)) main().catch(e => onError(e))