UNPKG

4.67 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4Object.defineProperty(exports, "__esModule", {
5 value: true
6});
7exports["default"] = exports.Model = void 0;
8var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12var _bluebird = _interopRequireDefault(require("bluebird"));
13var _forEach = _interopRequireDefault(require("lodash/forEach"));
14var _get = _interopRequireDefault(require("lodash/get"));
15var _set = _interopRequireDefault(require("lodash/set"));
16var _mongoose = require("mongoose");
17var Model = /*#__PURE__*/function () {
18 function Model() {
19 (0, _classCallCheck2["default"])(this, Model);
20 this.__model = true;
21 } // TODO: еще раз об этом подумать
22 // overridable
23 (0, _createClass2["default"])(Model, [{
24 key: "setState",
25 value: function setState() {
26 var _this = this;
27 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28 (0, _forEach["default"])(state, function (value, key) {
29 (0, _set["default"])(_this, key, value);
30 // @ts-ignore
31 _this.markModified(key);
32 });
33 }
34 }, {
35 key: "getState",
36 value: function getState(key, def) {
37 if (!key) return this;
38 return (0, _get["default"])(this, key, def);
39 }
40
41 // eslint-disable-next-line @typescript-eslint/no-unused-vars
42 }], [{
43 key: "prepareOne",
44 value: function () {
45 var _prepareOne = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(obj, params) {
46 return _regenerator["default"].wrap(function _callee$(_context) {
47 while (1) switch (_context.prev = _context.next) {
48 case 0:
49 return _context.abrupt("return", obj);
50 case 1:
51 case "end":
52 return _context.stop();
53 }
54 }, _callee);
55 }));
56 function prepareOne(_x, _x2) {
57 return _prepareOne.apply(this, arguments);
58 }
59 return prepareOne;
60 }()
61 }, {
62 key: "prepare",
63 value: function () {
64 var _prepare = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(obj) {
65 var _this2 = this;
66 var params,
67 toObjectOne,
68 res,
69 _args2 = arguments;
70 return _regenerator["default"].wrap(function _callee2$(_context2) {
71 while (1) switch (_context2.prev = _context2.next) {
72 case 0:
73 params = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
74 // // console.log('PREPARE params.toObject', params.toObject);
75 // // console.log('params.toObject2@@@', params.toObject2);
76 toObjectOne = function toObjectOne(o) {
77 if (!params.toObject2 || !Object.keys(params.toObject2).length) return o;
78 if (o && o.toObject) return o.toObject(params.toObject2);
79 return o;
80 };
81 if (!Array.isArray(obj)) {
82 _context2.next = 8;
83 break;
84 }
85 _context2.next = 5;
86 return _bluebird["default"].map(obj, function (o) {
87 return _this2.prepareOne(o, params);
88 });
89 case 5:
90 res = _context2.sent;
91 _context2.next = 11;
92 break;
93 case 8:
94 _context2.next = 10;
95 return this.prepareOne(obj, params);
96 case 10:
97 res = _context2.sent;
98 case 11:
99 if (!Array.isArray(res)) {
100 _context2.next = 13;
101 break;
102 }
103 return _context2.abrupt("return", res.map(toObjectOne));
104 case 13:
105 return _context2.abrupt("return", toObjectOne(res));
106 case 14:
107 case "end":
108 return _context2.stop();
109 }
110 }, _callee2, this);
111 }));
112 function prepare(_x3) {
113 return _prepare.apply(this, arguments);
114 }
115 return prepare;
116 }()
117 }]);
118 return Model;
119}();
120exports.Model = Model;
121Model.Schema = _mongoose.Schema;
122Model.Types = _mongoose.Schema.Types;
123Model.defaultOptions = {
124 timestamps: true
125};
126Model.options = {};
127var _default = Model;
128exports["default"] = _default;
129//# sourceMappingURL=Model.js.map
\No newline at end of file