UNPKG

@kui-shell/plugin-tekton

Version:
48 lines 2.41 kB
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()); }); }; import Debug from 'debug'; const debug = Debug('plugins/tekton/lib/read'); const knownKinds = /PipelineResource|Pipeline|Task/; export const parse = (raw) => __awaiter(void 0, void 0, void 0, function* () { const { safeLoadAll } = yield import('js-yaml'); return safeLoadAll(yield raw).filter(_ => knownKinds.test(_.kind)); }); export const 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; }); export const fetchTask = (tab, pipelineName, taskName, filepath) => __awaiter(void 0, void 0, void 0, function* () { if (filepath) { const model = yield parse(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