Socket
Socket
Sign inDemoInstall

nothinkdb

Package Overview
Dependencies
Maintainers
1
Versions
55
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nothinkdb - npm Package Compare versions

Comparing version 0.5.23 to 0.5.24

166

lib/Environment.js

@@ -1,14 +0,27 @@

/* eslint no-shadow: 0 */
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
var _regenerator = require('babel-runtime/regenerator');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _regenerator2 = _interopRequireDefault(_regenerator);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _lodash = require('lodash');

@@ -22,12 +35,14 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint no-shadow: 0 */
var debug = require('debug')('nothinkdb:Environment');
var Environment = (function () {
var Environment = function () {
function Environment() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
_classCallCheck(this, Environment);
(0, _classCallCheck3.default)(this, Environment);
var _options$Table = options.Table;
var Table = _options$Table === undefined ? _Table3['default'] : _options$Table;
var Table = _options$Table === undefined ? _Table3.default : _options$Table;

@@ -38,3 +53,3 @@ this.Table = Table;

_createClass(Environment, [{
(0, _createClass3.default)(Environment, [{
key: 'createTable',

@@ -44,2 +59,3 @@ value: function createTable(options) {

if (this.hasTable(tableName)) {

@@ -62,3 +78,3 @@ debug('[createTable] tableName: \'' + tableName + '\' is already defined');

value: function hasTable(tableName) {
return _lodash2['default'].has(this.tables, tableName);
return _lodash2.default.has(this.tables, tableName);
}

@@ -68,70 +84,90 @@ }, {

value: function getAllTables() {
return _lodash2['default'].values(this.tables);
return _lodash2.default.values(this.tables);
}
}, {
key: 'sync',
value: function sync(connection) {
return regeneratorRuntime.async(function sync$(context$2$0) {
var _this2 = this;
value: function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(connection) {
var _this = this;
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
context$2$0.next = 2;
return regeneratorRuntime.awrap(Promise.all(_lodash2['default'].map(this.tables, function callee$2$0(table) {
return regeneratorRuntime.async(function callee$2$0$(context$3$0) {
var _this = this;
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return _promise2.default.all(_lodash2.default.map(this.tables, function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(table) {
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!_lodash2.default.isFunction(connection)) {
_context2.next = 5;
break;
}
while (1) switch (context$3$0.prev = context$3$0.next) {
case 0:
if (!_lodash2['default'].isFunction(connection)) {
context$3$0.next = 5;
break;
}
_context2.next = 3;
return connection().then(function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(connection) {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return table.sync(connection);
context$3$0.next = 3;
return regeneratorRuntime.awrap(connection().then(function callee$3$0(connection) {
return regeneratorRuntime.async(function callee$3$0$(context$4$0) {
while (1) switch (context$4$0.prev = context$4$0.next) {
case 0:
context$4$0.next = 2;
return regeneratorRuntime.awrap(table.sync(connection));
case 2:
_context.next = 4;
return connection.close();
case 2:
context$4$0.next = 4;
return regeneratorRuntime.awrap(connection.close());
case 4:
case 'end':
return _context.stop();
}
}
}, _callee, _this);
}));
return function (_x4) {
return ref.apply(this, arguments);
};
}());
case 4:
case 3:
_context2.next = 7;
break;
case 5:
_context2.next = 7;
return table.sync(connection);
case 7:
case 'end':
return context$4$0.stop();
return _context2.stop();
}
}, null, _this);
}));
}
}, _callee2, _this);
}));
return function (_x3) {
return ref.apply(this, arguments);
};
}()));
case 3:
context$3$0.next = 7;
break;
case 2:
case 'end':
return _context3.stop();
}
}
}, _callee3, this);
}));
case 5:
context$3$0.next = 7;
return regeneratorRuntime.awrap(table.sync(connection));
function sync(_x2) {
return ref.apply(this, arguments);
}
case 7:
case 'end':
return context$3$0.stop();
}
}, null, _this2);
})));
case 2:
case 'end':
return context$2$0.stop();
}
}, null, this);
}
return sync;
}()
}]);
return Environment;
})();
}();
exports['default'] = Environment;
module.exports = exports['default'];
exports.default = Environment;
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _assert = require('assert');

@@ -17,4 +19,6 @@

var Link = (function () {
_createClass(Link, null, [{
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Link = function () {
(0, _createClass3.default)(Link, null, [{
key: 'validateLinkData',

@@ -27,3 +31,3 @@ value: function validateLinkData(linkData) {

value: function assertLinkData(linkData) {
_assert2['default'].ok(this.validateLinkData(linkData), 'invalid link data');
_assert2.default.ok(this.validateLinkData(linkData), 'invalid link data');
}

@@ -34,5 +38,3 @@ }]);

var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
_classCallCheck(this, Link);
(0, _classCallCheck3.default)(this, Link);
var left = options.left;

@@ -48,5 +50,4 @@ var right = options.right;

return Link;
})();
}();
exports['default'] = Link;
module.exports = exports['default'];
exports.default = Link;
'use strict';
Object.defineProperty(exports, '__esModule', {
import _Object$defineProperty from 'babel-runtime/core-js/object/define-property';
import _Object$keys from 'babel-runtime/core-js/object/keys';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.schema = exports.Environment = exports.Table = undefined;
function _interopExportWildcard(obj, defaults) { var newObj = defaults({}, obj); delete newObj['default']; return newObj; }
var _relations = require('./relations');
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
_Object$keys(_relations).forEach(function (key) {
if (key === "default") return;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
_Object$defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _relations[key];
}
});
});

@@ -17,4 +27,2 @@ var _Table2 = require('./Table');

exports.Table = _Table3['default'];
var _Environment2 = require('./Environment');

@@ -24,8 +32,2 @@

exports.Environment = _Environment3['default'];
var _relations = require('./relations');
_defaults(exports, _interopExportWildcard(_relations, _defaults));
var _schema2 = require('./schema');

@@ -35,2 +37,6 @@

exports.schema = _schema3['default'];
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.Table = _Table3.default;
exports.Environment = _Environment3.default;
exports.schema = _schema3.default;

@@ -1,10 +0,15 @@

/* eslint no-shadow: 0 */
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
exports.hasOne = hasOne;

@@ -15,6 +20,2 @@ exports.belongsTo = belongsTo;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _rethinkdb = require('rethinkdb');

@@ -36,7 +37,12 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint no-shadow: 0 */
function parseOptions(options) {
return _lodash2['default'].chain(options).omitBy(function (value, key) {
return !_lodash2['default'].startsWith(key, '_');
return _lodash2.default.chain(options).omitBy(function (value, key) {
return !_lodash2.default.startsWith(key, '_');
}).reduce(function (memo, value, key) {
return _defineProperty({}, key.slice(1), value);
return (0, _defineProperty3.default)({}, key.slice(1), value);
}, {}).value();

@@ -46,9 +52,10 @@ }

function hasOne(link) {
_assert2['default'].equal(link.constructor, _Link2['default']);
_assert2.default.equal(link.constructor, _Link2.default);
var left = link.left;
var right = link.right;
function getIndex(rowOrPk) {
var index = undefined;
if (_lodash2['default'].isFunction(rowOrPk)) {
var index = void 0;
if (_lodash2.default.isFunction(rowOrPk)) {
var row = rowOrPk;

@@ -75,9 +82,10 @@ index = row(right.field);

var query = left.table.query().getAll(index, { index: left.field });
query = apply(query);
return _rethinkdb2['default'].branch(index, query, _rethinkdb2['default'].expr([]));
return _rethinkdb2.default.branch(index, query, _rethinkdb2.default.expr([]));
}
function coerceType(query) {
return query.nth(0)['default'](null);
return query.nth(0).default(null);
}

@@ -89,4 +97,4 @@

return right.table.get(onePk)['do'](function (rightRow) {
return left.table.update(otherPk, _defineProperty({}, left.field, rightRow(right.field)));
return right.table.get(onePk).do(function (rightRow) {
return left.table.update(otherPk, (0, _defineProperty3.default)({}, left.field, rightRow(right.field)));
});

@@ -98,8 +106,8 @@ }

return left.table.update(otherPk, _defineProperty({}, left.field, null));
return left.table.update(otherPk, (0, _defineProperty3.default)({}, left.field, null));
}
function has(onePk, otherPk) {
return right.table.get(onePk)['do'](function (rightRow) {
return left.table.get(otherPk)['do'](function (leftRow) {
return right.table.get(onePk).do(function (rightRow) {
return left.table.get(otherPk).do(function (leftRow) {
return leftRow.hasFields(left.field).and(leftRow(left.field).eq(rightRow(right.field)));

@@ -124,9 +132,10 @@ });

function belongsTo(link) {
_assert2['default'].equal(link.constructor, _Link2['default']);
_assert2.default.equal(link.constructor, _Link2.default);
var left = link.left;
var right = link.right;
function getIndex(rowOrPk) {
var index = undefined;
if (_lodash2['default'].isFunction(rowOrPk)) {
var index = void 0;
if (_lodash2.default.isFunction(rowOrPk)) {
var row = rowOrPk;

@@ -155,9 +164,10 @@ index = row(left.field);

var query = right.table.query().getAll(index, { index: right.field });
query = apply(query);
return _rethinkdb2['default'].branch(index, query, _rethinkdb2['default'].expr([]));
return _rethinkdb2.default.branch(index, query, _rethinkdb2.default.expr([]));
}
function coerceType(query) {
return query.nth(0)['default'](null);
return query.nth(0).default(null);
}

@@ -169,4 +179,4 @@

return right.table.get(otherPk)['do'](function (rightRow) {
return left.table.update(onePk, _defineProperty({}, left.field, rightRow(right.field)));
return right.table.get(otherPk).do(function (rightRow) {
return left.table.update(onePk, (0, _defineProperty3.default)({}, left.field, rightRow(right.field)));
});

@@ -178,8 +188,8 @@ }

return left.table.update(onePk, _defineProperty({}, left.field, null));
return left.table.update(onePk, (0, _defineProperty3.default)({}, left.field, null));
}
function has(onePk, otherPk) {
return right.table.get(otherPk)['do'](function (rightRow) {
return left.table.get(onePk)['do'](function (leftRow) {
return right.table.get(otherPk).do(function (rightRow) {
return left.table.get(onePk).do(function (leftRow) {
return leftRow.hasFields(left.field).and(leftRow(left.field).eq(rightRow(right.field)));

@@ -204,9 +214,10 @@ });

function hasMany(link) {
_assert2['default'].equal(link.constructor, _Link2['default']);
_assert2.default.equal(link.constructor, _Link2.default);
var left = link.left;
var right = link.right;
function getIndex(rowOrPk) {
var index = undefined;
if (_lodash2['default'].isFunction(rowOrPk)) {
var index = void 0;
if (_lodash2.default.isFunction(rowOrPk)) {
var row = rowOrPk;

@@ -235,2 +246,3 @@ index = row(right.field);

var query = left.table.query();

@@ -240,3 +252,3 @@ query = query.getAll(index, { index: left.field });

return _rethinkdb2['default'].branch(index, query, _rethinkdb2['default'].expr([]));
return _rethinkdb2.default.branch(index, query, _rethinkdb2.default.expr([]));
}

@@ -252,4 +264,4 @@

return right.table.get(onePk)['do'](function (rightRow) {
return left.table.update(otherPk, _defineProperty({}, left.field, rightRow(right.field)));
return right.table.get(onePk).do(function (rightRow) {
return left.table.update(otherPk, (0, _defineProperty3.default)({}, left.field, rightRow(right.field)));
});

@@ -261,8 +273,8 @@ }

return left.table.update(otherPk, _defineProperty({}, left.field, null));
return left.table.update(otherPk, (0, _defineProperty3.default)({}, left.field, null));
}
function has(onePk, otherPk) {
return right.table.get(onePk)['do'](function (rightRow) {
return left.table.get(otherPk)['do'](function (leftRow) {
return right.table.get(onePk).do(function (rightRow) {
return left.table.get(otherPk).do(function (leftRow) {
return leftRow.hasFields(left.field).and(leftRow(left.field).eq(rightRow(right.field)));

@@ -289,5 +301,5 @@ });

_assert2['default'].equal(link.length, 2);
_assert2.default.equal(link.length, 2);
var _link = _slicedToArray(link, 2);
var _link = (0, _slicedToArray3.default)(link, 2);

@@ -297,5 +309,5 @@ var link1 = _link[0];

_assert2['default'].equal(link1.constructor, _Link2['default']);
_assert2['default'].equal(link2.constructor, _Link2['default']);
_assert2['default'].equal(link1.left.table, link2.left.table, 'link table must be same.');
_assert2.default.equal(link1.constructor, _Link2.default);
_assert2.default.equal(link2.constructor, _Link2.default);
_assert2.default.equal(link1.left.table, link2.left.table, 'link table must be same.');
var index = options.index;

@@ -306,4 +318,4 @@

function getIndex(rowOrPk) {
var index = undefined;
if (_lodash2['default'].isFunction(rowOrPk)) {
var index = void 0;
if (_lodash2.default.isFunction(rowOrPk)) {
var row = rowOrPk;

@@ -332,2 +344,3 @@ index = row(link1.right.field);

var targetIdsQuery = relationTable.query().getAll(index, { index: link1.left.field }).hasFields(link2.left.field);

@@ -341,7 +354,7 @@

var relatedRowsQuery = targetIdsQuery['do'](function (targetIds) {
return _rethinkdb2['default'].branch(targetIds.count().gt(0), link2.right.table.query().getAll(_rethinkdb2['default'].args(targetIds), { index: link2.right.field }), _rethinkdb2['default'].expr([]));
var relatedRowsQuery = targetIdsQuery.do(function (targetIds) {
return _rethinkdb2.default.branch(targetIds.count().gt(0), link2.right.table.query().getAll(_rethinkdb2.default.args(targetIds), { index: link2.right.field }), _rethinkdb2.default.expr([]));
});
return _rethinkdb2['default'].branch(index, relatedRowsQuery, _rethinkdb2['default'].expr([]));
return _rethinkdb2.default.branch(index, relatedRowsQuery, _rethinkdb2.default.expr([]));
}

@@ -354,8 +367,8 @@

function create(onePk, otherPk) {
var relation = undefined;
if (_lodash2['default'].isArray(otherPk)) {
var relation = void 0;
if (_lodash2.default.isArray(otherPk)) {
relation = otherPk.map(function (otherPk) {
var _relationTable$create;
return relationTable.create((_relationTable$create = {}, _defineProperty(_relationTable$create, link1.left.field, onePk), _defineProperty(_relationTable$create, link2.left.field, otherPk), _relationTable$create));
return relationTable.create((_relationTable$create = {}, (0, _defineProperty3.default)(_relationTable$create, link1.left.field, onePk), (0, _defineProperty3.default)(_relationTable$create, link2.left.field, otherPk), _relationTable$create));
});

@@ -365,3 +378,3 @@ } else {

relation = relationTable.create((_relationTable$create2 = {}, _defineProperty(_relationTable$create2, link1.left.field, onePk), _defineProperty(_relationTable$create2, link2.left.field, otherPk), _relationTable$create2));
relation = relationTable.create((_relationTable$create2 = {}, (0, _defineProperty3.default)(_relationTable$create2, link1.left.field, onePk), (0, _defineProperty3.default)(_relationTable$create2, link2.left.field, otherPk), _relationTable$create2));
}

@@ -375,4 +388,4 @@ return relationTable.insert(relation, { conflict: 'replace' });

if (index) {
if (_lodash2['default'].isArray(otherPk)) {
query = query.getAll(_rethinkdb2['default'].args(otherPk.map(function (otherPk) {
if (_lodash2.default.isArray(otherPk)) {
query = query.getAll(_rethinkdb2.default.args(otherPk.map(function (otherPk) {
return [onePk, otherPk];

@@ -386,8 +399,8 @@ })), { index: index });

if (_lodash2['default'].isArray(otherPk)) {
if (_lodash2.default.isArray(otherPk)) {
query = query.filter(function (row) {
return _rethinkdb2['default'].expr(otherPk).contains(row(link2.left.field));
return _rethinkdb2.default.expr(otherPk).contains(row(link2.left.field));
});
} else {
query = query.filter(_defineProperty({}, link2.left.field, otherPk));
query = query.filter((0, _defineProperty3.default)({}, link2.left.field, otherPk));
}

@@ -400,3 +413,3 @@ }

function remove(onePk, otherPk) {
return queryRelation(onePk, otherPk)['delete']();
return queryRelation(onePk, otherPk).delete();
}

@@ -403,0 +416,0 @@

'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _joi = require('joi');

@@ -17,10 +15,12 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var schema = {
id: _joi2['default'].string().max(36)['default'](function () {
return _nodeUuid2['default'].v4();
id: _joi2.default.string().max(36).default(function () {
return _nodeUuid2.default.v4();
}, 'primary key').meta({ index: true }),
createdAt: _joi2['default'].date()['default'](function () {
createdAt: _joi2.default.date().default(function () {
return new Date();
}, 'time of creation').meta({ index: true }),
updatedAt: _joi2['default'].date()['default'](function () {
updatedAt: _joi2.default.date().default(function () {
return new Date();

@@ -30,3 +30,2 @@ }, 'time of updated').meta({ index: true })

exports['default'] = schema;
module.exports = exports['default'];
exports.default = schema;

@@ -1,20 +0,39 @@

/* eslint no-shadow: 0, no-param-reassign: 0 */
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _extends3 = require('babel-runtime/helpers/extends');
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
var _extends4 = _interopRequireDefault(_extends3);
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _promise = require('babel-runtime/core-js/promise');
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
var _promise2 = _interopRequireDefault(_promise);
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _rethinkdb = require('rethinkdb');

@@ -40,21 +59,17 @@

var debug = require('debug')('nothinkdb');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Table = (function () {
_createClass(Table, null, [{
key: 'pk',
value: 'id',
enumerable: true
}]);
var debug = require('debug')('nothinkdb'); /* eslint no-shadow: 0, no-param-reassign: 0 */
var Table = function () {
function Table() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
(0, _classCallCheck3.default)(this, Table);
_classCallCheck(this, Table);
var _Joi$attempt = _joi2['default'].attempt(options, {
tableName: _joi2['default'].string().required(),
pk: _joi2['default'].string()['default'](this.constructor.pk),
schema: _joi2['default'].func().required(),
relations: _joi2['default'].func()['default'](function () {
var _Joi$attempt = _joi2.default.attempt(options, {
tableName: _joi2.default.string().required(),
pk: _joi2.default.string().default(this.constructor.pk),
schema: _joi2.default.func().required(),
relations: _joi2.default.func().default(function () {
return function () {

@@ -64,3 +79,3 @@ return {};

}, 'relation'),
index: _joi2['default'].object()['default']({}, 'index')
index: _joi2.default.object().default({}, 'index')
});

@@ -73,3 +88,2 @@

var index = _Joi$attempt.index;
// assert.equal(_.has(schema(), pk), true, `'${pk}' is not specified in schema`);

@@ -84,8 +98,8 @@

_createClass(Table, [{
(0, _createClass3.default)(Table, [{
key: 'metaFields',
value: function metaFields(metaKey) {
return _lodash2['default'].chain(this.schema()).omitBy(function (schema) {
return !_lodash2['default'].find(schema._meta, function (meta) {
return _lodash2['default'].has(meta, metaKey);
return _lodash2.default.chain(this.schema()).omitBy(function (schema) {
return !_lodash2.default.find(schema._meta, function (meta) {
return _lodash2.default.has(meta, metaKey);
});

@@ -99,3 +113,3 @@ }).keys().value();

return !_joi2['default'].validate(data, this.schema()).error;
return !_joi2.default.validate(data, this.schema()).error;
}

@@ -107,3 +121,3 @@ }, {

return _joi2['default'].attempt(data, this.schema());
return _joi2.default.attempt(data, this.schema());
}

@@ -120,3 +134,3 @@ }, {

value: function hasField(fieldName) {
return _lodash2['default'].has(this.schema(), fieldName);
return _lodash2.default.has(this.schema(), fieldName);
}

@@ -126,3 +140,3 @@ }, {

value: function assertField(fieldName) {
return _assert2['default'].ok(this.hasField(fieldName), 'Field \'' + fieldName + '\' is unspecified in table \'' + this.tableName + '\'.');
return _assert2.default.ok(this.hasField(fieldName), 'Field \'' + fieldName + '\' is unspecified in table \'' + this.tableName + '\'.');
}

@@ -149,3 +163,3 @@ }, {

}
return field.allow(null)['default'](null).meta({ index: true });
return field.allow(null).default(null).meta({ index: true });
}

@@ -159,3 +173,3 @@ }, {

return new _Link2['default']({
return new _Link2.default({
left: { table: this, field: leftField },

@@ -172,99 +186,139 @@ right: { table: targetTable, field: index }

key: 'sync',
value: function sync(connection) {
return regeneratorRuntime.async(function sync$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
context$2$0.next = 2;
return regeneratorRuntime.awrap(this.ensureTable(connection));
value: function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(connection) {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.ensureTable(connection);
case 2:
context$2$0.next = 4;
return regeneratorRuntime.awrap(this.ensureAllIndexes(connection));
case 2:
_context.next = 4;
return this.ensureAllIndexes(connection);
case 4:
debug('[sync] ' + connection.db + '.' + this.tableName);
case 4:
debug('[sync] ' + connection.db + '.' + this.tableName);
case 5:
case 'end':
return context$2$0.stop();
}
}, null, this);
}
case 5:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function sync(_x7) {
return ref.apply(this, arguments);
}
return sync;
}()
}, {
key: 'ensureTable',
value: function ensureTable(connection) {
return regeneratorRuntime.async(function ensureTable$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
context$2$0.next = 2;
return regeneratorRuntime.awrap(_rethinkdb2['default'].branch(_rethinkdb2['default'].tableList().contains(this.tableName).not(), _rethinkdb2['default'].tableCreate(this.tableName), null).run(connection));
value: function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(connection) {
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return _rethinkdb2.default.branch(_rethinkdb2.default.tableList().contains(this.tableName).not(), _rethinkdb2.default.tableCreate(this.tableName), null).run(connection);
case 2:
case 'end':
return context$2$0.stop();
}
}, null, this);
}
case 2:
case 'end':
return _context2.stop();
}
}
}, _callee2, this);
}));
function ensureTable(_x8) {
return ref.apply(this, arguments);
}
return ensureTable;
}()
}, {
key: 'ensureAllIndexes',
value: function ensureAllIndexes(connection) {
var indexFields;
return regeneratorRuntime.async(function ensureAllIndexes$(context$2$0) {
value: function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(connection) {
var _this = this;
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
indexFields = [].concat(_toConsumableArray(this.metaFields('index')), _toConsumableArray(this.metaFields('unique')));
context$2$0.next = 3;
return regeneratorRuntime.awrap(indexFields.reduce(function (promise, indexName) {
return promise.then(function () {
return _this.ensureIndex(connection, indexName);
});
}, Promise.resolve()));
var indexFields;
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
indexFields = [].concat((0, _toConsumableArray3.default)(this.metaFields('index')), (0, _toConsumableArray3.default)(this.metaFields('unique')));
_context3.next = 3;
return indexFields.reduce(function (promise, indexName) {
return promise.then(function () {
return _this.ensureIndex(connection, indexName);
});
}, _promise2.default.resolve());
case 3:
context$2$0.next = 5;
return regeneratorRuntime.awrap(_lodash2['default'].reduce(this.index, function (promise, option, indexName) {
return promise.then(function () {
return option === true ? _this.ensureIndex(connection, indexName) : _this.ensureIndex(connection, indexName, option);
});
}, Promise.resolve()));
case 3:
_context3.next = 5;
return _lodash2.default.reduce(this.index, function (promise, option, indexName) {
return promise.then(function () {
return option === true ? _this.ensureIndex(connection, indexName) : _this.ensureIndex(connection, indexName, option);
});
}, _promise2.default.resolve());
case 5:
case 'end':
return context$2$0.stop();
}
}, null, this);
}
case 5:
case 'end':
return _context3.stop();
}
}
}, _callee3, this);
}));
function ensureAllIndexes(_x9) {
return ref.apply(this, arguments);
}
return ensureAllIndexes;
}()
}, {
key: 'ensureIndex',
value: function ensureIndex(connection, indexName, option) {
return regeneratorRuntime.async(function ensureIndex$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
if (!(this.pk === indexName)) {
context$2$0.next = 2;
break;
}
value: function () {
var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(connection, indexName, option) {
return _regenerator2.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
if (!(this.pk === indexName)) {
_context4.next = 2;
break;
}
return context$2$0.abrupt('return');
return _context4.abrupt('return');
case 2:
context$2$0.next = 4;
return regeneratorRuntime.awrap(_rethinkdb2['default'].branch(this.query().indexList().contains(indexName).not(), this.query().indexCreate(indexName, option), null).run(connection));
case 2:
_context4.next = 4;
return _rethinkdb2.default.branch(this.query().indexList().contains(indexName).not(), this.query().indexCreate(indexName, option), null).run(connection);
case 4:
context$2$0.next = 6;
return regeneratorRuntime.awrap(this.query().indexWait(indexName).run(connection));
case 4:
_context4.next = 6;
return this.query().indexWait(indexName).run(connection);
case 6:
case 'end':
return context$2$0.stop();
}
}, null, this);
}
case 6:
case 'end':
return _context4.stop();
}
}
}, _callee4, this);
}));
function ensureIndex(_x10, _x11, _x12) {
return ref.apply(this, arguments);
}
return ensureIndex;
}()
}, {
key: 'query',
value: function query() {
return _rethinkdb2['default'].table(this.tableName);
return _rethinkdb2.default.table(this.tableName);
}

@@ -280,7 +334,7 @@ }, {

var insertData = _extends({}, data);
var insertData = (0, _extends4.default)({}, data);
if (this.hasField('createdAt')) {
insertData.createdAt = _rethinkdb2['default'].now();
insertData.createdAt = _rethinkdb2.default.now();
}
return this.assertIntegrate(data)['do'](function () {
return this.assertIntegrate(data).do(function () {
var _query;

@@ -305,10 +359,10 @@

var updateData = _extends({}, data);
var updateData = (0, _extends4.default)({}, data);
if (this.hasField('updatedAt')) {
updateData.updatedAt = _rethinkdb2['default'].now();
updateData.updatedAt = _rethinkdb2.default.now();
}
return this.assertIntegrate(data)['do'](function () {
return this.assertIntegrate(data).do(function () {
var _query2;
var selectionQuery = _lodash2['default'].isArray(pk) ? (_query2 = _this3.query()).getAll.apply(_query2, _toConsumableArray(pk)) : _this3.query().get(pk);
var selectionQuery = _lodash2.default.isArray(pk) ? (_query2 = _this3.query()).getAll.apply(_query2, (0, _toConsumableArray3.default)(pk)) : _this3.query().get(pk);
return selectionQuery.update.apply(selectionQuery, [updateData].concat(options));

@@ -323,14 +377,14 @@ });

var uniqueFields = this.metaFields('unique');
if (_lodash2['default'].isEmpty(uniqueFields)) return _rethinkdb2['default'].expr(true);
if (_lodash2.default.isEmpty(uniqueFields)) return _rethinkdb2.default.expr(true);
var uniqueData = _lodash2['default'].pick(data, uniqueFields);
if (_lodash2['default'].isEmpty(uniqueData)) return _rethinkdb2['default'].expr(true);
var uniqueData = _lodash2.default.pick(data, uniqueFields);
if (_lodash2.default.isEmpty(uniqueData)) return _rethinkdb2.default.expr(true);
return _lodash2['default'].reduce(uniqueData, function (expr, val, key) {
return expr['do'](function () {
if (_lodash2['default'].isUndefined(val) || _lodash2['default'].isNull(val)) return _rethinkdb2['default'].expr(null);
return _lodash2.default.reduce(uniqueData, function (expr, val, key) {
return expr.do(function () {
if (_lodash2.default.isUndefined(val) || _lodash2.default.isNull(val)) return _rethinkdb2.default.expr(null);
return _rethinkdb2['default'].branch(_this4.query().getAll(val, { index: key }).count().gt(0), _rethinkdb2['default'].error('"' + key + '" field is unique in "' + _this4.tableName + '" table. { "' + key + '": "' + val + '" } already exist.'), null);
return _rethinkdb2.default.branch(_this4.query().getAll(val, { index: key }).count().gt(0), _rethinkdb2.default.error('"' + key + '" field is unique in "' + _this4.tableName + '" table. { "' + key + '": "' + val + '" } already exist.'), null);
});
}, _rethinkdb2['default'].expr({}));
}, _rethinkdb2.default.expr({}));
}

@@ -346,3 +400,3 @@ }, {

return (_query$get = this.query().get(pk))['delete'].apply(_query$get, options);
return (_query$get = this.query().get(pk)).delete.apply(_query$get, options);
}

@@ -353,3 +407,3 @@ }, {

var relationObj = this.relations()[relation];
_assert2['default'].ok(relationObj, 'Relation \'' + this.tableName + '.' + relation + '\' is not exist.');
_assert2.default.ok(relationObj, 'Relation \'' + this.tableName + '.' + relation + '\' is not exist.');
return relationObj;

@@ -363,4 +417,4 @@ }

var joinedQuery = query.merge(function (row) {
return _lodash2['default'].chain(relations).omitBy(function (relations, key) {
return _lodash2['default'].startsWith(key, '_');
return _lodash2.default.chain(relations).omitBy(function (relations, key) {
return _lodash2.default.startsWith(key, '_');
}).reduce(function (joinObject, relations, key) {

@@ -370,3 +424,3 @@ var relatedQuery = _this5.getRelated(row, key);

// if nested
if (_lodash2['default'].isObject(relations) && !_lodash2['default'].isEmpty(relations)) {
if (_lodash2.default.isObject(relations) && !_lodash2.default.isEmpty(relations)) {
var _getRelation = _this5.getRelation(key);

@@ -379,7 +433,7 @@

return _extends({}, joinObject, _defineProperty({}, key, relatedQuery));
return (0, _extends4.default)({}, joinObject, (0, _defineProperty3.default)({}, key, relatedQuery));
}, {}).value();
});
return _rethinkdb2['default'].branch(query.typeOf().eq('NULL').not(), joinedQuery, query);
return _rethinkdb2.default.branch(query.typeOf().eq('NULL').not(), joinedQuery, query);
}

@@ -423,7 +477,6 @@ }, {

}]);
return Table;
})();
}();
exports['default'] = Table;
module.exports = exports['default'];
Table.pk = 'id';
exports.default = Table;
{
"name": "nothinkdb",
"version": "0.5.23",
"version": "0.5.24",
"description": "Functional toolkit for rethinkdb",

@@ -10,3 +10,3 @@ "main": "lib/nothinkdb.js",

"scripts": {
"test": "mocha --compilers js:babel/register --timeout 20000 ./src/**/__tests__/*-test.js",
"test": "mocha --compilers js:babel-register --timeout 20000 ./src/**/__tests__/*-test.js",
"build": "babel --ignore *-test.js -d lib src",

@@ -35,7 +35,13 @@ "clean": "rimraf lib",

"devDependencies": {
"babel": "^5.8.35",
"babel-eslint": "^4.1.7",
"babel-cli": "^6.9.0",
"babel-eslint": "^6.0.4",
"babel-plugin-transform-runtime": "^6.9.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-stage-0": "^6.5.0",
"babel-register": "^6.9.0",
"babel-runtime": "^6.9.0",
"chai": "^3.4.1",
"eslint": "^1.10.3",
"eslint-config-airbnb": "^0.1.0",
"eslint": "^2.10.2",
"eslint-config-airbnb": "^9.0.1",
"eslint-plugin-import": "^1.8.0",
"mocha": "^2.4.5",

@@ -42,0 +48,0 @@ "rethinkdb": "2.2.3",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc