UNPKG

@decaf-ts/for-couchdb

Version:
45 lines 5.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.translateOperators = translateOperators; const constants_1 = require("./constants.cjs"); const core_1 = require("@decaf-ts/core"); /** * @description Translates core operators to CouchDB Mango operators * @summary Converts Decaf.ts core operators to their equivalent CouchDB Mango query operators * @param {GroupOperator | Operator} operator - The core operator to translate * @return {MangoOperator} The equivalent CouchDB Mango operator * @throws {QueryError} If no translation exists for the given operator * @function translateOperators * @memberOf module:for-couchdb * @mermaid * sequenceDiagram * participant Caller * participant translateOperators * participant CouchDBOperator * participant CouchDBGroupOperator * * Caller->>translateOperators: operator * * translateOperators->>CouchDBOperator: Check for match * alt Found in CouchDBOperator * CouchDBOperator-->>translateOperators: Return matching operator * translateOperators-->>Caller: Return MangoOperator * else Not found * translateOperators->>CouchDBGroupOperator: Check for match * alt Found in CouchDBGroupOperator * CouchDBGroupOperator-->>translateOperators: Return matching operator * translateOperators-->>Caller: Return MangoOperator * else Not found * translateOperators-->>Caller: Throw QueryError * end * end */ function translateOperators(operator) { for (const operators of [constants_1.CouchDBOperator, constants_1.CouchDBGroupOperator]) { const el = Object.keys(operators).find((k) => k === operator); if (el) return operators[el]; } throw new core_1.QueryError(`Could not find adapter translation for operator ${operator}`); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9DQSxnREFVQztBQTdDRCwrQ0FBb0U7QUFDcEUseUNBQTRDO0FBRzVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBa0M7SUFFbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxDQUFDLDJCQUFlLEVBQUUsZ0NBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE1BQU0sSUFBSSxpQkFBVSxDQUNsQixtREFBbUQsUUFBUSxFQUFFLENBQzlELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JvdXBPcGVyYXRvciwgT3BlcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJHcm91cE9wZXJhdG9yLCBDb3VjaERCT3BlcmF0b3IgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1hbmdvT3BlcmF0b3IgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHJhbnNsYXRlcyBjb3JlIG9wZXJhdG9ycyB0byBDb3VjaERCIE1hbmdvIG9wZXJhdG9yc1xuICogQHN1bW1hcnkgQ29udmVydHMgRGVjYWYudHMgY29yZSBvcGVyYXRvcnMgdG8gdGhlaXIgZXF1aXZhbGVudCBDb3VjaERCIE1hbmdvIHF1ZXJ5IG9wZXJhdG9yc1xuICogQHBhcmFtIHtHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3J9IG9wZXJhdG9yIC0gVGhlIGNvcmUgb3BlcmF0b3IgdG8gdHJhbnNsYXRlXG4gKiBAcmV0dXJuIHtNYW5nb09wZXJhdG9yfSBUaGUgZXF1aXZhbGVudCBDb3VjaERCIE1hbmdvIG9wZXJhdG9yXG4gKiBAdGhyb3dzIHtRdWVyeUVycm9yfSBJZiBubyB0cmFuc2xhdGlvbiBleGlzdHMgZm9yIHRoZSBnaXZlbiBvcGVyYXRvclxuICogQGZ1bmN0aW9uIHRyYW5zbGF0ZU9wZXJhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgdHJhbnNsYXRlT3BlcmF0b3JzXG4gKiAgIHBhcnRpY2lwYW50IENvdWNoREJPcGVyYXRvclxuICogICBwYXJ0aWNpcGFudCBDb3VjaERCR3JvdXBPcGVyYXRvclxuICogICBcbiAqICAgQ2FsbGVyLT4+dHJhbnNsYXRlT3BlcmF0b3JzOiBvcGVyYXRvclxuICogICBcbiAqICAgdHJhbnNsYXRlT3BlcmF0b3JzLT4+Q291Y2hEQk9wZXJhdG9yOiBDaGVjayBmb3IgbWF0Y2hcbiAqICAgYWx0IEZvdW5kIGluIENvdWNoREJPcGVyYXRvclxuICogICAgIENvdWNoREJPcGVyYXRvci0tPj50cmFuc2xhdGVPcGVyYXRvcnM6IFJldHVybiBtYXRjaGluZyBvcGVyYXRvclxuICogICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFJldHVybiBNYW5nb09wZXJhdG9yXG4gKiAgIGVsc2UgTm90IGZvdW5kXG4gKiAgICAgdHJhbnNsYXRlT3BlcmF0b3JzLT4+Q291Y2hEQkdyb3VwT3BlcmF0b3I6IENoZWNrIGZvciBtYXRjaFxuICogICAgIGFsdCBGb3VuZCBpbiBDb3VjaERCR3JvdXBPcGVyYXRvclxuICogICAgICAgQ291Y2hEQkdyb3VwT3BlcmF0b3ItLT4+dHJhbnNsYXRlT3BlcmF0b3JzOiBSZXR1cm4gbWF0Y2hpbmcgb3BlcmF0b3JcbiAqICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFJldHVybiBNYW5nb09wZXJhdG9yXG4gKiAgICAgZWxzZSBOb3QgZm91bmRcbiAqICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFRocm93IFF1ZXJ5RXJyb3JcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVPcGVyYXRvcnMoXG4gIG9wZXJhdG9yOiBHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3Jcbik6IE1hbmdvT3BlcmF0b3Ige1xuICBmb3IgKGNvbnN0IG9wZXJhdG9ycyBvZiBbQ291Y2hEQk9wZXJhdG9yLCBDb3VjaERCR3JvdXBPcGVyYXRvcl0pIHtcbiAgICBjb25zdCBlbCA9IE9iamVjdC5rZXlzKG9wZXJhdG9ycykuZmluZCgoaykgPT4gayA9PT0gb3BlcmF0b3IpO1xuICAgIGlmIChlbCkgcmV0dXJuIG9wZXJhdG9yc1tlbF07XG4gIH1cbiAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgYENvdWxkIG5vdCBmaW5kIGFkYXB0ZXIgdHJhbnNsYXRpb24gZm9yIG9wZXJhdG9yICR7b3BlcmF0b3J9YFxuICApO1xufVxuIl19