redink
Version:
RethinkDB model layer
34 lines (23 loc) • 3.23 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, field, 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.isHasOneValid)(record, field);
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdHJhaW50cy9jaGVja3MvY2hlY2tJbnZlcnNlSGFzT25lLmpzIl0sIm5hbWVzIjpbInR5cGUiLCJpZCIsImZpZWxkIiwiY29ubiIsIkVycm9yIiwiaWRzIiwiY2hlY2tWYWxpZFJlY29yZCIsInJlY29yZCIsInZhbGlkUmVjb3JkIiwidGFibGUiLCJnZXQiLCJydW4iLCJ0aGVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7a0JBRWUsVUFBQ0EsSUFBRCxFQUFPQyxFQUFQLEVBQVdDLEtBQVgsRUFBa0JDLElBQWxCLEVBQTJCO0FBQ3hDLE1BQUksT0FBT0YsRUFBUCxLQUFjLFFBQWxCLEVBQTRCO0FBQzFCLFVBQU0sSUFBSUcsS0FBSixpQkFDU0osSUFEVCxrRUFDcUVLLEdBRHJFLHlDQUNxRUEsR0FEckUsVUFBTjtBQUdEOztBQUVELE1BQU1DLG1CQUFtQixTQUFuQkEsZ0JBQW1CLENBQUNDLE1BQUQsRUFBWTtBQUNuQyxRQUFNQyxjQUFjLDBCQUFjRCxNQUFkLEVBQXNCTCxLQUF0QixDQUFwQjs7QUFFQSxRQUFJLENBQUNNLFdBQUwsRUFBa0I7QUFDaEIsWUFBTSxJQUFJSixLQUFKLENBQ0osdUNBQW9DSixJQUFwQyxxREFDc0NDLEVBRHRDLFNBREksQ0FBTjtBQUlEOztBQUVELFdBQU8sSUFBUDtBQUNELEdBWEQ7O0FBYUEsU0FBTyxvQkFBRVEsS0FBRixDQUFRVCxJQUFSLEVBQ0pVLEdBREksQ0FDQVQsRUFEQSxFQUVKVSxHQUZJLENBRUFSLElBRkEsRUFHSlMsSUFISSxDQUdDTixnQkFIRCxDQUFQO0FBSUQsQyIsImZpbGUiOiJjaGVja0ludmVyc2VIYXNPbmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgciBmcm9tICdyZXRoaW5rZGInO1xuaW1wb3J0IHsgaXNIYXNPbmVWYWxpZCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCAodHlwZSwgaWQsIGZpZWxkLCBjb25uKSA9PiB7XG4gIGlmICh0eXBlb2YgaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEV4cGVjdGVkICcke3R5cGV9JyByZWxhdGlvbnNoaXAgdG8gYmUgYSAnc3RyaW5nJyBidXQgZ290IHR5cGUgJyR7dHlwZW9mIGlkc30nYFxuICAgICk7XG4gIH1cblxuICBjb25zdCBjaGVja1ZhbGlkUmVjb3JkID0gKHJlY29yZCkgPT4ge1xuICAgIGNvbnN0IHZhbGlkUmVjb3JkID0gaXNIYXNPbmVWYWxpZChyZWNvcmQsIGZpZWxkKTtcblxuICAgIGlmICghdmFsaWRSZWNvcmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIGEgdmFsaWQgcmVjb3JkIG9mIHR5cGUgJyR7dHlwZX0nIGAgK1xuICAgICAgICBgYnV0IGdvdCBpbnZhbGlkIHJlY29yZCB3aXRoIGlkIG9mICcke2lkfScuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICByZXR1cm4gci50YWJsZSh0eXBlKVxuICAgIC5nZXQoaWQpXG4gICAgLnJ1bihjb25uKVxuICAgIC50aGVuKGNoZWNrVmFsaWRSZWNvcmQpO1xufTtcbiJdfQ==