UNPKG

7.63 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4Object.defineProperty(exports, "__esModule", {
5 value: true
6});
7exports["default"] = exports.ModelModule = void 0;
8var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18var _err = _interopRequireDefault(require("@lskjs/err"));
19var _module = _interopRequireDefault(require("@lskjs/module"));
20var _importFn = _interopRequireDefault(require("@lskjs/utils/importFn"));
21var _mongoose = require("mongoose");
22var _excluded = ["model", "collection"];
23function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25function _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); }; }
26function _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; } } // @ts-ignore
27var ModelModule = /*#__PURE__*/function (_Module) {
28 (0, _inherits2["default"])(ModelModule, _Module);
29 var _super = _createSuper(ModelModule);
30 function ModelModule() {
31 var _this;
32 (0, _classCallCheck2["default"])(this, ModelModule);
33 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34 args[_key] = arguments[_key];
35 }
36 _this = _super.call.apply(_super, [this].concat(args));
37 _this.Schema = _mongoose.Schema;
38 _this.Model = null;
39 _this.model = null;
40 _this.dbName = 'db';
41 return _this;
42 }
43 (0, _createClass2["default"])(ModelModule, [{
44 key: "createModel",
45 value: function () {
46 var _createModel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
47 var db, Model, mergedOptions, modelName, collection, options, schema, mongooseModel;
48 return _regenerator["default"].wrap(function _callee$(_context) {
49 while (1) switch (_context.prev = _context.next) {
50 case 0:
51 if (this.dbName) {
52 _context.next = 2;
53 break;
54 }
55 throw new _err["default"]('!this.dbName');
56 case 2:
57 _context.next = 4;
58 return this.app.module(this.dbName, {
59 run: true
60 });
61 case 4:
62 db = _context.sent;
63 if (db.client) {
64 _context.next = 8;
65 break;
66 }
67 this.log.error('!db.client');
68 throw new _err["default"]('!db.client');
69 case 8:
70 if (this.Model) {
71 _context.next = 11;
72 break;
73 }
74 this.log.error('!Model');
75 throw new _err["default"]('!Model');
76 case 11:
77 _context.next = 13;
78 return (0, _importFn["default"])(this.Model);
79 case 13:
80 Model = _context.sent;
81 mergedOptions = _objectSpread(_objectSpread({}, Model.defaultOptions || {}), Model.options || {});
82 modelName = mergedOptions.model, collection = mergedOptions.collection, options = (0, _objectWithoutProperties2["default"])(mergedOptions, _excluded);
83 if (modelName) {
84 _context.next = 18;
85 break;
86 }
87 throw new _err["default"]('!options.model');
88 case 18:
89 if (collection) {
90 _context.next = 20;
91 break;
92 }
93 throw new _err["default"]('!options.collection');
94 case 20:
95 schema = new this.Schema(Model.schema, options);
96 schema.statics.app = this.app;
97 schema.loadClass(Model);
98 if (!Model.initSchema) {
99 _context.next = 26;
100 break;
101 }
102 _context.next = 26;
103 return Model.initSchema(schema);
104 case 26:
105 mongooseModel = db.client.connection.model(modelName, schema, collection);
106 return _context.abrupt("return", mongooseModel);
107 case 28:
108 case "end":
109 return _context.stop();
110 }
111 }, _callee, this);
112 }));
113 function createModel() {
114 return _createModel.apply(this, arguments);
115 }
116 return createModel;
117 }()
118 }, {
119 key: "run",
120 value: function () {
121 var _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
122 return _regenerator["default"].wrap(function _callee2$(_context2) {
123 while (1) switch (_context2.prev = _context2.next) {
124 case 0:
125 _context2.next = 2;
126 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(ModelModule.prototype), "run", this).call(this);
127 case 2:
128 _context2.next = 4;
129 return this.createModel();
130 case 4:
131 this.model = _context2.sent;
132 case 5:
133 case "end":
134 return _context2.stop();
135 }
136 }, _callee2, this);
137 }));
138 function run() {
139 return _run.apply(this, arguments);
140 }
141 return run;
142 }()
143 }]);
144 return ModelModule;
145}(_module["default"]);
146exports.ModelModule = ModelModule;
147var _default = ModelModule;
148exports["default"] = _default;
149//# sourceMappingURL=ModelModule.js.map
\No newline at end of file