@nocobase/database 0.7.0-alpha.9 → 0.7.1-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/lib/collection-importer.js +85 -68
  2. package/lib/collection.d.ts +6 -2
  3. package/lib/collection.js +371 -210
  4. package/lib/database.d.ts +23 -4
  5. package/lib/database.js +599 -273
  6. package/lib/fields/array-field.js +45 -25
  7. package/lib/fields/belongs-to-field.js +101 -54
  8. package/lib/fields/belongs-to-many-field.js +98 -53
  9. package/lib/fields/boolean-field.js +24 -9
  10. package/lib/fields/context-field.js +77 -45
  11. package/lib/fields/date-field.js +24 -9
  12. package/lib/fields/field.d.ts +4 -1
  13. package/lib/fields/field.js +231 -75
  14. package/lib/fields/formula-field.d.ts +19 -0
  15. package/lib/fields/formula-field.js +184 -0
  16. package/lib/fields/has-inverse-field.js +4 -2
  17. package/lib/fields/has-many-field.js +105 -56
  18. package/lib/fields/has-one-field.js +105 -54
  19. package/lib/fields/index.d.ts +5 -1
  20. package/lib/fields/index.js +290 -32
  21. package/lib/fields/json-field.js +36 -16
  22. package/lib/fields/number-field.js +53 -26
  23. package/lib/fields/password-field.js +120 -73
  24. package/lib/fields/radio-field.js +75 -47
  25. package/lib/fields/relation-field.js +41 -28
  26. package/lib/fields/sort-field.js +165 -89
  27. package/lib/fields/string-field.js +24 -9
  28. package/lib/fields/text-field.js +24 -9
  29. package/lib/fields/time-field.js +24 -9
  30. package/lib/fields/uid-field.js +57 -28
  31. package/lib/fields/uuid-field.d.ts +9 -0
  32. package/lib/fields/uuid-field.js +39 -0
  33. package/lib/fields/virtual-field.js +24 -9
  34. package/lib/filter-parser.js +288 -179
  35. package/lib/index.d.ts +1 -0
  36. package/lib/index.js +224 -29
  37. package/lib/magic-attribute-model.js +123 -71
  38. package/lib/migration.d.ts +35 -0
  39. package/lib/migration.js +90 -0
  40. package/lib/mock-database.d.ts +1 -0
  41. package/lib/mock-database.js +69 -34
  42. package/lib/model-hook.d.ts +5 -5
  43. package/lib/model-hook.js +109 -60
  44. package/lib/model.js +116 -81
  45. package/lib/operators/array.js +136 -96
  46. package/lib/operators/association.js +30 -14
  47. package/lib/operators/boolean.d.ts +13 -0
  48. package/lib/operators/boolean.js +35 -0
  49. package/lib/operators/date.js +78 -34
  50. package/lib/operators/empty.js +113 -75
  51. package/lib/operators/index.js +15 -3
  52. package/lib/operators/ne.js +27 -12
  53. package/{esm/operators/ne.d.ts → lib/operators/notIn.d.ts} +2 -2
  54. package/lib/operators/notIn.js +29 -0
  55. package/lib/operators/string.js +56 -35
  56. package/lib/operators/utils.js +18 -10
  57. package/lib/options-parser.js +345 -215
  58. package/lib/playground.js +66 -53
  59. package/lib/relation-repository/belongs-to-many-repository.js +281 -198
  60. package/lib/relation-repository/belongs-to-repository.js +10 -6
  61. package/lib/relation-repository/hasmany-repository.js +168 -121
  62. package/lib/relation-repository/hasone-repository.js +10 -6
  63. package/lib/relation-repository/multiple-relation-repository.d.ts +3 -3
  64. package/lib/relation-repository/multiple-relation-repository.js +263 -148
  65. package/lib/relation-repository/relation-repository.d.ts +1 -1
  66. package/lib/relation-repository/relation-repository.js +163 -93
  67. package/lib/relation-repository/single-relation-repository.d.ts +6 -6
  68. package/lib/relation-repository/single-relation-repository.js +145 -99
  69. package/lib/relation-repository/types.js +4 -2
  70. package/lib/repository.d.ts +4 -7
  71. package/lib/repository.js +473 -291
  72. package/lib/transaction-decorator.js +80 -67
  73. package/lib/update-associations.d.ts +1 -2
  74. package/lib/update-associations.js +525 -321
  75. package/lib/update-guard.js +160 -117
  76. package/package.json +9 -9
  77. package/src/__tests__/collection.test.ts +27 -0
  78. package/src/__tests__/database.test.ts +47 -0
  79. package/src/__tests__/fields/formula-field.test.ts +69 -0
  80. package/src/__tests__/fields/uuid-field.test.ts +30 -0
  81. package/src/__tests__/fixtures/migrations/m1.ts +7 -0
  82. package/src/__tests__/fixtures/migrations/m2.ts +7 -0
  83. package/src/__tests__/hooks/afterCreateWithAssociations.test.ts +33 -0
  84. package/src/__tests__/migrator.test.ts +70 -0
  85. package/src/__tests__/model-hook.test.ts +54 -0
  86. package/src/__tests__/operator/notIn.test.ts +33 -0
  87. package/src/__tests__/option-parser.test.ts +30 -6
  88. package/src/__tests__/relation-repository/belongs-to-many-repository.test.ts +1 -1
  89. package/src/__tests__/sequelize-hooks.test.ts +69 -0
  90. package/src/__tests__/sort.test.ts +51 -0
  91. package/src/__tests__/update-associations.test.ts +3 -3
  92. package/src/collection-importer.ts +12 -20
  93. package/src/collection.ts +26 -2
  94. package/src/database.ts +144 -14
  95. package/src/fields/field.ts +88 -1
  96. package/src/fields/formula-field.ts +106 -0
  97. package/src/fields/index.ts +6 -0
  98. package/src/fields/password-field.ts +2 -0
  99. package/src/fields/uuid-field.ts +21 -0
  100. package/src/index.ts +1 -0
  101. package/src/migration.ts +76 -0
  102. package/src/mock-database.ts +2 -1
  103. package/src/model-hook.ts +26 -22
  104. package/src/operators/boolean.ts +18 -0
  105. package/src/operators/index.ts +2 -0
  106. package/src/operators/notIn.ts +12 -0
  107. package/src/options-parser.ts +14 -10
  108. package/src/relation-repository/multiple-relation-repository.ts +14 -6
  109. package/src/relation-repository/relation-repository.ts +12 -6
  110. package/src/relation-repository/single-relation-repository.ts +11 -7
  111. package/src/repository.ts +20 -10
  112. package/src/update-associations.ts +2 -3
  113. package/esm/collection-importer.d.ts +0 -7
  114. package/esm/collection-importer.js +0 -49
  115. package/esm/collection-importer.js.map +0 -1
  116. package/esm/collection.d.ts +0 -73
  117. package/esm/collection.js +0 -224
  118. package/esm/collection.js.map +0 -1
  119. package/esm/database.d.ts +0 -101
  120. package/esm/database.js +0 -275
  121. package/esm/database.js.map +0 -1
  122. package/esm/fields/array-field.d.ts +0 -11
  123. package/esm/fields/array-field.js +0 -26
  124. package/esm/fields/array-field.js.map +0 -1
  125. package/esm/fields/belongs-to-field.d.ts +0 -12
  126. package/esm/fields/belongs-to-field.js +0 -57
  127. package/esm/fields/belongs-to-field.js.map +0 -1
  128. package/esm/fields/belongs-to-many-field.d.ts +0 -11
  129. package/esm/fields/belongs-to-many-field.js +0 -55
  130. package/esm/fields/belongs-to-many-field.js.map +0 -1
  131. package/esm/fields/boolean-field.d.ts +0 -8
  132. package/esm/fields/boolean-field.js +0 -8
  133. package/esm/fields/boolean-field.js.map +0 -1
  134. package/esm/fields/context-field.d.ts +0 -13
  135. package/esm/fields/context-field.js +0 -43
  136. package/esm/fields/context-field.js.map +0 -1
  137. package/esm/fields/date-field.d.ts +0 -8
  138. package/esm/fields/date-field.js +0 -8
  139. package/esm/fields/date-field.js.map +0 -1
  140. package/esm/fields/field.d.ts +0 -37
  141. package/esm/fields/field.js +0 -74
  142. package/esm/fields/field.js.map +0 -1
  143. package/esm/fields/has-inverse-field.d.ts +0 -4
  144. package/esm/fields/has-inverse-field.js +0 -2
  145. package/esm/fields/has-inverse-field.js.map +0 -1
  146. package/esm/fields/has-many-field.d.ts +0 -64
  147. package/esm/fields/has-many-field.js +0 -58
  148. package/esm/fields/has-many-field.js.map +0 -1
  149. package/esm/fields/has-one-field.d.ts +0 -64
  150. package/esm/fields/has-one-field.js +0 -57
  151. package/esm/fields/has-one-field.js.map +0 -1
  152. package/esm/fields/index.d.ts +0 -40
  153. package/esm/fields/index.js +0 -21
  154. package/esm/fields/index.js.map +0 -1
  155. package/esm/fields/json-field.d.ts +0 -14
  156. package/esm/fields/json-field.js +0 -17
  157. package/esm/fields/json-field.js.map +0 -1
  158. package/esm/fields/number-field.d.ts +0 -32
  159. package/esm/fields/number-field.js +0 -28
  160. package/esm/fields/number-field.js.map +0 -1
  161. package/esm/fields/password-field.d.ts +0 -21
  162. package/esm/fields/password-field.js +0 -71
  163. package/esm/fields/password-field.js.map +0 -1
  164. package/esm/fields/radio-field.d.ts +0 -14
  165. package/esm/fields/radio-field.js +0 -49
  166. package/esm/fields/radio-field.js.map +0 -1
  167. package/esm/fields/relation-field.d.ts +0 -20
  168. package/esm/fields/relation-field.js +0 -27
  169. package/esm/fields/relation-field.js.map +0 -1
  170. package/esm/fields/sort-field.d.ts +0 -16
  171. package/esm/fields/sort-field.js +0 -90
  172. package/esm/fields/sort-field.js.map +0 -1
  173. package/esm/fields/string-field.d.ts +0 -8
  174. package/esm/fields/string-field.js +0 -8
  175. package/esm/fields/string-field.js.map +0 -1
  176. package/esm/fields/text-field.d.ts +0 -8
  177. package/esm/fields/text-field.js +0 -8
  178. package/esm/fields/text-field.js.map +0 -1
  179. package/esm/fields/time-field.d.ts +0 -8
  180. package/esm/fields/time-field.js +0 -8
  181. package/esm/fields/time-field.js.map +0 -1
  182. package/esm/fields/uid-field.d.ts +0 -10
  183. package/esm/fields/uid-field.js +0 -27
  184. package/esm/fields/uid-field.js.map +0 -1
  185. package/esm/fields/virtual-field.d.ts +0 -8
  186. package/esm/fields/virtual-field.js +0 -8
  187. package/esm/fields/virtual-field.js.map +0 -1
  188. package/esm/filter-parser.d.ts +0 -27
  189. package/esm/filter-parser.js +0 -185
  190. package/esm/filter-parser.js.map +0 -1
  191. package/esm/index.d.ts +0 -15
  192. package/esm/index.js +0 -16
  193. package/esm/index.js.map +0 -1
  194. package/esm/magic-attribute-model.d.ts +0 -7
  195. package/esm/magic-attribute-model.js +0 -70
  196. package/esm/magic-attribute-model.js.map +0 -1
  197. package/esm/mock-database.d.ts +0 -22
  198. package/esm/mock-database.js +0 -34
  199. package/esm/mock-database.js.map +0 -1
  200. package/esm/model-hook.d.ts +0 -12
  201. package/esm/model-hook.js +0 -61
  202. package/esm/model-hook.js.map +0 -1
  203. package/esm/model.d.ts +0 -15
  204. package/esm/model.js +0 -80
  205. package/esm/model.js.map +0 -1
  206. package/esm/operators/array.d.ts +0 -26
  207. package/esm/operators/array.js +0 -105
  208. package/esm/operators/array.js.map +0 -1
  209. package/esm/operators/association.d.ts +0 -10
  210. package/esm/operators/association.js +0 -14
  211. package/esm/operators/association.js.map +0 -1
  212. package/esm/operators/date.d.ts +0 -34
  213. package/esm/operators/date.js +0 -35
  214. package/esm/operators/date.js.map +0 -1
  215. package/esm/operators/empty.d.ts +0 -28
  216. package/esm/operators/empty.js +0 -58
  217. package/esm/operators/empty.js.map +0 -1
  218. package/esm/operators/index.d.ts +0 -2
  219. package/esm/operators/index.js +0 -2
  220. package/esm/operators/index.js.map +0 -1
  221. package/esm/operators/ne.js +0 -12
  222. package/esm/operators/ne.js.map +0 -1
  223. package/esm/operators/string.d.ts +0 -21
  224. package/esm/operators/string.js +0 -35
  225. package/esm/operators/string.js.map +0 -1
  226. package/esm/operators/utils.d.ts +0 -4
  227. package/esm/operators/utils.js +0 -11
  228. package/esm/operators/utils.js.map +0 -1
  229. package/esm/options-parser.d.ts +0 -31
  230. package/esm/options-parser.js +0 -225
  231. package/esm/options-parser.js.map +0 -1
  232. package/esm/playground.d.ts +0 -1
  233. package/esm/playground.js +0 -53
  234. package/esm/playground.js.map +0 -1
  235. package/esm/relation-repository/belongs-to-many-repository.d.ts +0 -36
  236. package/esm/relation-repository/belongs-to-many-repository.js +0 -199
  237. package/esm/relation-repository/belongs-to-many-repository.js.map +0 -1
  238. package/esm/relation-repository/belongs-to-repository.d.ts +0 -17
  239. package/esm/relation-repository/belongs-to-repository.js +0 -4
  240. package/esm/relation-repository/belongs-to-repository.js.map +0 -1
  241. package/esm/relation-repository/hasmany-repository.d.ts +0 -23
  242. package/esm/relation-repository/hasmany-repository.js +0 -125
  243. package/esm/relation-repository/hasmany-repository.js.map +0 -1
  244. package/esm/relation-repository/hasone-repository.d.ts +0 -17
  245. package/esm/relation-repository/hasone-repository.js +0 -4
  246. package/esm/relation-repository/hasone-repository.js.map +0 -1
  247. package/esm/relation-repository/multiple-relation-repository.d.ts +0 -23
  248. package/esm/relation-repository/multiple-relation-repository.js +0 -149
  249. package/esm/relation-repository/multiple-relation-repository.js.map +0 -1
  250. package/esm/relation-repository/relation-repository.d.ts +0 -32
  251. package/esm/relation-repository/relation-repository.js +0 -93
  252. package/esm/relation-repository/relation-repository.js.map +0 -1
  253. package/esm/relation-repository/single-relation-repository.d.ts +0 -23
  254. package/esm/relation-repository/single-relation-repository.js +0 -96
  255. package/esm/relation-repository/single-relation-repository.js.map +0 -1
  256. package/esm/relation-repository/types.d.ts +0 -7
  257. package/esm/relation-repository/types.js +0 -2
  258. package/esm/relation-repository/types.js.map +0 -1
  259. package/esm/repository.d.ts +0 -165
  260. package/esm/repository.js +0 -276
  261. package/esm/repository.js.map +0 -1
  262. package/esm/transaction-decorator.d.ts +0 -1
  263. package/esm/transaction-decorator.js +0 -63
  264. package/esm/transaction-decorator.js.map +0 -1
  265. package/esm/update-associations.d.ts +0 -60
  266. package/esm/update-associations.js +0 -362
  267. package/esm/update-associations.js.map +0 -1
  268. package/esm/update-guard.d.ts +0 -26
  269. package/esm/update-guard.js +0 -122
  270. package/esm/update-guard.js.map +0 -1
  271. package/lib/collection-importer.js.map +0 -1
  272. package/lib/collection.js.map +0 -1
  273. package/lib/database.js.map +0 -1
  274. package/lib/fields/array-field.js.map +0 -1
  275. package/lib/fields/belongs-to-field.js.map +0 -1
  276. package/lib/fields/belongs-to-many-field.js.map +0 -1
  277. package/lib/fields/boolean-field.js.map +0 -1
  278. package/lib/fields/context-field.js.map +0 -1
  279. package/lib/fields/date-field.js.map +0 -1
  280. package/lib/fields/field.js.map +0 -1
  281. package/lib/fields/has-inverse-field.js.map +0 -1
  282. package/lib/fields/has-many-field.js.map +0 -1
  283. package/lib/fields/has-one-field.js.map +0 -1
  284. package/lib/fields/index.js.map +0 -1
  285. package/lib/fields/json-field.js.map +0 -1
  286. package/lib/fields/number-field.js.map +0 -1
  287. package/lib/fields/password-field.js.map +0 -1
  288. package/lib/fields/radio-field.js.map +0 -1
  289. package/lib/fields/relation-field.js.map +0 -1
  290. package/lib/fields/sort-field.js.map +0 -1
  291. package/lib/fields/string-field.js.map +0 -1
  292. package/lib/fields/text-field.js.map +0 -1
  293. package/lib/fields/time-field.js.map +0 -1
  294. package/lib/fields/uid-field.js.map +0 -1
  295. package/lib/fields/virtual-field.js.map +0 -1
  296. package/lib/filter-parser.js.map +0 -1
  297. package/lib/index.js.map +0 -1
  298. package/lib/magic-attribute-model.js.map +0 -1
  299. package/lib/mock-database.js.map +0 -1
  300. package/lib/model-hook.js.map +0 -1
  301. package/lib/model.js.map +0 -1
  302. package/lib/operators/array.js.map +0 -1
  303. package/lib/operators/association.js.map +0 -1
  304. package/lib/operators/date.js.map +0 -1
  305. package/lib/operators/empty.js.map +0 -1
  306. package/lib/operators/index.js.map +0 -1
  307. package/lib/operators/ne.js.map +0 -1
  308. package/lib/operators/string.js.map +0 -1
  309. package/lib/operators/utils.js.map +0 -1
  310. package/lib/options-parser.js.map +0 -1
  311. package/lib/playground.js.map +0 -1
  312. package/lib/relation-repository/belongs-to-many-repository.js.map +0 -1
  313. package/lib/relation-repository/belongs-to-repository.js.map +0 -1
  314. package/lib/relation-repository/hasmany-repository.js.map +0 -1
  315. package/lib/relation-repository/hasone-repository.js.map +0 -1
  316. package/lib/relation-repository/multiple-relation-repository.js.map +0 -1
  317. package/lib/relation-repository/relation-repository.js.map +0 -1
  318. package/lib/relation-repository/single-relation-repository.js.map +0 -1
  319. package/lib/relation-repository/types.js.map +0 -1
  320. package/lib/repository.js.map +0 -1
  321. package/lib/transaction-decorator.js.map +0 -1
  322. package/lib/update-associations.js.map +0 -1
  323. package/lib/update-guard.js.map +0 -1
  324. package/tsconfig.build.json +0 -9
  325. package/tsconfig.json +0 -5
package/lib/repository.js CHANGED
@@ -1,302 +1,484 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
13
5
  });
14
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- };
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
27
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
28
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
- return new (P || (P = Promise))(function (resolve, reject) {
30
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
31
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
33
- step((generator = generator.apply(thisArg, _arguments || [])).next());
34
- });
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
6
  exports.Repository = void 0;
41
- const lodash_1 = __importStar(require("lodash"));
42
- const sequelize_1 = require("sequelize");
43
- const filter_parser_1 = __importDefault(require("./filter-parser"));
44
- const options_parser_1 = require("./options-parser");
45
- const belongs_to_many_repository_1 = require("./relation-repository/belongs-to-many-repository");
46
- const belongs_to_repository_1 = require("./relation-repository/belongs-to-repository");
47
- const hasmany_repository_1 = require("./relation-repository/hasmany-repository");
48
- const hasone_repository_1 = require("./relation-repository/hasone-repository");
49
- const transaction_decorator_1 = require("./transaction-decorator");
50
- const update_associations_1 = require("./update-associations");
51
- const update_guard_1 = require("./update-guard");
7
+
8
+ function _lodash() {
9
+ const data = _interopRequireWildcard(require("lodash"));
10
+
11
+ _lodash = function _lodash() {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ function _sequelize() {
19
+ const data = require("sequelize");
20
+
21
+ _sequelize = function _sequelize() {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ var _filterParser = _interopRequireDefault(require("./filter-parser"));
29
+
30
+ var _optionsParser = require("./options-parser");
31
+
32
+ var _belongsToManyRepository = require("./relation-repository/belongs-to-many-repository");
33
+
34
+ var _belongsToRepository = require("./relation-repository/belongs-to-repository");
35
+
36
+ var _hasmanyRepository = require("./relation-repository/hasmany-repository");
37
+
38
+ var _hasoneRepository = require("./relation-repository/hasone-repository");
39
+
40
+ var _transactionDecorator = require("./transaction-decorator");
41
+
42
+ var _updateAssociations = require("./update-associations");
43
+
44
+ var _updateGuard = require("./update-guard");
45
+
46
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
+
48
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
+
50
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
+
52
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
53
+
54
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
55
+
56
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
57
+
58
+ function 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; }
59
+
60
+ function _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) { _defineProperty(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; }
61
+
62
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
63
+
64
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
65
+
66
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
67
+
68
+ var __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) {
69
+ var c = arguments.length,
70
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
71
+ d;
72
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
73
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
74
+ };
75
+
52
76
  const debug = require('debug')('noco-database');
53
- const transaction = (0, transaction_decorator_1.transactionWrapperBuilder)(function () {
54
- return this.collection.model.sequelize.transaction();
77
+
78
+ const transaction = (0, _transactionDecorator.transactionWrapperBuilder)(function () {
79
+ return this.collection.model.sequelize.transaction();
55
80
  });
81
+
56
82
  class RelationRepositoryBuilder {
57
- constructor(collection, associationName) {
58
- this.builderMap = {
59
- HasOne: hasone_repository_1.HasOneRepository,
60
- BelongsTo: belongs_to_repository_1.BelongsToRepository,
61
- BelongsToMany: belongs_to_many_repository_1.BelongsToManyRepository,
62
- HasMany: hasmany_repository_1.HasManyRepository,
63
- };
64
- this.collection = collection;
65
- this.associationName = associationName;
66
- this.association = this.collection.model.associations[this.associationName];
67
- }
68
- builder() {
69
- return this.builderMap;
70
- }
71
- of(id) {
72
- const klass = this.builder()[this.association.associationType];
73
- return new klass(this.collection, this.associationName, id);
74
- }
83
+ constructor(collection, associationName) {
84
+ this.collection = void 0;
85
+ this.associationName = void 0;
86
+ this.association = void 0;
87
+ this.builderMap = {
88
+ HasOne: _hasoneRepository.HasOneRepository,
89
+ BelongsTo: _belongsToRepository.BelongsToRepository,
90
+ BelongsToMany: _belongsToManyRepository.BelongsToManyRepository,
91
+ HasMany: _hasmanyRepository.HasManyRepository
92
+ };
93
+ this.collection = collection;
94
+ this.associationName = associationName;
95
+ this.association = this.collection.model.associations[this.associationName];
96
+ }
97
+
98
+ builder() {
99
+ return this.builderMap;
100
+ }
101
+
102
+ of(id) {
103
+ const klass = this.builder()[this.association.associationType];
104
+ return new klass(this.collection, this.associationName, id);
105
+ }
106
+
75
107
  }
108
+
76
109
  class Repository {
77
- constructor(collection) {
78
- this.database = collection.context.database;
79
- this.collection = collection;
80
- this.model = collection.model;
81
- }
82
- /**
83
- * return count by filter
84
- */
85
- count(countOptions) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- let options = countOptions ? lodash_1.default.clone(countOptions) : {};
88
- const transaction = yield this.getTransaction(options);
89
- if (countOptions === null || countOptions === void 0 ? void 0 : countOptions.filter) {
90
- options = Object.assign(Object.assign({}, options), this.parseFilter(countOptions.filter, countOptions));
91
- }
92
- const count = yield this.collection.model.count(Object.assign(Object.assign({}, options), { distinct: true, transaction }));
93
- return count;
94
- });
95
- }
96
- /**
97
- * find
98
- * @param options
99
- */
100
- find(options) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const model = this.collection.model;
103
- const transaction = yield this.getTransaction(options);
104
- const opts = Object.assign({ subQuery: false }, this.buildQueryOptions(options));
105
- if (opts.include && opts.include.length > 0) {
106
- // @ts-ignore
107
- const primaryKeyField = model.primaryKeyField || model.primaryKeyAttribute;
108
- const ids = (yield model.findAll(Object.assign(Object.assign({}, opts), { includeIgnoreAttributes: false, attributes: [primaryKeyField], group: `${model.name}.${primaryKeyField}`, transaction }))).map((row) => row.get(primaryKeyField));
109
- const where = {
110
- [primaryKeyField]: {
111
- [sequelize_1.Op.in]: ids,
112
- },
113
- };
114
- return yield model.findAll(Object.assign(Object.assign({}, (0, lodash_1.omit)(opts, ['limit', 'offset'])), { where,
115
- transaction }));
116
- }
117
- return yield model.findAll(Object.assign(Object.assign({}, opts), { transaction }));
118
- });
119
- }
120
- /**
121
- * find and count
122
- * @param options
123
- */
124
- findAndCount(options) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- const transaction = yield this.getTransaction(options);
127
- options = Object.assign(Object.assign({}, options), { transaction });
128
- return [yield this.find(options), yield this.count(options)];
129
- });
130
- }
131
- /**
132
- * Find By Id
133
- *
134
- */
135
- findById(id) {
136
- return this.collection.model.findByPk(id);
137
- }
138
- /**
139
- * Find one record from database
140
- *
141
- * @param options
142
- */
143
- findOne(options) {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- const transaction = yield this.getTransaction(options);
146
- const rows = yield this.find(Object.assign(Object.assign({}, options), { limit: 1, transaction }));
147
- return rows.length == 1 ? rows[0] : null;
148
- });
149
- }
150
- /**
151
- * Save instance to database
152
- *
153
- * @param values
154
- * @param options
155
- */
156
- create(options) {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- const transaction = yield this.getTransaction(options);
159
- const guard = update_guard_1.UpdateGuard.fromOptions(this.model, Object.assign(Object.assign({}, options), { action: 'create' }));
160
- const values = guard.sanitize(options.values || {});
161
- const instance = yield this.model.create(values, Object.assign(Object.assign({}, options), { transaction }));
162
- if (!instance) {
163
- return;
164
- }
165
- yield (0, update_associations_1.updateAssociations)(instance, values, Object.assign(Object.assign({}, options), { transaction }));
166
- if (options.hooks !== false) {
167
- yield this.database.emitAsync(`${this.collection.name}.afterCreateWithAssociations`, instance, options);
168
- yield this.database.emitAsync(`${this.collection.name}.afterSaveWithAssociations`, instance, options);
169
- }
170
- return instance;
171
- });
172
- }
173
- /**
174
- * Save Many instances to database
175
- *
176
- * @param records
177
- * @param options
178
- */
179
- createMany(options) {
180
- return __awaiter(this, void 0, void 0, function* () {
181
- const transaction = yield this.getTransaction(options);
182
- const { records } = options;
183
- const instances = [];
184
- for (const values of records) {
185
- const instance = yield this.create({ values, transaction });
186
- instances.push(instance);
187
- }
188
- return instances;
189
- });
190
- }
191
- /**
192
- * Update model value
193
- *
194
- * @param values
195
- * @param options
196
- */
197
- update(options) {
198
- return __awaiter(this, void 0, void 0, function* () {
199
- const transaction = yield this.getTransaction(options);
200
- const guard = update_guard_1.UpdateGuard.fromOptions(this.model, options);
201
- const values = guard.sanitize(options.values);
202
- const queryOptions = this.buildQueryOptions(options);
203
- const instances = yield this.find(Object.assign(Object.assign({}, queryOptions), { transaction }));
204
- for (const instance of instances) {
205
- yield (0, update_associations_1.updateModelByValues)(instance, values, Object.assign(Object.assign({}, options), { sanitized: true, transaction }));
206
- }
207
- if (options.hooks !== false) {
208
- for (const instance of instances) {
209
- yield this.database.emitAsync(`${this.collection.name}.afterUpdateWithAssociations`, instance, options);
210
- yield this.database.emitAsync(`${this.collection.name}.afterSaveWithAssociations`, instance, options);
211
- }
212
- }
213
- return instances;
214
- });
215
- }
216
- destroy(options) {
217
- return __awaiter(this, void 0, void 0, function* () {
218
- const transaction = yield this.getTransaction(options);
219
- const modelFilterKey = this.collection.filterTargetKey;
220
- options = options;
221
- if (options['individualHooks'] === undefined) {
222
- options['individualHooks'] = true;
223
- }
224
- const filterByTk = options.filterByTk && !lodash_1.default.isArray(options.filterByTk)
225
- ? [options.filterByTk]
226
- : options.filterByTk;
227
- if (filterByTk && !options.filter) {
228
- return yield this.model.destroy(Object.assign(Object.assign({}, options), { where: {
229
- [modelFilterKey]: {
230
- [sequelize_1.Op.in]: filterByTk,
231
- },
232
- }, transaction }));
233
- }
234
- if (options.filter) {
235
- let pks = (yield this.find({
236
- filter: options.filter,
237
- transaction,
238
- })).map((instance) => instance.get(modelFilterKey));
239
- if (filterByTk) {
240
- pks = lodash_1.default.intersection(pks.map((i) => `${i}`), filterByTk.map((i) => `${i}`));
241
- }
242
- return yield this.destroy(Object.assign(Object.assign({}, lodash_1.default.omit(options, 'filter')), { filterByTk: pks, transaction }));
243
- }
244
- if (options.truncate) {
245
- return yield this.model.destroy(Object.assign(Object.assign({}, options), { truncate: true, transaction }));
246
- }
247
- });
248
- }
249
- /**
250
- * @param association target association
251
- */
252
- relation(association) {
253
- return new RelationRepositoryBuilder(this.collection, association);
254
- }
255
- buildQueryOptions(options) {
256
- const parser = new options_parser_1.OptionsParser(options, {
257
- collection: this.collection,
258
- });
259
- const params = parser.toSequelizeParams();
260
- debug('sequelize query params %o', params);
261
- return Object.assign(Object.assign({ where: {} }, options), params);
262
- }
263
- parseFilter(filter, options) {
264
- const parser = new filter_parser_1.default(filter, {
265
- collection: this.collection,
266
- app: {
267
- ctx: options === null || options === void 0 ? void 0 : options.context,
268
- },
269
- });
270
- return parser.toSequelizeParams();
271
- }
272
- getTransaction(options, autoGen = false) {
273
- return __awaiter(this, void 0, void 0, function* () {
274
- if (lodash_1.default.isPlainObject(options) && options.transaction) {
275
- return options.transaction;
276
- }
277
- if (autoGen) {
278
- return yield this.model.sequelize.transaction();
110
+ constructor(collection) {
111
+ this.database = void 0;
112
+ this.collection = void 0;
113
+ this.model = void 0;
114
+ this.database = collection.context.database;
115
+ this.collection = collection;
116
+ this.model = collection.model;
117
+ }
118
+ /**
119
+ * return count by filter
120
+ */
121
+
122
+
123
+ count(countOptions) {
124
+ var _this = this;
125
+
126
+ return _asyncToGenerator(function* () {
127
+ let options = countOptions ? _lodash().default.clone(countOptions) : {};
128
+ const transaction = yield _this.getTransaction(options);
129
+
130
+ if (countOptions === null || countOptions === void 0 ? void 0 : countOptions.filter) {
131
+ options = _objectSpread(_objectSpread({}, options), _this.parseFilter(countOptions.filter, countOptions));
132
+ }
133
+
134
+ const count = yield _this.collection.model.count(_objectSpread(_objectSpread({}, options), {}, {
135
+ distinct: true,
136
+ transaction
137
+ }));
138
+ return count;
139
+ })();
140
+ }
141
+ /**
142
+ * find
143
+ * @param options
144
+ */
145
+
146
+
147
+ find(options) {
148
+ var _this2 = this;
149
+
150
+ return _asyncToGenerator(function* () {
151
+ const model = _this2.collection.model;
152
+ const transaction = yield _this2.getTransaction(options);
153
+
154
+ const opts = _objectSpread({
155
+ subQuery: false
156
+ }, _this2.buildQueryOptions(options));
157
+
158
+ if (opts.include && opts.include.length > 0) {
159
+ // @ts-ignore
160
+ const primaryKeyField = model.primaryKeyField || model.primaryKeyAttribute;
161
+ const ids = (yield model.findAll(_objectSpread(_objectSpread({}, opts), {}, {
162
+ includeIgnoreAttributes: false,
163
+ attributes: [primaryKeyField],
164
+ group: `${model.name}.${primaryKeyField}`,
165
+ transaction
166
+ }))).map(row => row.get(primaryKeyField));
167
+ const where = {
168
+ [primaryKeyField]: {
169
+ [_sequelize().Op.in]: ids
170
+ }
171
+ };
172
+ return yield model.findAll(_objectSpread(_objectSpread({}, (0, _lodash().omit)(opts, ['limit', 'offset'])), {}, {
173
+ where,
174
+ transaction
175
+ }));
176
+ }
177
+
178
+ return yield model.findAll(_objectSpread(_objectSpread({}, opts), {}, {
179
+ transaction
180
+ }));
181
+ })();
182
+ }
183
+ /**
184
+ * find and count
185
+ * @param options
186
+ */
187
+
188
+
189
+ findAndCount(options) {
190
+ var _this3 = this;
191
+
192
+ return _asyncToGenerator(function* () {
193
+ const transaction = yield _this3.getTransaction(options);
194
+ options = _objectSpread(_objectSpread({}, options), {}, {
195
+ transaction
196
+ });
197
+ return [yield _this3.find(options), yield _this3.count(options)];
198
+ })();
199
+ }
200
+ /**
201
+ * Find By Id
202
+ *
203
+ */
204
+
205
+
206
+ findById(id) {
207
+ return this.collection.model.findByPk(id);
208
+ }
209
+ /**
210
+ * Find one record from database
211
+ *
212
+ * @param options
213
+ */
214
+
215
+
216
+ findOne(options) {
217
+ var _this4 = this;
218
+
219
+ return _asyncToGenerator(function* () {
220
+ const transaction = yield _this4.getTransaction(options);
221
+ const rows = yield _this4.find(_objectSpread(_objectSpread({}, options), {}, {
222
+ limit: 1,
223
+ transaction
224
+ }));
225
+ return rows.length == 1 ? rows[0] : null;
226
+ })();
227
+ }
228
+ /**
229
+ * Save instance to database
230
+ *
231
+ * @param values
232
+ * @param options
233
+ */
234
+
235
+
236
+ create(options) {
237
+ var _this5 = this;
238
+
239
+ return _asyncToGenerator(function* () {
240
+ const transaction = yield _this5.getTransaction(options);
241
+
242
+ const guard = _updateGuard.UpdateGuard.fromOptions(_this5.model, _objectSpread(_objectSpread({}, options), {}, {
243
+ action: 'create'
244
+ }));
245
+
246
+ const values = guard.sanitize(options.values || {});
247
+ const instance = yield _this5.model.create(values, _objectSpread(_objectSpread({}, options), {}, {
248
+ transaction
249
+ }));
250
+
251
+ if (!instance) {
252
+ return;
253
+ }
254
+
255
+ yield (0, _updateAssociations.updateAssociations)(instance, values, _objectSpread(_objectSpread({}, options), {}, {
256
+ transaction
257
+ }));
258
+
259
+ if (options.hooks !== false) {
260
+ yield _this5.database.emitAsync(`${_this5.collection.name}.afterCreateWithAssociations`, instance, _objectSpread(_objectSpread({}, options), {}, {
261
+ transaction
262
+ }));
263
+ yield _this5.database.emitAsync(`${_this5.collection.name}.afterSaveWithAssociations`, instance, _objectSpread(_objectSpread({}, options), {}, {
264
+ transaction
265
+ }));
266
+ }
267
+
268
+ return instance;
269
+ })();
270
+ }
271
+ /**
272
+ * Save Many instances to database
273
+ *
274
+ * @param records
275
+ * @param options
276
+ */
277
+
278
+
279
+ createMany(options) {
280
+ var _this6 = this;
281
+
282
+ return _asyncToGenerator(function* () {
283
+ const transaction = yield _this6.getTransaction(options);
284
+ const records = options.records;
285
+ const instances = [];
286
+
287
+ var _iterator = _createForOfIteratorHelper(records),
288
+ _step;
289
+
290
+ try {
291
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
292
+ const values = _step.value;
293
+ const instance = yield _this6.create({
294
+ values,
295
+ transaction
296
+ });
297
+ instances.push(instance);
298
+ }
299
+ } catch (err) {
300
+ _iterator.e(err);
301
+ } finally {
302
+ _iterator.f();
303
+ }
304
+
305
+ return instances;
306
+ })();
307
+ }
308
+ /**
309
+ * Update model value
310
+ *
311
+ * @param values
312
+ * @param options
313
+ */
314
+
315
+
316
+ update(options) {
317
+ var _this7 = this;
318
+
319
+ return _asyncToGenerator(function* () {
320
+ const transaction = yield _this7.getTransaction(options);
321
+
322
+ const guard = _updateGuard.UpdateGuard.fromOptions(_this7.model, options);
323
+
324
+ const values = guard.sanitize(options.values);
325
+
326
+ const queryOptions = _this7.buildQueryOptions(options);
327
+
328
+ const instances = yield _this7.find(_objectSpread(_objectSpread({}, queryOptions), {}, {
329
+ transaction
330
+ }));
331
+
332
+ var _iterator2 = _createForOfIteratorHelper(instances),
333
+ _step2;
334
+
335
+ try {
336
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
337
+ const instance = _step2.value;
338
+ yield (0, _updateAssociations.updateModelByValues)(instance, values, _objectSpread(_objectSpread({}, options), {}, {
339
+ sanitized: true,
340
+ transaction
341
+ }));
342
+ }
343
+ } catch (err) {
344
+ _iterator2.e(err);
345
+ } finally {
346
+ _iterator2.f();
347
+ }
348
+
349
+ if (options.hooks !== false) {
350
+ var _iterator3 = _createForOfIteratorHelper(instances),
351
+ _step3;
352
+
353
+ try {
354
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
355
+ const instance = _step3.value;
356
+ yield _this7.database.emitAsync(`${_this7.collection.name}.afterUpdateWithAssociations`, instance, _objectSpread(_objectSpread({}, options), {}, {
357
+ transaction
358
+ }));
359
+ yield _this7.database.emitAsync(`${_this7.collection.name}.afterSaveWithAssociations`, instance, _objectSpread(_objectSpread({}, options), {}, {
360
+ transaction
361
+ }));
362
+ }
363
+ } catch (err) {
364
+ _iterator3.e(err);
365
+ } finally {
366
+ _iterator3.f();
367
+ }
368
+ }
369
+
370
+ return instances;
371
+ })();
372
+ }
373
+
374
+ destroy(options) {
375
+ var _this8 = this;
376
+
377
+ return _asyncToGenerator(function* () {
378
+ const transaction = yield _this8.getTransaction(options);
379
+ const modelFilterKey = _this8.collection.filterTargetKey;
380
+ options = options;
381
+
382
+ if (options['individualHooks'] === undefined) {
383
+ options['individualHooks'] = true;
384
+ }
385
+
386
+ const filterByTk = options.filterByTk && !_lodash().default.isArray(options.filterByTk) ? [options.filterByTk] : options.filterByTk;
387
+
388
+ if (filterByTk && !options.filter) {
389
+ return yield _this8.model.destroy(_objectSpread(_objectSpread({}, options), {}, {
390
+ where: {
391
+ [modelFilterKey]: {
392
+ [_sequelize().Op.in]: filterByTk
279
393
  }
280
- return null;
281
- });
282
- }
394
+ },
395
+ transaction
396
+ }));
397
+ }
398
+
399
+ if (options.filter) {
400
+ let pks = (yield _this8.find({
401
+ filter: options.filter,
402
+ transaction
403
+ })).map(instance => instance.get(modelFilterKey));
404
+
405
+ if (filterByTk) {
406
+ pks = _lodash().default.intersection(pks.map(i => `${i}`), filterByTk.map(i => `${i}`));
407
+ }
408
+
409
+ return yield _this8.destroy(_objectSpread(_objectSpread({}, _lodash().default.omit(options, 'filter')), {}, {
410
+ filterByTk: pks,
411
+ transaction
412
+ }));
413
+ }
414
+
415
+ if (options.truncate) {
416
+ return yield _this8.model.destroy(_objectSpread(_objectSpread({}, options), {}, {
417
+ truncate: true,
418
+ transaction
419
+ }));
420
+ }
421
+ })();
422
+ }
423
+ /**
424
+ * @param association target association
425
+ */
426
+
427
+
428
+ relation(association) {
429
+ return new RelationRepositoryBuilder(this.collection, association);
430
+ }
431
+
432
+ buildQueryOptions(options) {
433
+ const parser = new _optionsParser.OptionsParser(options, {
434
+ collection: this.collection
435
+ });
436
+ const params = parser.toSequelizeParams();
437
+ debug('sequelize query params %o', params);
438
+ return _objectSpread(_objectSpread({
439
+ where: {}
440
+ }, options), params);
441
+ }
442
+
443
+ parseFilter(filter, options) {
444
+ const parser = new _filterParser.default(filter, {
445
+ collection: this.collection,
446
+ app: {
447
+ ctx: options === null || options === void 0 ? void 0 : options.context
448
+ }
449
+ });
450
+ return parser.toSequelizeParams();
451
+ }
452
+
453
+ getTransaction(options, autoGen = false) {
454
+ var _this9 = this;
455
+
456
+ return _asyncToGenerator(function* () {
457
+ if (_lodash().default.isPlainObject(options) && options.transaction) {
458
+ return options.transaction;
459
+ }
460
+
461
+ if (autoGen) {
462
+ return yield _this9.model.sequelize.transaction();
463
+ }
464
+
465
+ return null;
466
+ })();
467
+ }
468
+
283
469
  }
284
- __decorate([
285
- transaction()
286
- ], Repository.prototype, "create", null);
287
- __decorate([
288
- transaction()
289
- ], Repository.prototype, "createMany", null);
290
- __decorate([
291
- transaction()
292
- ], Repository.prototype, "update", null);
293
- __decorate([
294
- transaction((args, transaction) => {
295
- return {
296
- filterByTk: args[0],
297
- transaction,
298
- };
299
- })
300
- ], Repository.prototype, "destroy", null);
470
+
301
471
  exports.Repository = Repository;
302
- //# sourceMappingURL=repository.js.map
472
+
473
+ __decorate([transaction()], Repository.prototype, "create", null);
474
+
475
+ __decorate([transaction()], Repository.prototype, "createMany", null);
476
+
477
+ __decorate([transaction()], Repository.prototype, "update", null);
478
+
479
+ __decorate([transaction((args, transaction) => {
480
+ return {
481
+ filterByTk: args[0],
482
+ transaction
483
+ };
484
+ })], Repository.prototype, "destroy", null);