UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

63 lines 2.95 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = require("debug"); const open_1 = require("../open"); const overrides_1 = require("../overrides"); const util_1 = require("../util"); const fetchers_1 = require("../fetchers"); const usage = require("../../usage"); const persisters_1 = require("../persisters"); const debug = debug_1.default('plugins/editor/cmds/edit'); const editCmd = ({ tab, argvNoOptions = [], parsedOptions = {}, execOptions }) => __awaiter(void 0, void 0, void 0, function* () { debug('edit command execution started', execOptions); const { parameters: programmaticArgs } = execOptions; const positionalName = argvNoOptions[argvNoOptions.indexOf('edit') + 1]; const name = (programmaticArgs && programmaticArgs.name) || positionalName; if (positionalName && positionalName.charAt(0) === '!') { if (programmaticArgs.filepath) { programmaticArgs.persister = persisters_1.persisters.files; } programmaticArgs.exec = { kind: parsedOptions.language, code: programmaticArgs[positionalName.slice(1)] }; } debug('name', name); const [entity, injectEntityIntoView] = yield Promise.all([ programmaticArgs || fetchers_1.fetchEntity(tab, name, parsedOptions, execOptions), open_1.default(tab, name, parsedOptions, execOptions) ]); overrides_1.default(parsedOptions)(entity); const model = yield injectEntityIntoView(entity); const custom = execOptions.custom; const lock = (custom && custom.lock) || (entity.lock !== undefined ? entity.lock : entity.gotoReadonlyView); return util_1.default(lock ? [lock] : [])(model); }); exports.edit = (tab, entity, options, execOptions) => editCmd({ tab, argvNoOptions: [], parsedOptions: options, execOptions: Object.assign({}, execOptions, { parameters: entity, custom: undefined, noSidecarHeader: true }) }); exports.default = (commandTree) => __awaiter(void 0, void 0, void 0, function* () { commandTree.listen('/edit', editCmd, { usage: usage.editUsage('edit'), noAuthOk: true, inBrowserOk: true, needsUI: true }); }); //# sourceMappingURL=edit.js.map