12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const tslib_1 = require("tslib");
- const chalk_1 = require("chalk");
- class Environment {
- constructor({ bottomBar, client, config, daemon, events, flags, hooks, log, meta, namespace, plugins, project, prompt, session, shell, tasks, telemetry, }) {
- this.bottomBar = bottomBar;
- this.client = client;
- this.config = config;
- this.daemon = daemon;
- this.events = events;
- this.flags = flags;
- this.hooks = hooks;
- this.log = log;
- this.meta = meta;
- this.namespace = namespace;
- this.plugins = plugins;
- this.project = project;
- this.prompt = prompt;
- this.session = session;
- this.shell = shell;
- this.tasks = tasks;
- this.telemetry = telemetry;
- }
- load(p) {
- return require(p);
- }
- open() {
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
- if (this.flags.interactive) {
- if (!this.bottomBar) {
- const inquirer = require('inquirer');
- this.bottomBar = new inquirer.ui.BottomBar();
- }
- try {
- // the mute() call appears to be necessary, otherwise when answering
- // inquirer prompts upon pressing enter, a copy of the prompt is
- // printed to the screen and looks gross
- const bottomBarHack = this.bottomBar;
- bottomBarHack.rl.output.mute();
- }
- catch (e) {
- console.error('EXCEPTION DURING BOTTOMBAR OUTPUT MUTE', e);
- }
- }
- this.log.stream = typeof this.bottomBar === 'undefined' ? process.stdout : this.bottomBar.log;
- });
- }
- close() {
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
- this.tasks.cleanup();
- // instantiating inquirer.ui.BottomBar hangs, so when close() is called,
- // we close BottomBar streams and replace the log stream with stdout.
- // This means inquirer shouldn't be used after command execution finishes
- // (which could happen during long-running processes like serve).
- if (this.bottomBar) {
- this.bottomBar.close();
- this.bottomBar = undefined;
- this.log.stream = process.stdout;
- }
- });
- }
- runCommand(pargv, opts = {}) {
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
- if (typeof opts.showExecution === 'undefined') {
- opts.showExecution = true;
- }
- if (opts.showExecution) {
- this.log.msg(`> ${chalk_1.default.green([this.namespace.name, ...pargv].map(a => a.includes(' ') ? `"${a}"` : a).join(' '))}`);
- }
- yield this.namespace.runCommand(this, pargv);
- });
- }
- }
- exports.Environment = Environment;
|