UNPKG

6.47 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/cli/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* @flow */\n\nimport { Emitter, CompositeDisposable } from 'sb-event-kit'\nimport Ora from 'ora'\nimport chalk from 'chalk'\nimport open from 'open'\nimport unique from 'lodash.uniq'\nimport { exec } from 'sb-exec'\nimport CLI from './cli'\nimport type { Disposable } from 'sb-event-kit'\nimport type Config from '../config'\n\nconst SPINNER_GLUE = ' & '\n\nexport default class Main {\n cli: CLI;\n active: boolean;\n config: Config;\n spinner: ?{\n texts: Array<string>,\n instance: Ora\n };\n emitter: Emitter;\n subscriptions: CompositeDisposable;\n\n constructor(config: Config) {\n this.cli = new CLI()\n this.active = false\n this.config = config\n this.emitter = new Emitter()\n this.subscriptions = new CompositeDisposable()\n\n this.subscriptions.add(this.emitter)\n }\n activate() {\n if (this.active) {\n this.cli.activate()\n return\n }\n\n const serverAddress = `http://localhost:${this.config.get('webServerPort')}/`\n\n this.cli.activate()\n this.cli.log(`${chalk.green('Server running at')} ${serverAddress}`)\n this.cli.log(`${chalk.yellow(`Type ${chalk.underline('help')} to get list of available commands`)}`)\n this.cli.addCommand('open', 'Open this app in Browser', () => {\n open(serverAddress)\n })\n this.cli.addCommand('editor', 'Open this app in Atom', async () => {\n await exec('atom', [this.config.getBundleDirectory()])\n })\n this.cli.addCommand('build', 'Build this app for production usage', async () => {\n await this.emitter.emit('should-build')\n this.cli.log('Dist files built successfully in', this.config.getPublicDirectory())\n })\n this.cli.addCommand('reload', 'Rebuild the bundle clearing all cache', async () => {\n try {\n await this.emitter.emit('should-reload')\n this.cli.log('Bundle reloaded peacefully')\n } catch (_) {\n this.cli.log('Unable to reload the bundle', _)\n }\n })\n this.cli.replaceCommand('exit', 'Exit motion daemon', () => {\n this.emitter.emit('should-dispose')\n process.exit()\n })\n // TODO: Read manifest scripts and prompt to run them here\n }\n deactivate() {\n this.cli.deactivate()\n }\n log(...parameters: any) {\n this.cli.log(...parameters)\n }\n addSpinner(text: string) {\n const spinner = this.spinner\n if (spinner) {\n spinner.texts.push(text)\n spinner.instance.text = unique(spinner.texts).join(SPINNER_GLUE)\n } else {\n const instance = new Ora({\n text,\n color: 'yellow'\n })\n this.spinner = {\n texts: [text],\n instance\n }\n instance.start()\n }\n }\n removeSpinner(text: string) {\n const spinner = this.spinner\n if (spinner) {\n const index = spinner.texts.indexOf(text)\n if (index !== -1) {\n spinner.texts.splice(index, 1)\n }\n if (spinner.texts.length) {\n spinner.instance.text = unique(spinner.texts).join(SPINNER_GLUE)\n } else {\n this.removeAllSpinners()\n }\n }\n }\n removeAllSpinners() {\n const spinner = this.spinner\n if (spinner) {\n spinner.instance.stop()\n this.cli.instance.ui.refresh()\n }\n }\n onShouldBuild(callback: Function): Disposable {\n return this.emitter.on('should-build', callback)\n }\n onShouldReload(callback: Function): Disposable {\n return this.emitter.on('should-reload', callback)\n }\n onShouldDispose(callback: Function): Disposable {\n return this.emitter.on('should-dispose', callback)\n }\n dispose() {\n this.cli.dispose()\n this.subscriptions.dispose()\n }\n}\n"]}
\No newline at end of file