@decaf-ts/for-couchdb
Version:
decaf-ts couchdb wrappers
46 lines • 1.91 kB
JavaScript
;
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