UNPKG

@storm-software/k8s-tools

Version:

Tools for managing Kubernetes (k8s) infrastructure within a Nx workspace.

106 lines (93 loc) 4.46 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _chunkTRNSRIONjs = require('./chunk-TRNSRION.js'); var _chunkHEVP2Q77js = require('./chunk-HEVP2Q77.js'); // src/generators/helm-dependency/generator.ts var _devkit = require('@nx/devkit'); var _jsyaml = require('js-yaml'); var _jsyaml2 = _interopRequireDefault(_jsyaml); async function helmDependencyGeneratorFn(tree, options, config) { _chunkHEVP2Q77js.writeDebug.call(void 0, "\u{1F4DD} Preparing to add Helm Dependency", config); const project = _devkit.readProjectConfiguration.call(void 0, tree, options.project); if (!_optionalChain([project, 'access', _ => _.targets, 'optionalAccess', _2 => _2["helm-package"]])) { throw new Error( `Project ${options.project} does not have a helm target. Please run the chart generator first.` ); } _devkit.updateProjectConfiguration.call(void 0, tree, options.project, addDependencyToConfig(project, options.repositoryName, options.repository) ); updateChartYaml( tree, project, options.chartName, options.chartVersion, options.repository ); if (options.format) { await _devkit.formatFiles.call(void 0, tree); } return { success: true }; } var generator_default = _chunkTRNSRIONjs.withRunGenerator.call(void 0, "Helm Dependency", helmDependencyGeneratorFn ); function addDependencyToConfig(project, name, url) { return { ...project, targets: { ...project.targets, helm: { ..._optionalChain([project, 'access', _3 => _3.targets, 'optionalAccess', _4 => _4["helm-package"]]), options: { ..._optionalChain([project, 'access', _5 => _5.targets, 'optionalAccess', _6 => _6["helm-package"], 'optionalAccess', _7 => _7.options]), dependencies: { ..._optionalChain([project, 'access', _8 => _8.targets, 'optionalAccess', _9 => _9["helm-package"], 'optionalAccess', _10 => _10.options, 'access', _11 => _11.dependencies]), repositories: _optionalChain([project, 'access', _12 => _12.targets, 'optionalAccess', _13 => _13["helm-package"], 'optionalAccess', _14 => _14.options, 'access', _15 => _15.dependencies, 'access', _16 => _16.repositories]) ? [ ...project.targets["helm-package"].options.dependencies.repositories, { name, url } ] : [{ name, url }] } } } } }; } function updateChartYaml(tree, project, name, version, repository) { const chartFolder = _optionalChain([project, 'access', _17 => _17.targets, 'optionalAccess', _18 => _18["helm-package"], 'optionalAccess', _19 => _19.options, 'access', _20 => _20.chartFolder]); const chartPath = `${chartFolder}/Chart.yaml`; if (!tree.exists(chartPath)) { throw new Error("Chart.yaml not found"); } try { const result = _optionalChain([tree, 'access', _21 => _21.read, 'call', _22 => _22(chartPath, "utf8"), 'optionalAccess', _23 => _23.toString, 'call', _24 => _24()]); if (!result) { throw new Error("Failed to read Chart.yaml"); } const chartContents = _jsyaml2.default.load(result); if (!chartContents.dependencies) { chartContents.dependencies = []; } const existingDependency = chartContents.dependencies.find( (dep) => dep.name === name ); if (existingDependency) { existingDependency.version = version; existingDependency.repository = repository; } else { chartContents.dependencies.push({ name, version, repository }); tree.write(chartPath, _jsyaml2.default.dump(chartContents)); } } catch (error) { console.error(error); throw new Error("Failed to parse Chart.yaml"); } } exports.helmDependencyGeneratorFn = helmDependencyGeneratorFn; exports.generator_default = generator_default;