kui-shell
Version:
This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool
64 lines • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = require("debug");
const ascii_to_table_1 = require("@kui-shell/core/webapp/util/ascii-to-table");
const debug = debug_1.default('plugin/operator-framework/view/modes/crds');
function isCRDBearer(resource) {
const bearer = resource;
return (bearer !== undefined &&
bearer.spec !== undefined &&
bearer.spec.customresourcedefinitions !== undefined &&
bearer.spec.customresourcedefinitions.owned !== undefined);
}
exports.crdsMode = {
when: isCRDBearer,
mode: (command, resource) => {
try {
return {
mode: 'CRDs',
leaveBottomStripeAlone: true,
direct: {
plugin: 'operator-framework/dist/index',
operation: 'renderAndViewCrds',
parameters: { command, resource }
}
};
}
catch (err) {
debug('error rendering crds button');
console.error(err);
}
}
};
function toTable(resource) {
return {
title: 'CRDs',
header: {
name: 'NAME',
outerCSS: ascii_to_table_1.outerCSSForKey.NAME,
css: ascii_to_table_1.cssForKey.NAME,
attributes: [{ value: 'KIND' }, { value: 'VERSION', outerCSS: ascii_to_table_1.outerCSSForKey.AGE }, { value: 'DESCRIPTION' }]
},
body: resource.spec.customresourcedefinitions.owned.map(spec => ({
name: spec.name,
outerCSS: ascii_to_table_1.outerCSSForKey.NAME,
css: ascii_to_table_1.cssForKey.NAME,
attributes: [
{ key: 'KIND', value: spec.kind },
{
key: 'VERSION',
value: spec.version,
outerCSS: ascii_to_table_1.outerCSSForKey.AGE,
css: ascii_to_table_1.cssForKey.AGE
},
{ key: 'DESCRIPTION', value: spec.description, css: 'pre-wrap' }
]
}))
};
}
exports.renderAndView = (tab, parameters) => {
const { command, resource } = parameters;
debug('renderAndView', command, resource);
return toTable(resource.resource);
};
//# sourceMappingURL=crds.js.map