sls-dev-tools
Version:
The Dev Tools for the Serverless World
43 lines (34 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.replaceStacknameOpt = exports.transformArgsToDict = exports.CYAN_STRING_FORMAT = void 0;
const OPT_REGEX = /\$\{opt:[^{}$]+\}/;
const OPT_REGEX_GLOBAL = /\$\{opt:[^{}$]+\}/g;
const REMOVE_BRACKETS_REGEX = /[${}]/g;
const CYAN_STRING_FORMAT = "\x1b[36m%s\x1b[0m";
exports.CYAN_STRING_FORMAT = CYAN_STRING_FORMAT;
const transformArgsToDict = args => {
const options = {};
for (let i = 0; i < args.length; i += 2) {
const key = args[i].replace(/^-+/, "");
options[key] = args[i + 1];
}
return options;
};
exports.transformArgsToDict = transformArgsToDict;
const replaceStacknameOpt = (stackname, cmdOptions) => {
if (!stackname.match(OPT_REGEX)) return stackname;
const variables = stackname.match(OPT_REGEX_GLOBAL);
variables.forEach(variable => {
variable = variable.replace(REMOVE_BRACKETS_REGEX, "");
const varName = variable.split(":")[1];
if (cmdOptions[varName] === undefined) {
console.error(CYAN_STRING_FORMAT, `Your project requires stack name option --${varName} to be passed when starting sls-dev-tools`);
process.exit(9);
}
stackname = stackname.replace(OPT_REGEX, cmdOptions[varName]);
});
return stackname;
};
exports.replaceStacknameOpt = replaceStacknameOpt;