@amaui/utils
Version:
37 lines (36 loc) • 1.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const is_1 = __importDefault(require("./is"));
const getStringVariables_1 = __importDefault(require("./getStringVariables"));
const optionsDefault = {
getVariables: true,
cleanVariables: true,
placeholderPrefix: '_',
};
const setStringVariables = (value, variablesToValue = [], options_ = {}) => {
const options = Object.assign(Object.assign({}, optionsDefault), options_);
if ((0, is_1.default)('string', value)) {
let newValue = value;
let stringVariables = { variables: variablesToValue.map(variable => variable.key) };
if (options.getVariables) {
stringVariables = (0, getStringVariables_1.default)(value, {
cleanVariables: options.cleanVariables,
placeholderPrefix: options.placeholderPrefix,
});
newValue = stringVariables.valueWithPlaceholders;
}
stringVariables.variables.forEach((variable, index) => {
const variableItem = variablesToValue.find(item => item.key === variable);
if (variableItem) {
const variableValue = variableItem.value;
if (variableValue !== undefined)
newValue = newValue.replace(new RegExp(`\\${options.placeholderPrefix}${index}`), variableValue);
}
});
return newValue;
}
};
exports.default = setStringVariables;