aquameta-datum
Version:
Service layer for the Aquameta database API
133 lines (113 loc) • 12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.relation = relation;
exports.fn = fn;
exports.includeColumn = exports.include = exports.excludeColumn = exports.exclude = exports.metaData = exports.evented = exports.offset = exports.limit = exports.orderByDesc = exports.orderByAsc = exports.orderBy = exports.order = exports.whereNotNull = exports.whereNull = exports.whereNotSimilarTo = exports.whereSimilarTo = exports.whereNotLike = exports.whereLike = exports.whereNotIn = exports.whereIn = exports.whereLte = exports.whereLt = exports.whereGte = exports.whereGt = exports.whereNotEquals = exports.whereNot = exports.whereEquals = exports.where = void 0;
var _ramda = require("ramda");
var _args = require("./args.js");
function relation(name) {
if (!name) {
throw new Error('relation: relation name must be specified');
}
let [schemaName, relationName] = name.split('.');
if (!relationName) {
relationName = schemaName;
schemaName = 'public';
}
return {
schemaName,
relationName,
qualified: `${schemaName}.${relationName}`,
url: `relation/${schemaName}/${relationName}`,
args: {}
};
} // TODO
function fn(name, args) {
if (!name) {
throw new Error('fn: function name must be specified');
}
let [schemaName, fnName] = name.split('.');
if (!fnName) {
fnName = schemaName;
schemaName = 'public';
}
const fnArgs = {};
if (Array.isArray(args)) {
fnArgs.vals = args;
} else if (typeof args === 'object') {
fnArgs.kwargs = args;
} else {
throw new TypeError('fn: args must be Array<string> or Object');
}
return {
schemaName,
fnName,
qualified: `${schemaName}.${fnName}`,
url: `function/${schemaName}/${fnName}`,
args: {
args: [fnArgs]
} // This is an array in endpoint functions
};
}
/**
* Operations to perform on chainable (returned from relation)
*/
const where = (0, _args.addWhere)('=');
exports.where = where;
const whereEquals = where;
exports.whereEquals = whereEquals;
const whereNot = (0, _args.addWhere)('<>');
exports.whereNot = whereNot;
const whereNotEquals = whereNot;
exports.whereNotEquals = whereNotEquals;
const whereGt = (0, _args.addWhere)('>');
exports.whereGt = whereGt;
const whereGte = (0, _args.addWhere)('>=');
exports.whereGte = whereGte;
const whereLt = (0, _args.addWhere)('<');
exports.whereLt = whereLt;
const whereLte = (0, _args.addWhere)('<=');
exports.whereLte = whereLte;
const whereIn = (0, _args.addWhere)('in');
exports.whereIn = whereIn;
const whereNotIn = (0, _args.addWhere)('not in');
exports.whereNotIn = whereNotIn;
const whereLike = (0, _args.addWhere)('like');
exports.whereLike = whereLike;
const whereNotLike = (0, _args.addWhere)('not like');
exports.whereNotLike = whereNotLike;
const whereSimilarTo = (0, _args.addWhere)('similar to');
exports.whereSimilarTo = whereSimilarTo;
const whereNotSimilarTo = (0, _args.addWhere)('not similar to'); // $FlowFixMe
exports.whereNotSimilarTo = whereNotSimilarTo;
const whereNull = (0, _args.addWhere)('is', _ramda.__, null); // $FlowFixMe
exports.whereNull = whereNull;
const whereNotNull = (0, _args.addWhere)('is not', _ramda.__, null);
exports.whereNotNull = whereNotNull;
const order = _args.addOrder;
exports.order = order;
const orderBy = order;
exports.orderBy = orderBy;
const orderByAsc = (0, _args.addOrder)('asc');
exports.orderByAsc = orderByAsc;
const orderByDesc = (0, _args.addOrder)('desc'); // export const orderByRandom = addOrder('random()'); // TODO: not supported by endpoint.request
exports.orderByDesc = orderByDesc;
const limit = (0, _args.addArg)('limit');
exports.limit = limit;
const offset = (0, _args.addArg)('offset');
exports.offset = offset;
const evented = (0, _args.addArg)('evented');
exports.evented = evented;
const metaData = (0, _args.addArg)('metaData');
exports.metaData = metaData;
const exclude = (0, _args.addNestedArrayArg)('exclude');
exports.exclude = exclude;
const excludeColumn = exclude;
exports.excludeColumn = excludeColumn;
const include = (0, _args.addNestedArrayArg)('include');
exports.include = include;
const includeColumn = include;
exports.includeColumn = includeColumn;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoYWluYWJsZS5qcyJdLCJuYW1lcyI6WyJyZWxhdGlvbiIsIm5hbWUiLCJFcnJvciIsInNjaGVtYU5hbWUiLCJyZWxhdGlvbk5hbWUiLCJzcGxpdCIsInF1YWxpZmllZCIsInVybCIsImFyZ3MiLCJmbiIsImZuTmFtZSIsImZuQXJncyIsIkFycmF5IiwiaXNBcnJheSIsInZhbHMiLCJrd2FyZ3MiLCJUeXBlRXJyb3IiLCJ3aGVyZSIsIndoZXJlRXF1YWxzIiwid2hlcmVOb3QiLCJ3aGVyZU5vdEVxdWFscyIsIndoZXJlR3QiLCJ3aGVyZUd0ZSIsIndoZXJlTHQiLCJ3aGVyZUx0ZSIsIndoZXJlSW4iLCJ3aGVyZU5vdEluIiwid2hlcmVMaWtlIiwid2hlcmVOb3RMaWtlIiwid2hlcmVTaW1pbGFyVG8iLCJ3aGVyZU5vdFNpbWlsYXJUbyIsIndoZXJlTnVsbCIsIl9fIiwid2hlcmVOb3ROdWxsIiwib3JkZXIiLCJhZGRPcmRlciIsIm9yZGVyQnkiLCJvcmRlckJ5QXNjIiwib3JkZXJCeURlc2MiLCJsaW1pdCIsIm9mZnNldCIsImV2ZW50ZWQiLCJtZXRhRGF0YSIsImV4Y2x1ZGUiLCJleGNsdWRlQ29sdW1uIiwiaW5jbHVkZSIsImluY2x1ZGVDb2x1bW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUdPLFNBQVNBLFFBQVQsQ0FBa0JDLElBQWxCLEVBQTBDO0FBQy9DLE1BQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsVUFBTSxJQUFJQyxLQUFKLENBQVUsMkNBQVYsQ0FBTjtBQUNEOztBQUVELE1BQUksQ0FBQ0MsVUFBRCxFQUFhQyxZQUFiLElBQTZCSCxJQUFJLENBQUNJLEtBQUwsQ0FBVyxHQUFYLENBQWpDOztBQUNBLE1BQUksQ0FBQ0QsWUFBTCxFQUFtQjtBQUNqQkEsSUFBQUEsWUFBWSxHQUFHRCxVQUFmO0FBQ0FBLElBQUFBLFVBQVUsR0FBRyxRQUFiO0FBQ0Q7O0FBRUQsU0FBTztBQUNMQSxJQUFBQSxVQURLO0FBRUxDLElBQUFB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R0FBRyxrQkFBTyxRQUFQLENBQWY7O0FBQ0EsTUFBTUMsT0FBTyxHQUFHLGtCQUFPLFNBQVAsQ0FBaEI7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHLGtCQUFPLFVBQVAsQ0FBakI7O0FBRUEsTUFBTUMsT0FBTyxHQUFHLDZCQUFrQixTQUFsQixDQUFoQjs7QUFDQSxNQUFNQyxhQUFhLEdBQUdELE9BQXRCOztBQUNBLE1BQU1FLE9BQU8sR0FBRyw2QkFBa0IsU0FBbEIsQ0FBaEI7O0FBQ0EsTUFBTUMsYUFBYSxHQUFHRCxPQUF0QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5cbmltcG9ydCB7X199IGZyb20gJ3JhbWRhJztcbmltcG9ydCB7YWRkQXJnLCBhZGROZXN0ZWRBcnJheUFyZywgYWRkT3JkZXIsIGFkZFdoZXJlfSBmcm9tICcuL2FyZ3MuanMnO1xuaW1wb3J0IHR5cGUge0ZuLCBSZWxhdGlvbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpb24obmFtZTogc3RyaW5nKTogUmVsYXRpb24ge1xuICBpZiAoIW5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlbGF0aW9uOiByZWxhdGlvbiBuYW1lIG11c3QgYmUgc3BlY2lmaWVkJyk7XG4gIH1cblxuICBsZXQgW3NjaGVtYU5hbWUsIHJlbGF0aW9uTmFtZV0gPSBuYW1lLnNwbGl0KCcuJyk7XG4gIGlmICghcmVsYXRpb25OYW1lKSB7XG4gICAgcmVsYXRpb25OYW1lID0gc2NoZW1hTmFtZTtcbiAgICBzY2hlbWFOYW1lID0gJ3B1YmxpYyc7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNjaGVtYU5hbWUsXG4gICAgcmVsYXRpb25OYW1lLFxuICAgIHF1YWxpZmllZDogYCR7c2NoZW1hTmFtZX0uJHtyZWxhdGlvbk5hbWV9YCxcbiAgICB1cmw6IGByZWxhdGlvbi8ke3NjaGVtYU5hbWV9LyR7cmVsYXRpb25OYW1lfWAsXG4gICAgYXJnczoge30sXG4gIH07XG59XG5cbi8vIFRPRE9cbmV4cG9ydCBmdW5jdGlvbiBmbihuYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PHN0cmluZz4gfCB7W3N0cmluZ106IG1peGVkfSk6IEZuIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmbjogZnVuY3Rpb24gbmFtZSBtdXN0IGJlIHNwZWNpZmllZCcpO1xuICB9XG5cbiAgbGV0IFtzY2hlbWFOYW1lLCBmbk5hbWVdID0gbmFtZS5zcGxpdCgnLicpO1xuICBpZiAoIWZuTmFtZSkge1xuICAgIGZuTmFtZSA9IHNjaGVtYU5hbWU7XG4gICAgc2NoZW1hTmFtZSA9ICdwdWJsaWMnO1xuICB9XG5cbiAgY29uc3QgZm5BcmdzID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgZm5BcmdzLnZhbHMgPSBhcmdzO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzID09PSAnb2JqZWN0Jykge1xuICAgIGZuQXJncy5rd2FyZ3MgPSBhcmdzO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZuOiBhcmdzIG11c3QgYmUgQXJyYXk8c3RyaW5nPiBvciBPYmplY3QnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2NoZW1hTmFtZSxcbiAgICBmbk5hbWUsXG4gICAgcXVhbGlmaWVkOiBgJHtzY2hlbWFOYW1lfS4ke2ZuTmFtZX1gLFxuICAgIHVybDogYGZ1bmN0aW9uLyR7c2NoZW1hTmFtZX0vJHtmbk5hbWV9YCxcbiAgICBhcmdzOiB7YXJnczogW2ZuQXJnc119LCAvLyBUaGlzIGlzIGFuIGFycmF5IGluIGVuZHBvaW50IGZ1bmN0aW9uc1xuICB9O1xufVxuXG4vKipcbiAqIE9wZXJhdGlvbnMgdG8gcGVyZm9ybSBvbiBjaGFpbmFibGUgKHJldHVybmVkIGZyb20gcmVsYXRpb24pXG4gKi9cbmV4cG9ydCBjb25zdCB3aGVyZSA9IGFkZFdoZXJlKCc9Jyk7XG5leHBvcnQgY29uc3Qgd2hlcmVFcXVhbHMgPSB3aGVyZTtcbmV4cG9ydCBjb25zdCB3aGVyZU5vdCA9IGFkZFdoZXJlKCc8PicpO1xuZXhwb3J0IGNvbnN0IHdoZXJlTm90RXF1YWxzID0gd2hlcmVOb3Q7XG5leHBvcnQgY29uc3Qgd2hlcmVHdCA9IGFkZFdoZXJlKCc+Jyk7XG5leHBvcnQgY29uc3Qgd2hlcmVHdGUgPSBhZGRXaGVyZSgnPj0nKTtcbmV4cG9ydCBjb25zdCB3aGVyZUx0ID0gYWRkV2hlcmUoJzwnKTtcbmV4cG9ydCBjb25zdCB3aGVyZUx0ZSA9IGFkZFdoZXJlKCc8PScpO1xuZXhwb3J0IGNvbnN0IHdoZXJlSW4gPSBhZGRXaGVyZSgnaW4nKTtcbmV4cG9ydCBjb25zdCB3aGVyZU5vdEluID0gYWRkV2hlcmUoJ25vdCBpbicpO1xuZXhwb3J0IGNvbnN0IHdoZXJlTGlrZSA9IGFkZFdoZXJlKCdsaWtlJyk7XG5leHBvcnQgY29uc3Qgd2hlcmVOb3RMaWtlID0gYWRkV2hlcmUoJ25vdCBsaWtlJyk7XG5leHBvcnQgY29uc3Qgd2hlcmVTaW1pbGFyVG8gPSBhZGRXaGVyZSgnc2ltaWxhciB0bycpO1xuZXhwb3J0IGNvbnN0IHdoZXJlTm90U2ltaWxhclRvID0gYWRkV2hlcmUoJ25vdCBzaW1pbGFyIHRvJyk7XG4vLyAkRmxvd0ZpeE1lXG5leHBvcnQgY29uc3Qgd2hlcmVOdWxsID0gYWRkV2hlcmUoJ2lzJywgX18sIG51bGwpO1xuLy8gJEZsb3dGaXhNZVxuZXhwb3J0IGNvbnN0IHdoZXJlTm90TnVsbCA9IGFkZFdoZXJlKCdpcyBub3QnLCBfXywgbnVsbCk7XG5cbmV4cG9ydCBjb25zdCBvcmRlciA9IGFkZE9yZGVyO1xuZXhwb3J0IGNvbnN0IG9yZGVyQnkgPSBvcmRlcjtcbmV4cG9ydCBjb25zdCBvcmRlckJ5QXNjID0gYWRkT3JkZXIoJ2FzYycpO1xuZXhwb3J0IGNvbnN0IG9yZGVyQnlEZXNjID0gYWRkT3JkZXIoJ2Rlc2MnKTtcbi8vIGV4cG9ydCBjb25zdCBvcmRlckJ5UmFuZG9tID0gYWRkT3JkZXIoJ3JhbmRvbSgpJyk7IC8vIFRPRE86IG5vdCBzdXBwb3J0ZWQgYnkgZW5kcG9pbnQucmVxdWVzdFxuXG5leHBvcnQgY29uc3QgbGltaXQgPSBhZGRBcmcoJ2xpbWl0Jyk7XG5leHBvcnQgY29uc3Qgb2Zmc2V0ID0gYWRkQXJnKCdvZmZzZXQnKTtcbmV4cG9ydCBjb25zdCBldmVudGVkID0gYWRkQXJnKCdldmVudGVkJyk7XG5leHBvcnQgY29uc3QgbWV0YURhdGEgPSBhZGRBcmcoJ21ldGFEYXRhJyk7XG5cbmV4cG9ydCBjb25zdCBleGNsdWRlID0gYWRkTmVzdGVkQXJyYXlBcmcoJ2V4Y2x1ZGUnKTtcbmV4cG9ydCBjb25zdCBleGNsdWRlQ29sdW1uID0gZXhjbHVkZTtcbmV4cG9ydCBjb25zdCBpbmNsdWRlID0gYWRkTmVzdGVkQXJyYXlBcmcoJ2luY2x1ZGUnKTtcbmV4cG9ydCBjb25zdCBpbmNsdWRlQ29sdW1uID0gaW5jbHVkZTtcbiJdfQ==