UNPKG

trivialmodels

Version:

A trivial javascript model system, designed to be easy to build backends for.

3 lines (2 loc) 7.94 kB
'use strict';var _lodash=require('lodash');var _lodash2=_interopRequireDefault(_lodash);var _baseModel=require('./lib/baseModel');var _baseModel2=_interopRequireDefault(_baseModel);var _errors=require('./lib/errors');var _errors2=_interopRequireDefault(_errors);var _types=require('./lib/types');var _types2=_interopRequireDefault(_types);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}function buildModelClass(){var TrivialModel=function(_BaseModel){_inherits(TrivialModel,_BaseModel);function TrivialModel(){_classCallCheck(this,TrivialModel);return _possibleConstructorReturn(this,Object.getPrototypeOf(TrivialModel).apply(this,arguments));}return TrivialModel;}(_baseModel2.default);return TrivialModel;}function defineModel(definition){var Model;if(definition.name&&_lodash2.default.isString(definition.name)){var name=definition.name.replace(/[\(\)\[\]%=+-\/\*\s;\.]/g,'');Model=eval('('+buildModelClass.toString().replace(/TrivialModel/g,name)+')()');}else {Model=buildModelClass();}Model.setSchema(definition.schema);Model.setDriver(definition.driver);return Model;}module.exports={define:defineModel,BaseModel:_baseModel2.default,errors:_errors2.default,types:{String:function String(opts){return new _types2.default.String(opts);},Number:function Number(opts){return new _types2.default.Number(opts);},Boolean:function Boolean(opts){return new _types2.default.Boolean(opts);},Date:function Date(opts){return new _types2.default.Date(opts);},Object:function Object(opts){return new _types2.default.Object(opts);},Array:function Array(opts){return new _types2.default.Array(opts);},Enum:function Enum(opts){return new _types2.default.Enum(opts);},Any:function Any(opts){return new _types2.default.Any(opts);}}}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cml2aWFsTW9kZWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJvdENBY0EsU0FBUyxlQUFlLEVBQ3hCLEtBQ1UsWUFBWSxnQ0FBWixZQUFZLHNCQUFaLFlBQVksd0JBQVosWUFBWSwrREFBWixZQUFZLGlDQUFaLFlBQVksd0JBQ2xCLE9BQU8sWUFBWSxDQUFDLENBQ3ZCLEFBSUQsU0FBUyxXQUFXLENBQUMsVUFBVSxDQUMvQixDQUNJLElBQUksS0FBSyxDQUFDLEFBRVYsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFJLGlCQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQ2pELENBR0ksSUFBSSxJQUFJLENBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUUsRUFBRSxDQUFDLENBQUMsQUFHbkUsS0FBSyxDQUFJLElBQUksQ0FBQyxHQUFHLENBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUUsSUFBSSxDQUFDLENBQUcsS0FBSyxDQUFDLEFBQUMsQ0FBQyxDQUMzRixLQUVELENBQ0ksS0FBSyxDQUFHLGVBQWUsRUFBRSxDQUFDLENBQzdCLEFBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQUFDbkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQUFFbkMsT0FBTyxLQUFLLENBQUMsQ0FDaEIsQUFLRCxNQUFNLENBQUMsT0FBTyxDQUFHLENBQ2IsTUFBTSxDQUFFLFdBQVcsQ0FDbkIsU0FBUyxvQkFBQSxDQUNULE1BQU0saUJBQUEsQ0FDTixLQUFLLENBQUcsQ0FDSixNQUFNLENBQUUsZ0JBQUMsSUFBSSxDQUFLLENBQUUsT0FBTyxJQUFJLGdCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQ3BELE1BQU0sQ0FBRSxnQkFBQyxJQUFJLENBQUssQ0FBRSxPQUFPLElBQUksZ0JBQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsQ0FDcEQsT0FBTyxDQUFFLGlCQUFDLElBQUksQ0FBSyxDQUFFLE9BQU8sSUFBSSxnQkFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUN0RCxJQUFJLENBQUUsY0FBQyxJQUFJLENBQUssQ0FBRSxPQUFPLElBQUksZ0JBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsQ0FDaEQsTUFBTSxDQUFFLGdCQUFDLElBQUksQ0FBSyxDQUFFLE9BQU8sSUFBSSxnQkFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUNwRCxLQUFLLENBQUUsZUFBQyxJQUFJLENBQUssQ0FBRSxPQUFPLElBQUksZ0JBQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsQ0FDbEQsSUFBSSxDQUFFLGNBQUMsSUFBSSxDQUFLLENBQUUsT0FBTyxJQUFJLGdCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQ2hELEdBQUcsQ0FBRSxhQUFDLElBQUksQ0FBSyxDQUFFLE9BQU8sSUFBSSxnQkFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUNqRCxDQUNKLENBQUMiLCJmaWxlIjoidHJpdmlhbE1vZGVscy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFRyaXZpYWxNb2RlbFxuLy8vXG4vLy8gQG1vZHVsZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCBCYXNlTW9kZWwgZnJvbSAnLi9saWIvYmFzZU1vZGVsJztcbmltcG9ydCBlcnJvcnMgZnJvbSAnLi9saWIvZXJyb3JzJztcbmltcG9ydCB0eXBlcyBmcm9tICcuL2xpYi90eXBlcyc7XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBidWlsZE1vZGVsQ2xhc3MoKVxue1xuICAgIGNsYXNzIFRyaXZpYWxNb2RlbCBleHRlbmRzIEJhc2VNb2RlbHt9XG4gICAgcmV0dXJuIFRyaXZpYWxNb2RlbDtcbn0gLy8gZW5kIGJ1aWxkTW9kZWxDbGFzc1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gZGVmaW5lTW9kZWwoZGVmaW5pdGlvbilcbntcbiAgICB2YXIgTW9kZWw7XG5cbiAgICBpZihkZWZpbml0aW9uLm5hbWUgJiYgXy5pc1N0cmluZyhkZWZpbml0aW9uLm5hbWUpKVxuICAgIHtcbiAgICAgICAgLy8gU2FuaXRpemUgdGhlIG5hbWUgYSBsaXR0bGUgYml0OyB3ZSBkb24ndCBhbGxvdzogKCwgKSwgWywgXSwgJSwgPSwgKywgLSwgLywgKiwgOywgLiwgb3Igd2hpdGVzcGFjZS4gSWYgeW91IGNhblxuICAgICAgICAvLyBzdGlsbCBicmVhayBldmFsIGFmdGVyIHRoaXMsIEkgdGlwIG15IGhhdCB0byB5b3UuXG4gICAgICAgIHZhciBuYW1lID0gZGVmaW5pdGlvbi5uYW1lLnJlcGxhY2UoL1tcXChcXClcXFtcXF0lPSstXFwvXFwqXFxzO1xcLl0vZywgJycpO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIHBhc3NlZCBpbiBhIG5hbWUgZm9yIHRoZSBtb2RlbCwgd2UgcmVzcGVjdCB0aGF0LCBvdGhlcndpc2Ugd2UgY2FsbCBpdCAnVHJpdmlhbE1vZGVsJy5cbiAgICAgICAgTW9kZWwgPSAoZXZhbCgnKCcgKyBidWlsZE1vZGVsQ2xhc3MudG9TdHJpbmcoKS5yZXBsYWNlKC9Ucml2aWFsTW9kZWwvZywgbmFtZSkgKyAnKSgpJykpO1xuICAgIH1cbiAgICBlbHNlXG4gICAge1xuICAgICAgICBNb2RlbCA9IGJ1aWxkTW9kZWxDbGFzcygpO1xuICAgIH0gLy8gZW5kIGlmXG5cbiAgICBNb2RlbC5zZXRTY2hlbWEoZGVmaW5pdGlvbi5zY2hlbWEpO1xuICAgIE1vZGVsLnNldERyaXZlcihkZWZpbml0aW9uLmRyaXZlcik7XG5cbiAgICByZXR1cm4gTW9kZWw7XG59IC8vIGVuZCBkZWZpbmVNb2RlbFxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUmV0YWluIENvbW1vbkpTIGV4cG9ydCBzZW1hbnRpY3MgZm9yIGNvbnN1bWVyc1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGVmaW5lOiBkZWZpbmVNb2RlbCxcbiAgICBCYXNlTW9kZWwsXG4gICAgZXJyb3JzLFxuICAgIHR5cGVzIDoge1xuICAgICAgICBTdHJpbmc6IChvcHRzKSA9PiB7IHJldHVybiBuZXcgdHlwZXMuU3RyaW5nKG9wdHMpOyB9LFxuICAgICAgICBOdW1iZXI6IChvcHRzKSA9PiB7IHJldHVybiBuZXcgdHlwZXMuTnVtYmVyKG9wdHMpOyB9LFxuICAgICAgICBCb29sZWFuOiAob3B0cykgPT4geyByZXR1cm4gbmV3IHR5cGVzLkJvb2xlYW4ob3B0cyk7IH0sXG4gICAgICAgIERhdGU6IChvcHRzKSA9PiB7IHJldHVybiBuZXcgdHlwZXMuRGF0ZShvcHRzKTsgfSxcbiAgICAgICAgT2JqZWN0OiAob3B0cykgPT4geyByZXR1cm4gbmV3IHR5cGVzLk9iamVjdChvcHRzKTsgfSxcbiAgICAgICAgQXJyYXk6IChvcHRzKSA9PiB7IHJldHVybiBuZXcgdHlwZXMuQXJyYXkob3B0cyk7IH0sXG4gICAgICAgIEVudW06IChvcHRzKSA9PiB7IHJldHVybiBuZXcgdHlwZXMuRW51bShvcHRzKTsgfSxcbiAgICAgICAgQW55OiAob3B0cykgPT4geyByZXR1cm4gbmV3IHR5cGVzLkFueShvcHRzKTsgfVxuICAgIH1cbn07XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIl19