UNPKG

@decaf-ts/for-couchdb

Version:
42 lines 1.74 kB
import { CouchDBGroupOperator, CouchDBOperator } from "./constants.js"; import { QueryError } from "@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 */ export function translateOperators(operator) { for (const operators of [CouchDBOperator, CouchDBGroupOperator]) { const el = Object.keys(operators).find((k) => k === operator); if (el) return operators[el]; } throw new QueryError(`Could not find adapter translation for operator ${operator}`); } //# sourceMappingURL=translate.js.map