UNPKG

@goldstack/utils-package

Version:

Utilities to work with Goldstack package configurations.

55 lines 2.73 kB
"use strict"; 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