@pubgcorp/pk-template
Version:
p template engine for kubernetes
137 lines • 11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseEmptyStyles = exports.parseParametericStyle = void 0;
const createEmptyStyle = (type) => {
const style = [];
style.name = null;
style.type = type;
style.toMap = function () {
return this.reduce((sum, kv) => { sum[kv.k] = kv.v; return sum; }, {});
};
style.toMMap = function () {
return this.reduce((sum, kv) => { sum[kv.k] = (sum[kv.k] || []).push(kv.v); return sum; }, {});
};
style.parseName = function () {
const [names, type] = this.name.split('#', 2);
const [w1, w2] = names.split('/', 2);
return {
name: w2 ? w2 : w1,
namespace: w2 ? (w1 || null) : null,
type,
};
};
return style;
};
function* parseStyleString(styleType, s) {
let i = 0;
const end = () => i >= s.length;
const isSpace = () => s[i] === ' ' || s[i] === '\t' || s[i] === '\r' || s[i] === '\n';
const isLParen = () => s[i] === '(';
const isCommaRParen = () => s[i] === ',' || s[i] === ')';
const isEscLParen = () => i + 1 < s.length && s[i] === '\\' && s[i + 1] == '(';
const isEscCommaRParen = () => i + 1 < s.length && s[i] === '\\' && (s[i + 1] === ',' || s[i + 1] === ')');
const skipws = () => {
while (!end()) {
if (!isSpace())
return true;
i++;
}
return false;
};
const debug = false;
const log = (x, w) => console.log(x, '>>', i, `|${w}|`, `${s.substr(i)}`);
const getWordL = () => {
let w = '';
while (!end() && !isSpace() && !isLParen()) {
if (isEscLParen()) {
i++;
}
w += s[i++];
}
if (debug)
log('arg ', w);
return w;
};
const getWordCR = () => {
let w = '';
while (!end() && !isCommaRParen()) {
if (isEscCommaRParen()) {
i++;
}
w += s[i++];
}
if (debug)
log('args', w);
return w;
};
while (true) {
if (!skipws())
return;
const style = createEmptyStyle(styleType);
style.name = getWordL();
if (!skipws()) {
yield style;
return;
}
if (isLParen()) {
i++;
if (!skipws()) {
throw new Error(`malformed style 1 '${s}'`);
}
while (true) {
const w = getWordCR().trim(); // eol | ',' | ')'
if (end()) {
throw new Error(`malformed style 2 '${s}'`);
}
const sp = w.split('=', 2);
style.push({ k: sp[0], v: sp.length == 1 ? sp[0] : sp[1], kv: w });
if (s[i++] === ')') {
break;
}
if (!skipws()) {
throw new Error(`malformed style 3 '${s}'`);
}
}
yield style;
}
else {
yield style;
}
}
}
function parseParametericStyle(styleType, style) {
const styles = [];
if (Array.isArray(style)) {
for (const line of style) {
const it = parseStyleString(styleType, line.toString());
while (true) {
const r = it.next();
if (r.done) {
break;
}
r.value.type = styleType;
styles.push(r.value);
}
}
}
else {
const it = parseStyleString(styleType, style.toString());
while (true) {
const r = it.next();
if (r.done) {
break;
}
r.value.type = styleType;
styles.push(r.value);
}
}
return styles;
}
exports.parseParametericStyle = parseParametericStyle;
const parseEmptyStyles = (line) => {
return line.split(/\s+/)
.filter((p) => p)
.map(createEmptyStyle);
};
exports.parseEmptyStyles = parseEmptyStyles;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGstdGVtcGxhdGUvc3R5bGVzL3N0eWxlUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRTtJQUNoRCxNQUFNLEtBQUssR0FBUSxFQUFFLENBQUM7SUFDdEIsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbEIsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsS0FBSyxDQUFDLEtBQUssR0FBRztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUMsQ0FBQztJQUNGLEtBQUssQ0FBQyxNQUFNLEdBQUc7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0csQ0FBQyxDQUFDO0lBQ0YsS0FBSyxDQUFDLFNBQVMsR0FBRztRQUNoQixNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztR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