pk-template
Version:
p template engine for kubernetes
45 lines • 4.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const buildPredicate = (src) => {
const nv = src.split('=');
if (nv.length > 1) {
const lname = nv[0];
const value = nv[1];
if (lname[0] === '!') {
const aname = lname.substring(1);
return (object) => object.metadata &&
object.metadata.annotations &&
(value === '*'
? aname in object.metadata.annotations
: object.metadata.annotations[aname] === value);
}
return (object) => object.metadata &&
object.metadata.labels &&
(value === '*'
? lname in object.metadata.labels
: object.metadata.labels[lname] === value);
}
else if (src[0] === '.') {
const name = src.substr(1);
return (object) => object.metadata &&
object.metadata.name == name;
}
else {
return (object) => src === '*' ? true : object.kind === src;
}
};
const selectors = {
compileOne: (src) => {
const predicates = src.split(/\s+/).map(buildPredicate);
return (object) => predicates.every(pred => pred(object));
},
compile: (src) => {
if (typeof src === 'string') {
src = [src];
}
const predicates = src.map(selectors.compileOne);
return (object) => predicates.some(pred => pred(object));
}
};
exports.default = selectors;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BrLXRlbXBsYXRlL3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBVyxFQUFtQixFQUFFO0lBQ3RELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUIsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNqQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2hDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUNyQixNQUFNLENBQUMsUUFBUTtnQkFDZixNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVc7Z0JBQzNCLENBQ0UsS0FBSyxLQUFLLEdBQUc7b0JBQ1gsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVc7b0JBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQ2pELENBQUM7U0FDTDtRQUNELE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUNyQixNQUFNLENBQUMsUUFBUTtZQUNmLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUN0QixDQUNFLEtBQUssS0FBSyxHQUFHO2dCQUNYLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNO2dCQUNqQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUM1QyxDQUFDO0tBQ0w7U0FBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDekIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FDckIsTUFBTSxDQUFDLFFBQVE7WUFDZixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUM7S0FDbEU7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRztJQUNoQixVQUFVLEVBQUUsQ0FBQyxHQUFXLEVBQW1CLEVBQUU7UUFDM0MsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFzQixFQUFtQixFQUFFO1FBQ25ELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQzNCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7UUFDRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGLENBQUM7QUFFRixrQkFBZSxTQUFTLENBQUMifQ==