UNPKG

@axway/amplify-central-apigee-extension

Version:

Create AMPLIFY Central resources from Apigee API Proxies

43 lines (38 loc) 1.63 kB
//@ts-ignore import { snooplogg } from "cli-kit"; import { outputJsonSync, readJsonSync } from "fs-extra"; import { Config, ConfigKeys } from "../../../types"; import { configFilePath } from "../../utils"; type args = { argv: Partial<Config>; console: Console; }; const { log } = snooplogg("apigee-extension: config: set"); export const set = { action: ({ argv }: args) => { log("Setting config"); if (Object.values(ConfigKeys).some((k) => (Object.keys(argv) as Array<keyof Config>).includes(k))) { const config: Partial<Config> = readJsonSync(configFilePath); (Object.keys(argv) as Array<keyof Config>).forEach((k) => { const isConfig = Object.values(ConfigKeys).includes(k); if (isConfig && argv[k] !== undefined) { log(`Overriding config for ${k}`); log(`Current: ${config[k]}. New: ${argv[k]}`); config[k] = argv[k]; } }); log(`Writing updated config file: ${configFilePath}`); outputJsonSync(configFilePath, config); } else throw new Error("Missing required configuration properties to set"); }, desc: "Set AMPLIFY Central apigee-extension configuration", aliases: ["set"], options: { "--organization-id [value]": "Required: Set your Apigee Organization ID", "--username [value]": "Required: Set your Apigee Username", "--password [value]": "Required: Set your Apigee Password", "--output-dir [value]": "Set absolute path for output directory", "--environment-name [value]": "Required: Set environment name to create", "--icon [value]": "Set absolute path for custom icon", }, };