@goldstack/utils-package
Version:
Utilities to work with Goldstack package configurations.
55 lines • 2.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildDeployCommands = exports.buildCli = exports.readPackageConfigFromDir = exports.readPackageConfig = exports.writePackageConfig = exports.getPackageConfigSchema = void 0;
const utils_config_1 = require("@goldstack/utils-config");
const configSchema_json_1 = __importDefault(require("./schemas/configSchema.json"));
const utils_sh_1 = require("@goldstack/utils-sh");
const path_1 = __importDefault(require("path"));
const console_1 = require("console");
const getPackageConfigSchema = () => {
return configSchema_json_1.default;
};
exports.getPackageConfigSchema = getPackageConfigSchema;
const writePackageConfig = (packageConfig, packagePath = './') => {
const schemaPath = packagePath + 'schemas/package.schema.json';
(0, utils_config_1.validateConfig)(packageConfig, JSON.parse((0, utils_sh_1.read)(schemaPath)), {
errorMessage: 'Cannot write package config since it is not valid.',
});
(0, utils_sh_1.write)(JSON.stringify(packageConfig, null, 2), packagePath + 'goldstack.json');
};
exports.writePackageConfig = writePackageConfig;
const readPackageConfig = (packagePath = './') => {
const schemaPath = packagePath + 'schemas/package.schema.json';
const config = (0, utils_config_1.parseConfig)((0, utils_sh_1.read)(packagePath + 'goldstack.json'), JSON.parse((0, utils_sh_1.read)(schemaPath)), {
errorMessage: 'Cannot load package configuration from ' + path_1.default.resolve(packagePath),
});
return config;
};
exports.readPackageConfig = readPackageConfig;
const readPackageConfigFromDir = (dir) => {
(0, console_1.assert)(dir.endsWith('/'));
return (0, exports.readPackageConfig)(dir);
};
exports.readPackageConfigFromDir = readPackageConfigFromDir;
const buildCli = (params) => {
return params.yargs
.scriptName('template')
.usage('$0 <infra|deploy>')
.command('infra <up|down|init|plan|apply|destroy|upgrade|terraform> <deployment>', 'Manage infrastructure for deployment', params.infraCommands)
.command('deploy <deployment>', 'Deploy to specified deployment', params.deployCommands);
};
exports.buildCli = buildCli;
const buildDeployCommands = () => {
return (yargs) => {
return yargs.positional('deployment', {
description: 'Name of the deployment where the package should be deployed to.',
type: 'string',
demandOption: true,
});
};
};
exports.buildDeployCommands = buildDeployCommands;
//# sourceMappingURL=utilsPackage.js.map