UNPKG

4.68 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/cli/cli.js"],"names":[],"mappings":"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","file":"cli.js","sourcesContent":["/* @flow */\n\nimport { inspect } from 'util'\nimport { CompositeDisposable } from 'sb-event-kit'\nimport vorpal from 'vorpal'\nimport chalk from 'chalk'\n\nconst CLI_DELIMITER = `${chalk.yellow('♥ motion ♥')} ${chalk.red('❯')}${chalk.yellow('❯')}${chalk.green('❯')}`\nconst WELCOME_MESSAGE = `${chalk.red('♥ ♥ ♥ ♥ ♥')}\\t${chalk.yellow('Welcome to Motion')}\\t${chalk.red('♥ ♥ ♥ ♥ ♥')}`\nconst BYE_MESSAGE = `${chalk.red('♥ ♥ ♥ ♥ ♥')}\\t${chalk.yellow('Bye from Motion')}\\t\\t${chalk.red('♥ ♥ ♥ ♥ ♥')}`\n\nexport default class CLI {\n active: boolean;\n instance: vorpal;\n subscriptions: CompositeDisposable;\n\n constructor() {\n this.active = false\n this.instance = vorpal()\n this.subscriptions = new CompositeDisposable()\n }\n activate() {\n if (process.versions.electron) {\n // Vorpal crashes electron\n return\n }\n if (this.active) {\n this.instance.show()\n return\n }\n\n this.active = true\n this.instance.delimiter(CLI_DELIMITER)\n this.instance.show()\n this.instance.log(WELCOME_MESSAGE)\n }\n deactivate() {\n this.instance.hide()\n }\n addCommand(name: string, helpText: string, callback: Function) {\n this.instance.command(name, helpText).action((args, keepRunning) => {\n const result = callback.call(this, args)\n if (result && result.constructor.name === 'Promise') {\n result.then(keepRunning, keepRunning)\n } else keepRunning()\n })\n }\n replaceCommand(name: string, helpText: string, callback: Function) {\n const command = this.instance.find(name)\n if (command) {\n command.remove()\n }\n this.addCommand(name, helpText, callback)\n }\n log() {\n const contents = []\n for (let i = 0; i < arguments.length; ++i) {\n const value = arguments[i]\n if (typeof value === 'string') {\n contents.push(value)\n } else if (value && value.constructor.name.endsWith('Error')) {\n contents.push(`[${value.constructor.name}: ${value.message} ${value.stack.split('\\n')[1].trim()}]`)\n } else {\n contents.push(inspect(value))\n }\n }\n if (this.active) {\n this.instance.log(contents.join(' '))\n } else {\n console.log(contents.join(' '))\n }\n }\n dispose() {\n if (this.active) {\n this.instance.log(BYE_MESSAGE)\n this.instance.hide()\n this.active = false\n }\n this.subscriptions.dispose()\n }\n}\n"]}
\No newline at end of file