pk-template
Version:
p template engine for kubernetes
135 lines • 10.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
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;
exports.parseEmptyStyles = (line) => {
return line.split(/\s+/)
.filter((p) => p)
.map(createEmptyStyle);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGstdGVtcGxhdGUvc3R5bGVzL3N0eWxlUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFO0lBQ2hELE1BQU0sS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUN0QixLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsQixLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUVsQixLQUFLLENBQUMsS0FBSyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQyxDQUFDO0lBQ0YsS0FBSyxDQUFDLE1BQU0sR0FBRztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFPLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDLENBQUM7SUFDRixLQUFLLENBQUMsU0FBUyxHQUFHO1FBQ2hCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FB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