@kui-shell/plugin-tekton
Version:
Visualizations for Tekton Pipelines
50 lines • 2.54 kB
JavaScript
;
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