UNPKG

@decaf-ts/for-couchdb

Version:
46 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.translateOperators = translateOperators; const constants_js_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_js_1.CouchDBOperator, constants_js_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=translate.js.map //# sourceMappingURL=translate.cjs.map