@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
JavaScript
;
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;