mono/packages/commons/dist/variables.js
2025-02-07 23:42:16 +01:00

51 lines
5.3 KiB
JavaScript

import { REGEX_VAR, REGEX_VAR_ALT } from "@polymech/core/constants";
import { DEFAULT_ROOTS } from './config.js';
export const DATE_VARS = () => {
return {
YYYY: new Date(Date.now()).getFullYear(),
MM: new Date(Date.now()).getMonth() + 1,
DD: new Date(Date.now()).getDate(),
HH: new Date(Date.now()).getHours(),
SS: new Date(Date.now()).getSeconds()
};
};
export const _substitute = (template, map, keep = true, alt = false) => {
const transform = (k) => k || '';
return template.replace(alt ? REGEX_VAR_ALT : REGEX_VAR, (match, key, format) => {
if (map[key]) {
return transform(map[key]).toString();
}
else if (map[key.replace(/-/g, '_')]) {
return transform(map[key.replace(/-/g, '_')]).toString();
}
else if (keep) {
return "${" + key + "}";
}
else {
return "";
}
});
};
export const substitute = (alt, template, vars = {}, keep = true) => alt ? _substitute(template, vars, keep, alt) : _substitute(template, vars, keep, alt);
export const DEFAULT_VARS = (vars) => {
return {
...DEFAULT_ROOTS,
...DATE_VARS(),
...vars
};
};
export const resolveVariables = (path, alt = false, vars = {}, keep = false) => substitute(alt, path, DEFAULT_VARS(vars), keep);
export const resolve = (path, alt = false, vars = {}, keep = false) => resolveVariables(path, alt, vars, keep);
export const template = (path, vars = {}, keep = false, depth = 3) => {
const map = DEFAULT_VARS(vars);
let oldValue = path;
let newValue = resolve(oldValue, false, map);
let iterationCount = 0;
while (newValue !== oldValue && iterationCount < depth) {
iterationCount++;
oldValue = newValue;
newValue = resolve(oldValue, false, map, keep);
}
return newValue;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRW5FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFM0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtJQUMxQixPQUFPO1FBQ0gsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRTtRQUN4QyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUN2QyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO1FBQ2xDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtLQUN4QyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQXdCLEVBQUUsT0FBZ0IsSUFBSSxFQUFFLE1BQWUsS0FBSyxFQUFFLEVBQUU7SUFDMUcsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDaEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FB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