UNPKG

@k8ts/instruments

Version:

A collection of utilities and core components for k8ts.

31 lines 1.19 kB
"use strict"; 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