@k8ts/instruments
Version:
A collection of utilities and core components for k8ts.
31 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createResourceParser = createResourceParser;
const parjs_1 = require("parjs");
const combinators_1 = require("parjs/combinators");
function createResourceParser(pUnitValue) {
const pSpaces = (0, parjs_1.space)().pipe((0, combinators_1.many)());
const rSeparator = (0, parjs_1.string)("->").pipe((0, combinators_1.between)(pSpaces));
const arrowExprParser = pUnitValue.parser.pipe((0, combinators_1.manySepBy)(rSeparator, 2), (0, combinators_1.must)(x => {
if (x.length !== 2) {
return {
kind: "Hard",
reason: "Expected exactly 2 values"
};
}
return true;
}), (0, combinators_1.map)(([a, b]) => {
return {
request: a,
limit: b
};
}));
const equalsExprParser = (0, parjs_1.string)("=").pipe((0, combinators_1.qthen)(pUnitValue.parser), (0, combinators_1.map)(x => {
return {
request: x,
limit: x
};
}));
return equalsExprParser.pipe((0, combinators_1.or)(arrowExprParser));
}
//# sourceMappingURL=parser.js.map