UNPKG

@kui-shell/plugin-tekton

Version:
50 lines 2.54 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 debug = debug_1.default('plugins/tekton/lib/read'); const knownKinds = /PipelineResource|Pipeline|Task/; exports.parse = (raw) => __awaiter(void 0, void 0, void 0, function* () { const { safeLoadAll } = yield Promise.resolve().then(() => require('js-yaml')); return safeLoadAll(yield raw).filter(_ => knownKinds.test(_.kind)); }); exports.read = (tab, filepath) => __awaiter(void 0, void 0, void 0, function* () { const stats = (yield tab.REPL.rexec(`fstat ${tab.REPL.encodeComponent(filepath)} --with-data`)) .content; return stats.data; }); exports.fetchTask = (tab, pipelineName, taskName, filepath) => __awaiter(void 0, void 0, void 0, function* () { if (filepath) { const model = yield exports.parse(exports.read(tab, filepath)); const task = taskName ? model.find(_ => _.kind === 'Task' && _.metadata.name === taskName) : model.filter(_ => _.kind === 'Task'); return task; } else if (!taskName) { const pipeline = yield tab.REPL.pexec(`kubectl get Pipeline ${tab.REPL.encodeComponent(pipelineName)}`).catch(err => { debug('got error fetching pipeline', err); return { spec: { tasks: [] } }; }); const referencedTasks = pipeline.spec.tasks.reduce((M, _) => { M[_.taskRef.name] = true; return M; }, {}); debug('referencedTasks', referencedTasks); return tab.REPL.qexec(`kubectl get Task`, undefined, undefined, { filter: listOfTasks => listOfTasks.filter(_ => referencedTasks[_.name]) }); } else { return tab.REPL.pexec(`kubectl get Task ${tab.REPL.encodeComponent(taskName)}`); } }); //# sourceMappingURL=read.js.map