UNPKG

aquameta-datum

Version:

Service layer for the Aquameta database API

41 lines (36 loc) 5 kB
import executeEndpoint from './endpoint.js'; import { compose, cond, curry, when, T } from 'ramda'; import { isEndpointClient, isInvalidClient } from '../client.js'; import { isInvalidExecutable } from '../database/index.js'; /** * query * * Execute the given query with a client * * @curried * @params {Client} client * @params {ExecutableQuery} query * @returns {Promise} */ export default curry(async function (client, query) { // Runtime validations if (isInvalidClient(client)) { throw new TypeError('query: invalid client'); } if (isInvalidExecutable(query)) { throw new TypeError('query: invalid executable'); } try { const res = await invoke(client, query); return res; } catch (e) { console.error(e); } }); // TODO const makeEvented = i => i; const execute = cond([false && [isConnectionClient, executeConnection], [isEndpointClient, executeEndpoint], [T, () => { throw new Error('must specify endpoint or connection for client'); }]].filter(Boolean)); const getKey = curry((key, obj) => obj[key]); const invoke = compose(when(getKey('evented'), makeEvented), execute); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4ZWN1dGVFbmRwb2ludCIsImNvbXBvc2UiLCJjb25kIiwiY3VycnkiLCJ3aGVuIiwiVCIsImlzRW5kcG9pbnRDbGllbnQiLCJpc0ludmFsaWRDbGllbnQiLCJpc0ludmFsaWRFeGVjdXRhYmxlIiwiY2xpZW50IiwicXVlcnkiLCJUeXBlRXJyb3IiLCJyZXMiLCJpbnZva2UiLCJlIiwiY29uc29sZSIsImVycm9yIiwibWFrZUV2ZW50ZWQiLCJpIiwiZXhlY3V0ZSIsImlzQ29ubmVjdGlvbkNsaWVudCIsImV4ZWN1dGVDb25uZWN0aW9uIiwiRXJyb3IiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZ2V0S2V5Iiwia2V5Iiwib2JqIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFQLE1BQTRCLGVBQTVCO0FBRUEsU0FBUUMsT0FBUixFQUFpQkMsSUFBakIsRUFBdUJDLEtBQXZCLEVBQThCQyxJQUE5QixFQUFvQ0MsQ0FBcEMsUUFBNEMsT0FBNUM7QUFDQSxTQUVFQyxnQkFGRixFQUdFQyxlQUhGLFFBSU8sY0FKUDtBQUtBLFNBQVFDLG1CQUFSLFFBQWtDLHNCQUFsQzs7QUFJQTs7Ozs7Ozs7OztBQVVBLGVBQWVMLEtBQUssQ0FBQyxnQkFBZU0sTUFBZixFQUErQkMsS0FBL0IsRUFBeUQ7QUFDNUU7QUFDQSxNQUFJSCxlQUFlLENBQUNFLE1BQUQsQ0FBbkIsRUFBNkI7QUFDM0IsVUFBTSxJQUFJRSxTQUFKLENBQWMsdUJBQWQsQ0FBTjtBQUNEOztBQUNELE1BQUlILG1CQUFtQixDQUFDRSxLQUFELENBQXZCLEVBQWdDO0FBQzlCLFVBQU0sSUFBSUMsU0FBSixDQUFjLDJCQUFkLENBQU47QUFDRDs7QUFFRCxNQUFJO0FBQ0YsVUFBTUMsR0FBRyxHQUFHLE1BQU1DLE1BQU0sQ0FBQ0osTUFBRCxFQUFTQyxLQUFULENBQXhCO0FBQ0EsV0FBT0UsR0FBUDtBQUNELEdBSEQsQ0FHRSxPQUFPRSxDQUFQLEVBQVU7QUFDVkMsSUFBQUEsT0FBTyxDQUFDQyxLQUFSLENBQWNGLENBQWQ7QUFDRDtBQUNGLENBZm1CLENBQXBCLEMsQ0FpQkE7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxDQUFDLElBQUlBLENBQXpCOztBQUVBLE1BQU1DLE9BQU8sR0FBR2pCLElBQUksQ0FDbEIsQ0FDRSxTQUFZLENBQUNrQixrQkFBRCxFQUFxQkMsaUJBQXJCLENBRGQsRUFFRSxDQUFDZixnQkFBRCxFQUFtQk4sZUFBbkIsQ0FGRixFQUdFLENBQ0VLLENBREYsRUFFRSxNQUFNO0FBQ0osUUFBTSxJQUFJaUIsS0FBSixDQUFVLGdEQUFWLENBQU47QUFDRCxDQUpILENBSEYsRUFTRUMsTUFURixDQVNTQyxPQVRULENBRGtCLENBQXBCO0FBYUEsTUFBTUMsTUFBTSxHQUFHdEIsS0FBSyxDQUFDLENBQUN1QixHQUFELEVBQU1DLEdBQU4sS0FBY0EsR0FBRyxDQUFDRCxHQUFELENBQWxCLENBQXBCO0FBRUEsTUFBTWIsTUFBTSxHQUFHWixPQUFPLENBQ3BCRyxJQUFJLENBQUNxQixNQUFNLENBQUMsU0FBRCxDQUFQLEVBQW9CUixXQUFwQixDQURnQixFQUVwQkUsT0FGb0IsQ0FBdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXhlY3V0ZUVuZHBvaW50IGZyb20gJy4vZW5kcG9pbnQuanMnO1xuaW1wb3J0IGV4ZWN1dGVDb25uZWN0aW9uIGZyb20gJy4vY29ubmVjdGlvbi5qcyc7XG5pbXBvcnQge2NvbXBvc2UsIGNvbmQsIGN1cnJ5LCB3aGVuLCBUfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQge1xuICBpc0Nvbm5lY3Rpb25DbGllbnQsXG4gIGlzRW5kcG9pbnRDbGllbnQsXG4gIGlzSW52YWxpZENsaWVudCxcbn0gZnJvbSAnLi4vY2xpZW50LmpzJztcbmltcG9ydCB7aXNJbnZhbGlkRXhlY3V0YWJsZX0gZnJvbSAnLi4vZGF0YWJhc2UvaW5kZXguanMnO1xuXG5pbXBvcnQgdHlwZSB7Q2xpZW50LCBFeGVjdXRhYmxlLCBRdWVyeX0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIHF1ZXJ5XG4gKlxuICogRXhlY3V0ZSB0aGUgZ2l2ZW4gcXVlcnkgd2l0aCBhIGNsaWVudFxuICpcbiAqIEBjdXJyaWVkXG4gKiBAcGFyYW1zIHtDbGllbnR9IGNsaWVudFxuICogQHBhcmFtcyB7RXhlY3V0YWJsZVF1ZXJ5fSBxdWVyeVxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGN1cnJ5KGFzeW5jIGZ1bmN0aW9uKGNsaWVudDogQ2xpZW50LCBxdWVyeTogRXhlY3V0YWJsZSk6IFF1ZXJ5IHtcbiAgLy8gUnVudGltZSB2YWxpZGF0aW9uc1xuICBpZiAoaXNJbnZhbGlkQ2xpZW50KGNsaWVudCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdxdWVyeTogaW52YWxpZCBjbGllbnQnKTtcbiAgfVxuICBpZiAoaXNJbnZhbGlkRXhlY3V0YWJsZShxdWVyeSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdxdWVyeTogaW52YWxpZCBleGVjdXRhYmxlJyk7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGludm9rZShjbGllbnQsIHF1ZXJ5KTtcbiAgICByZXR1cm4gcmVzO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgfVxufSk7XG5cbi8vIFRPRE9cbmNvbnN0IG1ha2VFdmVudGVkID0gaSA9PiBpO1xuXG5jb25zdCBleGVjdXRlID0gY29uZChcbiAgW1xuICAgIF9fTk9ERV9fICYmIFtpc0Nvbm5lY3Rpb25DbGllbnQsIGV4ZWN1dGVDb25uZWN0aW9uXSxcbiAgICBbaXNFbmRwb2ludENsaWVudCwgZXhlY3V0ZUVuZHBvaW50XSxcbiAgICBbXG4gICAgICBULFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3Qgc3BlY2lmeSBlbmRwb2ludCBvciBjb25uZWN0aW9uIGZvciBjbGllbnQnKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgXS5maWx0ZXIoQm9vbGVhbiksXG4pO1xuXG5jb25zdCBnZXRLZXkgPSBjdXJyeSgoa2V5LCBvYmopID0+IG9ialtrZXldKTtcblxuY29uc3QgaW52b2tlID0gY29tcG9zZShcbiAgd2hlbihnZXRLZXkoJ2V2ZW50ZWQnKSwgbWFrZUV2ZW50ZWQpLFxuICBleGVjdXRlLFxuKTtcbiJdfQ==