redink
Version:
RethinkDB model layer
62 lines (49 loc) • 5.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.redink = exports.isResourceArray = exports.isResource = exports.disconnect = exports.model = undefined;
var _Redink = require('./Redink');
var _Redink2 = _interopRequireDefault(_Redink);
var _Resource = require('./Resource');
var _Resource2 = _interopRequireDefault(_Resource);
var _ResourceArray = require('./ResourceArray');
var _ResourceArray2 = _interopRequireDefault(_ResourceArray);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function singleton() {
if (singleton.instance) {
return {
instance: function instance() {
return singleton.instance;
},
disconnect: function disconnect() {
return singleton.instance.disconnect();
}
};
}
return {
connect: function connect(options) {
singleton.instance = new _Redink2.default(options);
return singleton.instance.connect();
},
instance: function instance() {
throw new Error('Tried invoking Redink\'s singleton instance without first starting it. This could be ' + 'because you tried importing `model` or `registerSchemas` from Redink without creating a ' + 'connection. Please try running redink().connect() before invoking any of Redink\'s ' + 'methods.');
}
};
}
var model = exports.model = function model() {
var _singleton$instance;
return (_singleton$instance = singleton().instance()).model.apply(_singleton$instance, arguments);
};
var disconnect = exports.disconnect = function disconnect() {
return singleton().instance().disconnect();
};
var isResource = exports.isResource = function isResource(resource) {
return resource instanceof _Resource2.default;
};
var isResourceArray = exports.isResourceArray = function isResourceArray(resourceArray) {
return resourceArray instanceof _ResourceArray2.default;
};
exports.redink = singleton;
exports.default = singleton;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJzaW5nbGV0b24iLCJpbnN0YW5jZSIsImRpc2Nvbm5lY3QiLCJjb25uZWN0Iiwib3B0aW9ucyIsIkVycm9yIiwibW9kZWwiLCJpc1Jlc291cmNlIiwicmVzb3VyY2UiLCJpc1Jlc291cmNlQXJyYXkiLCJyZXNvdXJjZUFycmF5IiwicmVkaW5rIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxTQUFTQSxTQUFULEdBQXFCO0FBQ25CLE1BQUlBLFVBQVVDLFFBQWQsRUFBd0I7QUFDdEIsV0FBTztBQUNMQSxjQURLLHNCQUNNO0FBQ1QsZUFBT0QsVUFBVUMsUUFBakI7QUFDRCxPQUhJO0FBS0xDLGdCQUxLLHdCQUtRO0FBQ1gsZUFBT0YsVUFBVUMsUUFBVixDQUFtQkMsVUFBbkIsRUFBUDtBQUNEO0FBUEksS0FBUDtBQVNEOztBQUVELFNBQU87QUFDTEMsV0FESyxtQkFDR0MsT0FESCxFQUNZO0FBQ2ZKLGdCQUFVQyxRQUFWLEdBQXFCLHFCQUFXRyxPQUFYLENBQXJCO0FBQ0EsYUFBT0osVUFBVUMsUUFBVixDQUFtQkUsT0FBbkIsRUFBUDtBQUNELEtBSkk7QUFNTEYsWUFOSyxzQkFNTTtBQUNULFlBQU0sSUFBSUksS0FBSixDQUNKLDBGQUNBLDBGQURBLEdBRUEscUZBRkEsR0FHQSxVQUpJLENBQU47QUFNRDtBQWJJLEdBQVA7QUFlRDs7QUFFTSxJQUFNQyx3QkFBUSxTQUFSQSxLQUFRO0FBQUE7O0FBQUEsU0FBYSxtQ0FBWUwsUUFBWixJQUF1QkssS0FBdkIsc0NBQWI7QUFBQSxDQUFkO0FBQ0EsSUFBTUosa0NBQWEsU0FBYkEsVUFBYTtBQUFBLFNBQU1GLFlBQVlDLFFBQVosR0FBdUJDLFVBQXZCLEVBQU47QUFBQSxDQUFuQjtBQUNBLElBQU1LLGtDQUFhLFNBQWJBLFVBQWEsQ0FBQ0MsUUFBRDtBQUFBLFNBQWNBLHNDQUFkO0FBQUEsQ0FBbkI7QUFDQSxJQUFNQyw0Q0FBa0IsU0FBbEJBLGVBQWtCLENBQUNDLGFBQUQ7QUFBQSxTQUFtQkEsZ0RBQW5CO0FBQUEsQ0FBeEI7O1FBRWVDLE0sR0FBYlgsUztrQkFDTUEsUyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWRpbmsgZnJvbSAnLi9SZWRpbmsnO1xuaW1wb3J0IFJlc291cmNlIGZyb20gJy4vUmVzb3VyY2UnO1xuaW1wb3J0IFJlc291cmNlQXJyYXkgZnJvbSAnLi9SZXNvdXJjZUFycmF5JztcblxuZnVuY3Rpb24gc2luZ2xldG9uKCkge1xuICBpZiAoc2luZ2xldG9uLmluc3RhbmNlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gc2luZ2xldG9uLmluc3RhbmNlO1xuICAgICAgfSxcblxuICAgICAgZGlzY29ubmVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHNpbmdsZXRvbi5pbnN0YW5jZS5kaXNjb25uZWN0KCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNvbm5lY3Qob3B0aW9ucykge1xuICAgICAgc2luZ2xldG9uLmluc3RhbmNlID0gbmV3IFJlZGluayhvcHRpb25zKTtcbiAgICAgIHJldHVybiBzaW5nbGV0b24uaW5zdGFuY2UuY29ubmVjdCgpO1xuICAgIH0sXG5cbiAgICBpbnN0YW5jZSgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RyaWVkIGludm9raW5nIFJlZGlua1xcJ3Mgc2luZ2xldG9uIGluc3RhbmNlIHdpdGhvdXQgZmlyc3Qgc3RhcnRpbmcgaXQuIFRoaXMgY291bGQgYmUgJyArXG4gICAgICAgICdiZWNhdXNlIHlvdSB0cmllZCBpbXBvcnRpbmcgYG1vZGVsYCBvciBgcmVnaXN0ZXJTY2hlbWFzYCBmcm9tIFJlZGluayB3aXRob3V0IGNyZWF0aW5nIGEgJyArXG4gICAgICAgICdjb25uZWN0aW9uLiBQbGVhc2UgdHJ5IHJ1bm5pbmcgcmVkaW5rKCkuY29ubmVjdCgpIGJlZm9yZSBpbnZva2luZyBhbnkgb2YgUmVkaW5rXFwncyAnICtcbiAgICAgICAgJ21ldGhvZHMuJ1xuICAgICAgKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgbW9kZWwgPSAoLi4uYXJncykgPT4gc2luZ2xldG9uKCkuaW5zdGFuY2UoKS5tb2RlbCguLi5hcmdzKTtcbmV4cG9ydCBjb25zdCBkaXNjb25uZWN0ID0gKCkgPT4gc2luZ2xldG9uKCkuaW5zdGFuY2UoKS5kaXNjb25uZWN0KCk7XG5leHBvcnQgY29uc3QgaXNSZXNvdXJjZSA9IChyZXNvdXJjZSkgPT4gcmVzb3VyY2UgaW5zdGFuY2VvZiBSZXNvdXJjZTtcbmV4cG9ydCBjb25zdCBpc1Jlc291cmNlQXJyYXkgPSAocmVzb3VyY2VBcnJheSkgPT4gcmVzb3VyY2VBcnJheSBpbnN0YW5jZW9mIFJlc291cmNlQXJyYXk7XG5cbmV4cG9ydCB7IHNpbmdsZXRvbiBhcyByZWRpbmsgfTtcbmV4cG9ydCBkZWZhdWx0IHNpbmdsZXRvbjtcbiJdfQ==