UNPKG

7.9 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = exports.ModelModule = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
18var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
20var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
22var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
23
24var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
26var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
28var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
30var _err = _interopRequireDefault(require("@lskjs/err"));
31
32var _module = _interopRequireDefault(require("@lskjs/module"));
33
34var _importFn = _interopRequireDefault(require("@lskjs/utils/importFn"));
35
36var _mongoose = require("mongoose");
37
38var _excluded = ["model", "collection"];
39
40function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
41
42function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
44function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
45
46function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
48var ModelModule = /*#__PURE__*/function (_Module) {
49 (0, _inherits2["default"])(ModelModule, _Module);
50
51 var _super = _createSuper(ModelModule);
52
53 function ModelModule() {
54 var _this;
55
56 (0, _classCallCheck2["default"])(this, ModelModule);
57
58 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
59 args[_key] = arguments[_key];
60 }
61
62 _this = _super.call.apply(_super, [this].concat(args));
63 _this.Schema = _mongoose.Schema;
64 _this.Model = null;
65 _this.model = null;
66 _this.dbName = 'db';
67 return _this;
68 }
69
70 (0, _createClass2["default"])(ModelModule, [{
71 key: "createModel",
72 value: function () {
73 var _createModel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
74 var db, Model, mergedOptions, modelName, collection, options, schema, mongooseModel;
75 return _regenerator["default"].wrap(function _callee$(_context) {
76 while (1) {
77 switch (_context.prev = _context.next) {
78 case 0:
79 if (this.dbName) {
80 _context.next = 2;
81 break;
82 }
83
84 throw new _err["default"]('!this.dbName');
85
86 case 2:
87 _context.next = 4;
88 return this.app.module(this.dbName, {
89 run: true
90 });
91
92 case 4:
93 db = _context.sent;
94
95 if (db.client) {
96 _context.next = 8;
97 break;
98 }
99
100 this.log.error('!db.client');
101 throw new _err["default"]('!db.client');
102
103 case 8:
104 if (this.Model) {
105 _context.next = 11;
106 break;
107 }
108
109 this.log.error('!Model');
110 throw new _err["default"]('!Model');
111
112 case 11:
113 _context.next = 13;
114 return (0, _importFn["default"])(this.Model);
115
116 case 13:
117 Model = _context.sent;
118 mergedOptions = _objectSpread(_objectSpread({}, Model.defaultOptions || {}), Model.options || {});
119 modelName = mergedOptions.model, collection = mergedOptions.collection, options = (0, _objectWithoutProperties2["default"])(mergedOptions, _excluded);
120
121 if (modelName) {
122 _context.next = 18;
123 break;
124 }
125
126 throw new _err["default"]('!options.model');
127
128 case 18:
129 if (collection) {
130 _context.next = 20;
131 break;
132 }
133
134 throw new _err["default"]('!options.collection');
135
136 case 20:
137 schema = new this.Schema(Model.schema, options);
138 schema.statics.app = this.app;
139 schema.loadClass(Model);
140
141 if (!Model.initSchema) {
142 _context.next = 26;
143 break;
144 }
145
146 _context.next = 26;
147 return Model.initSchema(schema);
148
149 case 26:
150 mongooseModel = db.client.connection.model(modelName, schema, collection);
151 return _context.abrupt("return", mongooseModel);
152
153 case 28:
154 case "end":
155 return _context.stop();
156 }
157 }
158 }, _callee, this);
159 }));
160
161 function createModel() {
162 return _createModel.apply(this, arguments);
163 }
164
165 return createModel;
166 }()
167 }, {
168 key: "run",
169 value: function () {
170 var _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
171 return _regenerator["default"].wrap(function _callee2$(_context2) {
172 while (1) {
173 switch (_context2.prev = _context2.next) {
174 case 0:
175 _context2.next = 2;
176 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ModelModule.prototype), "run", this).call(this);
177
178 case 2:
179 _context2.next = 4;
180 return this.createModel();
181
182 case 4:
183 this.model = _context2.sent;
184
185 case 5:
186 case "end":
187 return _context2.stop();
188 }
189 }
190 }, _callee2, this);
191 }));
192
193 function run() {
194 return _run.apply(this, arguments);
195 }
196
197 return run;
198 }()
199 }]);
200 return ModelModule;
201}(_module["default"]);
202
203exports.ModelModule = ModelModule;
204var _default = ModelModule;
205exports["default"] = _default;
206//# sourceMappingURL=ModelModule.js.map
\No newline at end of file