UNPKG

@kubiklabs/wasmkit

Version:

Wasmkit is a development environment to compile, deploy, test, run cosmwasm contracts on different networks.

54 lines (53 loc) 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEnvRuntimeArgs = exports.getEnvVariablesMap = exports.paramNameToEnvVariable = void 0; const arguments_parser_1 = require("../../cli/arguments-parser"); const unsafe_1 = require("../../util/unsafe"); const errors_1 = require("../errors"); const errors_list_1 = require("../errors-list"); const WASMKIT_ENV_ARGUMENT_PREFIX = "WASMKIT_"; function paramNameToEnvVariable(paramName) { // We create it starting from the result of ArgumentsParser.paramNameToCLA // so it's easier to explain and understand their equivalences. return arguments_parser_1.ArgumentsParser.paramNameToCLA(paramName) .replace(arguments_parser_1.ArgumentsParser.PARAM_PREFIX, WASMKIT_ENV_ARGUMENT_PREFIX) .replace(/-/g, "_") .toUpperCase(); } exports.paramNameToEnvVariable = paramNameToEnvVariable; function getEnvVariablesMap(runtimeArgs) { const values = {}; for (const [name, value] of Object.entries(runtimeArgs)) { if (value === undefined) { continue; } values[paramNameToEnvVariable(name)] = value.toString(); } return values; } exports.getEnvVariablesMap = getEnvVariablesMap; function getEnvRuntimeArgs(paramDefinitions, envVariables) { const envArgs = {}; // eslint-disable-line for (const paramName of (0, unsafe_1.unsafeObjectKeys)(paramDefinitions)) { const definition = paramDefinitions[paramName]; const envVarName = paramNameToEnvVariable(paramName); const rawValue = envVariables[envVarName]; if (rawValue !== undefined) { try { envArgs[paramName] = definition.type.parse(paramName, rawValue); } catch (error) { throw new errors_1.WasmkitError(errors_list_1.ERRORS.ARGUMENTS.INVALID_ENV_VAR_VALUE, { varName: envVarName, value: rawValue }, error); } } else { envArgs[paramName] = definition.defaultValue; } } delete envArgs.config; return envArgs; } exports.getEnvRuntimeArgs = getEnvRuntimeArgs;