redink
Version:
RethinkDB model layer
34 lines (23 loc) • 3.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _rethinkdb = require('rethinkdb');
var _rethinkdb2 = _interopRequireDefault(_rethinkdb);
var _utils = require('./utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (type, id, conn) {
if (typeof id !== 'string') {
throw new Error('Expected \'' + type + '\' relationship to be a \'string\' but got type \'' + (typeof ids === 'undefined' ? 'undefined' : _typeof(ids)) + '\'');
}
var checkValidRecord = function checkValidRecord(record) {
var validRecord = (0, _utils.isRecordValid)(record);
if (!validRecord) {
throw new Error('Expected a valid record of type \'' + type + '\' ' + ('but got invalid record with id of \'' + id + '\'.'));
}
return true;
};
return _rethinkdb2.default.table(type).get(id).run(conn).then(checkValidRecord);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdHJhaW50cy9jaGVja3MvY2hlY2tWYWxpZElkLmpzIl0sIm5hbWVzIjpbInR5cGUiLCJpZCIsImNvbm4iLCJFcnJvciIsImlkcyIsImNoZWNrVmFsaWRSZWNvcmQiLCJyZWNvcmQiLCJ2YWxpZFJlY29yZCIsInRhYmxlIiwiZ2V0IiwicnVuIiwidGhlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O2tCQUVlLFVBQUNBLElBQUQsRUFBT0MsRUFBUCxFQUFXQyxJQUFYLEVBQW9CO0FBQ2pDLE1BQUksT0FBT0QsRUFBUCxLQUFjLFFBQWxCLEVBQTRCO0FBQzFCLFVBQU0sSUFBSUUsS0FBSixpQkFDU0gsSUFEVCxrRUFDcUVJLEdBRHJFLHlDQUNxRUEsR0FEckUsVUFBTjtBQUdEOztBQUVELE1BQU1DLG1CQUFtQixTQUFuQkEsZ0JBQW1CLENBQUNDLE1BQUQsRUFBWTtBQUNuQyxRQUFNQyxjQUFjLDBCQUFjRCxNQUFkLENBQXBCOztBQUVBLFFBQUksQ0FBQ0MsV0FBTCxFQUFrQjtBQUNoQixZQUFNLElBQUlKLEtBQUosQ0FDSix1Q0FBb0NILElBQXBDLHFEQUNzQ0MsRUFEdEMsU0FESSxDQUFOO0FBSUQ7O0FBRUQsV0FBTyxJQUFQO0FBQ0QsR0FYRDs7QUFhQSxTQUFPLG9CQUFFTyxLQUFGLENBQVFSLElBQVIsRUFDSlMsR0FESSxDQUNBUixFQURBLEVBRUpTLEdBRkksQ0FFQVIsSUFGQSxFQUdKUyxJQUhJLENBR0NOLGdCQUhELENBQVA7QUFJRCxDIiwiZmlsZSI6ImNoZWNrVmFsaWRJZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByIGZyb20gJ3JldGhpbmtkYic7XG5pbXBvcnQgeyBpc1JlY29yZFZhbGlkIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0ICh0eXBlLCBpZCwgY29ubikgPT4ge1xuICBpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBFeHBlY3RlZCAnJHt0eXBlfScgcmVsYXRpb25zaGlwIHRvIGJlIGEgJ3N0cmluZycgYnV0IGdvdCB0eXBlICcke3R5cGVvZiBpZHN9J2BcbiAgICApO1xuICB9XG5cbiAgY29uc3QgY2hlY2tWYWxpZFJlY29yZCA9IChyZWNvcmQpID0+IHtcbiAgICBjb25zdCB2YWxpZFJlY29yZCA9IGlzUmVjb3JkVmFsaWQocmVjb3JkKTtcblxuICAgIGlmICghdmFsaWRSZWNvcmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIGEgdmFsaWQgcmVjb3JkIG9mIHR5cGUgJyR7dHlwZX0nIGAgK1xuICAgICAgICBgYnV0IGdvdCBpbnZhbGlkIHJlY29yZCB3aXRoIGlkIG9mICcke2lkfScuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICByZXR1cm4gci50YWJsZSh0eXBlKVxuICAgIC5nZXQoaWQpXG4gICAgLnJ1bihjb25uKVxuICAgIC50aGVuKGNoZWNrVmFsaWRSZWNvcmQpO1xufTtcbiJdfQ==