@storm-software/k8s-tools
Version:
Tools for managing Kubernetes (k8s) infrastructure within a Nx workspace.
161 lines (146 loc) • 6.23 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } 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; }// ../workspace-tools/src/utils/package-helpers.ts
var _devkit = require('@nx/devkit');
// ../config-tools/src/utilities/toml.ts
var _jtoml = require('@ltd/j-toml'); var _jtoml2 = _interopRequireDefault(_jtoml);
function parseCargoToml(cargoString) {
if (!cargoString) {
throw new Error("Cargo.toml is empty");
}
return _jtoml2.default.parse(cargoString, {
x: { comment: true }
});
}
// ../workspace-tools/src/utils/package-helpers.ts
var _child_process = require('child_process');
var _fs = require('fs');
var _promises = require('fs/promises');
var _path = require('path');
var _prettier = require('prettier');
// ../workspace-tools/src/utils/project-tags.ts
var ProjectTagConstants = {
Language: {
TAG_ID: "language",
TYPESCRIPT: "typescript",
RUST: "rust"
},
ProjectType: {
TAG_ID: "type",
LIBRARY: "library",
APPLICATION: "application"
},
DistStyle: {
TAG_ID: "dist-style",
NORMAL: "normal",
CLEAN: "clean"
},
Provider: {
TAG_ID: "provider"
},
Platform: {
TAG_ID: "platform",
NODE: "node",
BROWSER: "browser",
NEUTRAL: "neutral",
WORKER: "worker"
},
Registry: {
TAG_ID: "registry",
CARGO: "cargo",
NPM: "npm",
CONTAINER: "container",
CYCLONE: "cyclone"
},
Plugin: {
TAG_ID: "plugin"
}
};
var formatProjectTag = (variant, value) => {
return `${variant}:${value}`;
};
var hasProjectTag = (project, variant) => {
project.tags = _nullishCoalesce(project.tags, () => ( []));
const prefix = formatProjectTag(variant, "");
return project.tags.some(
(tag) => tag.startsWith(prefix) && tag.length > prefix.length
);
};
var getProjectTag = (project, variant) => {
if (!hasProjectTag(project, variant)) {
return void 0;
}
project.tags = _nullishCoalesce(project.tags, () => ( []));
const prefix = formatProjectTag(variant, "");
const tag = project.tags.find((tag2) => tag2.startsWith(prefix));
return _optionalChain([tag, 'optionalAccess', _ => _.replace, 'call', _2 => _2(prefix, "")]);
};
var isEqualProjectTag = (project, variant, value) => {
const tag = getProjectTag(project, variant);
return !!(tag && _optionalChain([tag, 'optionalAccess', _3 => _3.toUpperCase, 'call', _4 => _4()]) === value.toUpperCase());
};
var addProjectTag = (project, variant, value, options = {
overwrite: false
}) => {
project.tags = _nullishCoalesce(project.tags, () => ( []));
if (options.overwrite || !hasProjectTag(project, variant)) {
project.tags = project.tags.filter(
(tag) => !tag.startsWith(formatProjectTag(variant, ""))
);
project.tags.push(formatProjectTag(variant, value));
}
};
var addPluginProjectTag = (project, plugin) => {
project.tags = _nullishCoalesce(project.tags, () => ( []));
project.tags.push(
formatProjectTag(ProjectTagConstants.Plugin.TAG_ID, plugin)
);
};
var setDefaultProjectTags = (project, plugin) => {
project.tags = _nullishCoalesce(project.tags, () => ( []));
addProjectTag(
project,
ProjectTagConstants.ProjectType.TAG_ID,
project.projectType === "application" ? ProjectTagConstants.ProjectType.APPLICATION : ProjectTagConstants.ProjectType.LIBRARY,
{ overwrite: true }
);
addProjectTag(
project,
ProjectTagConstants.DistStyle.TAG_ID,
project.targets && Object.keys(project.targets).includes("clean-package") ? ProjectTagConstants.DistStyle.CLEAN : ProjectTagConstants.DistStyle.NORMAL,
{ overwrite: true }
);
addProjectTag(
project,
ProjectTagConstants.Platform.TAG_ID,
_optionalChain([project, 'access', _5 => _5.targets, 'optionalAccess', _6 => _6.build, 'optionalAccess', _7 => _7.options, 'access', _8 => _8.platform]) === "node" ? ProjectTagConstants.Platform.NODE : _optionalChain([project, 'access', _9 => _9.targets, 'optionalAccess', _10 => _10.build, 'optionalAccess', _11 => _11.options, 'access', _12 => _12.platform]) === "worker" ? ProjectTagConstants.Platform.WORKER : _optionalChain([project, 'access', _13 => _13.targets, 'optionalAccess', _14 => _14.build, 'optionalAccess', _15 => _15.options, 'access', _16 => _16.platform]) === "browser" ? ProjectTagConstants.Platform.BROWSER : ProjectTagConstants.Platform.NEUTRAL,
{ overwrite: false }
);
if (plugin) {
addPluginProjectTag(project, plugin);
}
};
// ../workspace-tools/src/utils/package-helpers.ts
var getPackageInfo = (project) => {
if (isEqualProjectTag(
project,
ProjectTagConstants.Language.TAG_ID,
ProjectTagConstants.Language.RUST
) && _fs.existsSync.call(void 0, _devkit.joinPathFragments.call(void 0, project.root, "Cargo.toml"))) {
return {
type: "Cargo.toml",
content: parseCargoToml(_devkit.joinPathFragments.call(void 0, project.root, "Cargo.toml"))
};
} else if (isEqualProjectTag(
project,
ProjectTagConstants.Language.TAG_ID,
ProjectTagConstants.Language.TYPESCRIPT
) && _fs.existsSync.call(void 0, _devkit.joinPathFragments.call(void 0, project.root, "package.json"))) {
return {
type: "package.json",
content: _devkit.readJsonFile.call(void 0,
_devkit.joinPathFragments.call(void 0, project.root, "package.json")
)
};
}
return null;
};
exports.ProjectTagConstants = ProjectTagConstants; exports.hasProjectTag = hasProjectTag; exports.isEqualProjectTag = isEqualProjectTag; exports.setDefaultProjectTags = setDefaultProjectTags; exports.getPackageInfo = getPackageInfo;