UNPKG

arangojs

Version:

The official ArangoDB JavaScript driver.

46 lines 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const collection_1 = require("./collection"); function isAqlQuery(query) { return Boolean(query && query.query && query.bindVars); } exports.isAqlQuery = isAqlQuery; function isAqlLiteral(literal) { return Boolean(literal && typeof literal.toAQL === "function"); } exports.isAqlLiteral = isAqlLiteral; function aql(strings, ...args) { const bindVars = {}; const bindVals = []; let query = strings[0]; for (let i = 0; i < args.length; i++) { const rawValue = args[i]; let value = rawValue; if (isAqlLiteral(rawValue)) { query += `${rawValue.toAQL()}${strings[i + 1]}`; continue; } const index = bindVals.indexOf(rawValue); const isKnown = index !== -1; let name = `value${isKnown ? index : bindVals.length}`; if (collection_1.isArangoCollection(rawValue)) { name = `@${name}`; value = rawValue.name; } if (!isKnown) { bindVals.push(rawValue); bindVars[name] = value; } query += `@${name}${strings[i + 1]}`; } return { query, bindVars }; } exports.aql = aql; (function (aql) { aql.literal = (value) => ({ toAQL() { return String(value); } }); })(aql = exports.aql || (exports.aql = {})); //# sourceMappingURL=aql-query.js.map