@nocobase/database 0.7.0-alpha.6 → 0.7.0-alpha.60

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 (298) hide show
  1. package/lib/collection-importer.js +101 -67
  2. package/lib/collection.js +339 -210
  3. package/lib/database.d.ts +4 -1
  4. package/lib/database.js +489 -275
  5. package/lib/fields/array-field.js +45 -25
  6. package/lib/fields/belongs-to-field.js +101 -54
  7. package/lib/fields/belongs-to-many-field.js +98 -53
  8. package/lib/fields/boolean-field.js +24 -9
  9. package/lib/fields/context-field.js +77 -42
  10. package/lib/fields/date-field.js +24 -9
  11. package/lib/fields/field.js +114 -75
  12. package/lib/fields/has-inverse-field.js +4 -2
  13. package/lib/fields/has-many-field.js +105 -56
  14. package/lib/fields/has-one-field.js +105 -54
  15. package/lib/fields/index.d.ts +3 -1
  16. package/lib/fields/index.js +277 -32
  17. package/lib/fields/json-field.js +36 -16
  18. package/lib/fields/number-field.js +53 -26
  19. package/lib/fields/password-field.js +118 -73
  20. package/lib/fields/radio-field.js +75 -47
  21. package/lib/fields/relation-field.js +41 -28
  22. package/lib/fields/sort-field.js +165 -89
  23. package/lib/fields/string-field.js +24 -9
  24. package/lib/fields/text-field.js +24 -9
  25. package/lib/fields/time-field.js +24 -9
  26. package/lib/fields/uid-field.js +57 -28
  27. package/lib/fields/uuid-field.d.ts +9 -0
  28. package/lib/fields/uuid-field.js +39 -0
  29. package/lib/fields/virtual-field.js +24 -9
  30. package/lib/filter-parser.js +288 -179
  31. package/lib/index.js +210 -29
  32. package/lib/magic-attribute-model.js +123 -71
  33. package/lib/mock-database.js +68 -34
  34. package/lib/model-hook.js +101 -60
  35. package/lib/model.js +116 -81
  36. package/lib/operators/array.js +136 -96
  37. package/lib/operators/association.js +30 -14
  38. package/lib/operators/boolean.d.ts +13 -0
  39. package/lib/operators/boolean.js +35 -0
  40. package/lib/operators/date.js +78 -34
  41. package/lib/operators/empty.js +113 -75
  42. package/lib/operators/index.js +15 -3
  43. package/lib/operators/ne.js +27 -12
  44. package/{esm/operators/ne.d.ts → lib/operators/notIn.d.ts} +2 -2
  45. package/lib/operators/notIn.js +29 -0
  46. package/lib/operators/string.js +56 -35
  47. package/lib/operators/utils.js +18 -10
  48. package/lib/options-parser.js +323 -215
  49. package/lib/playground.js +66 -53
  50. package/lib/relation-repository/belongs-to-many-repository.js +281 -198
  51. package/lib/relation-repository/belongs-to-repository.js +10 -6
  52. package/lib/relation-repository/hasmany-repository.js +168 -121
  53. package/lib/relation-repository/hasone-repository.js +10 -6
  54. package/lib/relation-repository/multiple-relation-repository.d.ts +3 -3
  55. package/lib/relation-repository/multiple-relation-repository.js +263 -148
  56. package/lib/relation-repository/relation-repository.d.ts +1 -1
  57. package/lib/relation-repository/relation-repository.js +155 -95
  58. package/lib/relation-repository/single-relation-repository.d.ts +6 -6
  59. package/lib/relation-repository/single-relation-repository.js +138 -99
  60. package/lib/relation-repository/types.js +4 -2
  61. package/lib/repository.d.ts +4 -7
  62. package/lib/repository.js +465 -291
  63. package/lib/transaction-decorator.js +80 -67
  64. package/lib/update-associations.d.ts +1 -2
  65. package/lib/update-associations.js +525 -321
  66. package/lib/update-guard.js +160 -117
  67. package/package.json +3 -8
  68. package/src/__tests__/fields/uuid-field.test.ts +30 -0
  69. package/src/__tests__/operator/notIn.test.ts +33 -0
  70. package/src/__tests__/option-parser.test.ts +20 -0
  71. package/src/database.ts +51 -4
  72. package/src/fields/context-field.ts +1 -1
  73. package/src/fields/index.ts +3 -0
  74. package/src/fields/uuid-field.ts +21 -0
  75. package/src/mock-database.ts +1 -1
  76. package/src/model-hook.ts +1 -1
  77. package/src/operators/boolean.ts +18 -0
  78. package/src/operators/index.ts +2 -0
  79. package/src/operators/notIn.ts +12 -0
  80. package/src/options-parser.ts +1 -1
  81. package/src/relation-repository/multiple-relation-repository.ts +8 -6
  82. package/src/relation-repository/relation-repository.ts +11 -6
  83. package/src/relation-repository/single-relation-repository.ts +6 -6
  84. package/src/repository.ts +4 -6
  85. package/src/update-associations.ts +1 -2
  86. package/esm/collection-importer.d.ts +0 -7
  87. package/esm/collection-importer.js +0 -49
  88. package/esm/collection-importer.js.map +0 -1
  89. package/esm/collection.d.ts +0 -73
  90. package/esm/collection.js +0 -224
  91. package/esm/collection.js.map +0 -1
  92. package/esm/database.d.ts +0 -101
  93. package/esm/database.js +0 -275
  94. package/esm/database.js.map +0 -1
  95. package/esm/fields/array-field.d.ts +0 -11
  96. package/esm/fields/array-field.js +0 -26
  97. package/esm/fields/array-field.js.map +0 -1
  98. package/esm/fields/belongs-to-field.d.ts +0 -12
  99. package/esm/fields/belongs-to-field.js +0 -57
  100. package/esm/fields/belongs-to-field.js.map +0 -1
  101. package/esm/fields/belongs-to-many-field.d.ts +0 -11
  102. package/esm/fields/belongs-to-many-field.js +0 -55
  103. package/esm/fields/belongs-to-many-field.js.map +0 -1
  104. package/esm/fields/boolean-field.d.ts +0 -8
  105. package/esm/fields/boolean-field.js +0 -8
  106. package/esm/fields/boolean-field.js.map +0 -1
  107. package/esm/fields/context-field.d.ts +0 -13
  108. package/esm/fields/context-field.js +0 -43
  109. package/esm/fields/context-field.js.map +0 -1
  110. package/esm/fields/date-field.d.ts +0 -8
  111. package/esm/fields/date-field.js +0 -8
  112. package/esm/fields/date-field.js.map +0 -1
  113. package/esm/fields/field.d.ts +0 -37
  114. package/esm/fields/field.js +0 -74
  115. package/esm/fields/field.js.map +0 -1
  116. package/esm/fields/has-inverse-field.d.ts +0 -4
  117. package/esm/fields/has-inverse-field.js +0 -2
  118. package/esm/fields/has-inverse-field.js.map +0 -1
  119. package/esm/fields/has-many-field.d.ts +0 -64
  120. package/esm/fields/has-many-field.js +0 -58
  121. package/esm/fields/has-many-field.js.map +0 -1
  122. package/esm/fields/has-one-field.d.ts +0 -64
  123. package/esm/fields/has-one-field.js +0 -57
  124. package/esm/fields/has-one-field.js.map +0 -1
  125. package/esm/fields/index.d.ts +0 -40
  126. package/esm/fields/index.js +0 -21
  127. package/esm/fields/index.js.map +0 -1
  128. package/esm/fields/json-field.d.ts +0 -14
  129. package/esm/fields/json-field.js +0 -17
  130. package/esm/fields/json-field.js.map +0 -1
  131. package/esm/fields/number-field.d.ts +0 -32
  132. package/esm/fields/number-field.js +0 -28
  133. package/esm/fields/number-field.js.map +0 -1
  134. package/esm/fields/password-field.d.ts +0 -21
  135. package/esm/fields/password-field.js +0 -71
  136. package/esm/fields/password-field.js.map +0 -1
  137. package/esm/fields/radio-field.d.ts +0 -14
  138. package/esm/fields/radio-field.js +0 -49
  139. package/esm/fields/radio-field.js.map +0 -1
  140. package/esm/fields/relation-field.d.ts +0 -20
  141. package/esm/fields/relation-field.js +0 -27
  142. package/esm/fields/relation-field.js.map +0 -1
  143. package/esm/fields/sort-field.d.ts +0 -16
  144. package/esm/fields/sort-field.js +0 -90
  145. package/esm/fields/sort-field.js.map +0 -1
  146. package/esm/fields/string-field.d.ts +0 -8
  147. package/esm/fields/string-field.js +0 -8
  148. package/esm/fields/string-field.js.map +0 -1
  149. package/esm/fields/text-field.d.ts +0 -8
  150. package/esm/fields/text-field.js +0 -8
  151. package/esm/fields/text-field.js.map +0 -1
  152. package/esm/fields/time-field.d.ts +0 -8
  153. package/esm/fields/time-field.js +0 -8
  154. package/esm/fields/time-field.js.map +0 -1
  155. package/esm/fields/uid-field.d.ts +0 -10
  156. package/esm/fields/uid-field.js +0 -27
  157. package/esm/fields/uid-field.js.map +0 -1
  158. package/esm/fields/virtual-field.d.ts +0 -8
  159. package/esm/fields/virtual-field.js +0 -8
  160. package/esm/fields/virtual-field.js.map +0 -1
  161. package/esm/filter-parser.d.ts +0 -27
  162. package/esm/filter-parser.js +0 -185
  163. package/esm/filter-parser.js.map +0 -1
  164. package/esm/index.d.ts +0 -15
  165. package/esm/index.js +0 -16
  166. package/esm/index.js.map +0 -1
  167. package/esm/magic-attribute-model.d.ts +0 -7
  168. package/esm/magic-attribute-model.js +0 -70
  169. package/esm/magic-attribute-model.js.map +0 -1
  170. package/esm/mock-database.d.ts +0 -22
  171. package/esm/mock-database.js +0 -34
  172. package/esm/mock-database.js.map +0 -1
  173. package/esm/model-hook.d.ts +0 -12
  174. package/esm/model-hook.js +0 -61
  175. package/esm/model-hook.js.map +0 -1
  176. package/esm/model.d.ts +0 -15
  177. package/esm/model.js +0 -80
  178. package/esm/model.js.map +0 -1
  179. package/esm/operators/array.d.ts +0 -26
  180. package/esm/operators/array.js +0 -105
  181. package/esm/operators/array.js.map +0 -1
  182. package/esm/operators/association.d.ts +0 -10
  183. package/esm/operators/association.js +0 -14
  184. package/esm/operators/association.js.map +0 -1
  185. package/esm/operators/date.d.ts +0 -34
  186. package/esm/operators/date.js +0 -35
  187. package/esm/operators/date.js.map +0 -1
  188. package/esm/operators/empty.d.ts +0 -28
  189. package/esm/operators/empty.js +0 -58
  190. package/esm/operators/empty.js.map +0 -1
  191. package/esm/operators/index.d.ts +0 -2
  192. package/esm/operators/index.js +0 -2
  193. package/esm/operators/index.js.map +0 -1
  194. package/esm/operators/ne.js +0 -12
  195. package/esm/operators/ne.js.map +0 -1
  196. package/esm/operators/string.d.ts +0 -21
  197. package/esm/operators/string.js +0 -35
  198. package/esm/operators/string.js.map +0 -1
  199. package/esm/operators/utils.d.ts +0 -4
  200. package/esm/operators/utils.js +0 -11
  201. package/esm/operators/utils.js.map +0 -1
  202. package/esm/options-parser.d.ts +0 -31
  203. package/esm/options-parser.js +0 -225
  204. package/esm/options-parser.js.map +0 -1
  205. package/esm/playground.d.ts +0 -1
  206. package/esm/playground.js +0 -53
  207. package/esm/playground.js.map +0 -1
  208. package/esm/relation-repository/belongs-to-many-repository.d.ts +0 -36
  209. package/esm/relation-repository/belongs-to-many-repository.js +0 -199
  210. package/esm/relation-repository/belongs-to-many-repository.js.map +0 -1
  211. package/esm/relation-repository/belongs-to-repository.d.ts +0 -17
  212. package/esm/relation-repository/belongs-to-repository.js +0 -4
  213. package/esm/relation-repository/belongs-to-repository.js.map +0 -1
  214. package/esm/relation-repository/hasmany-repository.d.ts +0 -23
  215. package/esm/relation-repository/hasmany-repository.js +0 -125
  216. package/esm/relation-repository/hasmany-repository.js.map +0 -1
  217. package/esm/relation-repository/hasone-repository.d.ts +0 -17
  218. package/esm/relation-repository/hasone-repository.js +0 -4
  219. package/esm/relation-repository/hasone-repository.js.map +0 -1
  220. package/esm/relation-repository/multiple-relation-repository.d.ts +0 -23
  221. package/esm/relation-repository/multiple-relation-repository.js +0 -149
  222. package/esm/relation-repository/multiple-relation-repository.js.map +0 -1
  223. package/esm/relation-repository/relation-repository.d.ts +0 -32
  224. package/esm/relation-repository/relation-repository.js +0 -93
  225. package/esm/relation-repository/relation-repository.js.map +0 -1
  226. package/esm/relation-repository/single-relation-repository.d.ts +0 -23
  227. package/esm/relation-repository/single-relation-repository.js +0 -96
  228. package/esm/relation-repository/single-relation-repository.js.map +0 -1
  229. package/esm/relation-repository/types.d.ts +0 -7
  230. package/esm/relation-repository/types.js +0 -2
  231. package/esm/relation-repository/types.js.map +0 -1
  232. package/esm/repository.d.ts +0 -165
  233. package/esm/repository.js +0 -276
  234. package/esm/repository.js.map +0 -1
  235. package/esm/transaction-decorator.d.ts +0 -1
  236. package/esm/transaction-decorator.js +0 -63
  237. package/esm/transaction-decorator.js.map +0 -1
  238. package/esm/update-associations.d.ts +0 -60
  239. package/esm/update-associations.js +0 -362
  240. package/esm/update-associations.js.map +0 -1
  241. package/esm/update-guard.d.ts +0 -26
  242. package/esm/update-guard.js +0 -122
  243. package/esm/update-guard.js.map +0 -1
  244. package/lib/collection-importer.js.map +0 -1
  245. package/lib/collection.js.map +0 -1
  246. package/lib/database.js.map +0 -1
  247. package/lib/fields/array-field.js.map +0 -1
  248. package/lib/fields/belongs-to-field.js.map +0 -1
  249. package/lib/fields/belongs-to-many-field.js.map +0 -1
  250. package/lib/fields/boolean-field.js.map +0 -1
  251. package/lib/fields/context-field.js.map +0 -1
  252. package/lib/fields/date-field.js.map +0 -1
  253. package/lib/fields/field.js.map +0 -1
  254. package/lib/fields/has-inverse-field.js.map +0 -1
  255. package/lib/fields/has-many-field.js.map +0 -1
  256. package/lib/fields/has-one-field.js.map +0 -1
  257. package/lib/fields/index.js.map +0 -1
  258. package/lib/fields/json-field.js.map +0 -1
  259. package/lib/fields/number-field.js.map +0 -1
  260. package/lib/fields/password-field.js.map +0 -1
  261. package/lib/fields/radio-field.js.map +0 -1
  262. package/lib/fields/relation-field.js.map +0 -1
  263. package/lib/fields/sort-field.js.map +0 -1
  264. package/lib/fields/string-field.js.map +0 -1
  265. package/lib/fields/text-field.js.map +0 -1
  266. package/lib/fields/time-field.js.map +0 -1
  267. package/lib/fields/uid-field.js.map +0 -1
  268. package/lib/fields/virtual-field.js.map +0 -1
  269. package/lib/filter-parser.js.map +0 -1
  270. package/lib/index.js.map +0 -1
  271. package/lib/magic-attribute-model.js.map +0 -1
  272. package/lib/mock-database.js.map +0 -1
  273. package/lib/model-hook.js.map +0 -1
  274. package/lib/model.js.map +0 -1
  275. package/lib/operators/array.js.map +0 -1
  276. package/lib/operators/association.js.map +0 -1
  277. package/lib/operators/date.js.map +0 -1
  278. package/lib/operators/empty.js.map +0 -1
  279. package/lib/operators/index.js.map +0 -1
  280. package/lib/operators/ne.js.map +0 -1
  281. package/lib/operators/string.js.map +0 -1
  282. package/lib/operators/utils.js.map +0 -1
  283. package/lib/options-parser.js.map +0 -1
  284. package/lib/playground.js.map +0 -1
  285. package/lib/relation-repository/belongs-to-many-repository.js.map +0 -1
  286. package/lib/relation-repository/belongs-to-repository.js.map +0 -1
  287. package/lib/relation-repository/hasmany-repository.js.map +0 -1
  288. package/lib/relation-repository/hasone-repository.js.map +0 -1
  289. package/lib/relation-repository/multiple-relation-repository.js.map +0 -1
  290. package/lib/relation-repository/relation-repository.js.map +0 -1
  291. package/lib/relation-repository/single-relation-repository.js.map +0 -1
  292. package/lib/relation-repository/types.js.map +0 -1
  293. package/lib/repository.js.map +0 -1
  294. package/lib/transaction-decorator.js.map +0 -1
  295. package/lib/update-associations.js.map +0 -1
  296. package/lib/update-guard.js.map +0 -1
  297. package/tsconfig.build.json +0 -9
  298. package/tsconfig.json +0 -5
@@ -1,129 +1,176 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
18
6
  exports.HasManyRepository = void 0;
19
- const lodash_1 = require("lodash");
20
- const sequelize_1 = require("sequelize");
21
- const multiple_relation_repository_1 = require("./multiple-relation-repository");
22
- const relation_repository_1 = require("./relation-repository");
23
- class HasManyRepository extends multiple_relation_repository_1.MultipleRelationRepository {
24
- find(options) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- const targetRepository = this.targetCollection.repository;
27
- const addFilter = {
28
- [this.association.foreignKey]: this.sourceKeyValue,
29
- };
30
- if (options === null || options === void 0 ? void 0 : options.filterByTk) {
31
- addFilter[this.associationField.targetKey] = options.filterByTk;
32
- }
33
- return yield targetRepository.find(Object.assign(Object.assign({}, (0, lodash_1.omit)(options, ['filterByTk'])), { filter: {
34
- $and: [options.filter || {}, addFilter],
35
- } }));
36
- });
37
- }
38
- destroy(options) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- const transaction = yield this.getTransaction(options);
41
- const sourceModel = yield this.getSourceModel(transaction);
42
- const where = [
43
- {
44
- [this.association.foreignKey]: sourceModel.get(this.association.sourceKey),
45
- },
46
- ];
47
- if (options && options['filter']) {
48
- const filterResult = this.parseFilter(options['filter'], options);
49
- if (filterResult.include && filterResult.include.length > 0) {
50
- return yield this.destroyByFilter(options['filter'], transaction);
51
- }
52
- where.push(filterResult.where);
53
- }
54
- if (options && options['filterByTk']) {
55
- if (typeof options === 'object' && options['filterByTk']) {
56
- options = options['filterByTk'];
57
- }
58
- where.push({
59
- [this.targetKey()]: options,
60
- });
61
- }
62
- yield this.targetModel.destroy({
63
- where: {
64
- [sequelize_1.Op.and]: where,
65
- },
66
- individualHooks: true,
67
- transaction,
68
- });
69
- return true;
70
- });
71
- }
72
- handleKeyOfAdd(options) {
73
- let handleKeys;
74
- if (typeof options !== 'object' && !Array.isArray(options)) {
75
- handleKeys = [options];
7
+
8
+ function _lodash() {
9
+ const data = 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 _multipleRelationRepository = require("./multiple-relation-repository");
29
+
30
+ var _relationRepository = require("./relation-repository");
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ 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; }
37
+
38
+ 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); } }
39
+
40
+ 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); }); }; }
41
+
42
+ var __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) {
43
+ var c = arguments.length,
44
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
45
+ d;
46
+ 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;
47
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
48
+ };
49
+
50
+ class HasManyRepository extends _multipleRelationRepository.MultipleRelationRepository {
51
+ find(options) {
52
+ var _this = this;
53
+
54
+ return _asyncToGenerator(function* () {
55
+ const targetRepository = _this.targetCollection.repository;
56
+ const addFilter = {
57
+ [_this.association.foreignKey]: _this.sourceKeyValue
58
+ };
59
+
60
+ if (options === null || options === void 0 ? void 0 : options.filterByTk) {
61
+ addFilter[_this.associationField.targetKey] = options.filterByTk;
62
+ }
63
+
64
+ return yield targetRepository.find(_objectSpread(_objectSpread({}, (0, _lodash().omit)(options, ['filterByTk'])), {}, {
65
+ filter: {
66
+ $and: [options.filter || {}, addFilter]
76
67
  }
77
- else {
78
- handleKeys = options['pk'];
68
+ }));
69
+ })();
70
+ }
71
+
72
+ destroy(options) {
73
+ var _this2 = this;
74
+
75
+ return _asyncToGenerator(function* () {
76
+ const transaction = yield _this2.getTransaction(options);
77
+ const sourceModel = yield _this2.getSourceModel(transaction);
78
+ const where = [{
79
+ [_this2.association.foreignKey]: sourceModel.get(_this2.association.sourceKey)
80
+ }];
81
+
82
+ if (options && options['filter']) {
83
+ const filterResult = _this2.parseFilter(options['filter'], options);
84
+
85
+ if (filterResult.include && filterResult.include.length > 0) {
86
+ return yield _this2.destroyByFilter(options['filter'], transaction);
79
87
  }
80
- return handleKeys;
81
- }
82
- set(options) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- const transaction = yield this.getTransaction(options);
85
- const sourceModel = yield this.getSourceModel(transaction);
86
- yield sourceModel[this.accessors().set](this.handleKeyOfAdd(options), {
87
- transaction,
88
- });
89
- });
90
- }
91
- add(options) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const transaction = yield this.getTransaction(options);
94
- const sourceModel = yield this.getSourceModel(transaction);
95
- yield sourceModel[this.accessors().add](this.handleKeyOfAdd(options), {
96
- transaction,
97
- });
88
+
89
+ where.push(filterResult.where);
90
+ }
91
+
92
+ if (options && options['filterByTk']) {
93
+ if (typeof options === 'object' && options['filterByTk']) {
94
+ options = options['filterByTk'];
95
+ }
96
+
97
+ where.push({
98
+ [_this2.targetKey()]: options
98
99
  });
100
+ }
101
+
102
+ yield _this2.targetModel.destroy({
103
+ where: {
104
+ [_sequelize().Op.and]: where
105
+ },
106
+ individualHooks: true,
107
+ transaction
108
+ });
109
+ return true;
110
+ })();
111
+ }
112
+
113
+ handleKeyOfAdd(options) {
114
+ let handleKeys;
115
+
116
+ if (typeof options !== 'object' && !Array.isArray(options)) {
117
+ handleKeys = [options];
118
+ } else {
119
+ handleKeys = options['pk'];
99
120
  }
100
- accessors() {
101
- return this.association.accessors;
102
- }
121
+
122
+ return handleKeys;
123
+ }
124
+
125
+ set(options) {
126
+ var _this3 = this;
127
+
128
+ return _asyncToGenerator(function* () {
129
+ const transaction = yield _this3.getTransaction(options);
130
+ const sourceModel = yield _this3.getSourceModel(transaction);
131
+ yield sourceModel[_this3.accessors().set](_this3.handleKeyOfAdd(options), {
132
+ transaction
133
+ });
134
+ })();
135
+ }
136
+
137
+ add(options) {
138
+ var _this4 = this;
139
+
140
+ return _asyncToGenerator(function* () {
141
+ const transaction = yield _this4.getTransaction(options);
142
+ const sourceModel = yield _this4.getSourceModel(transaction);
143
+ yield sourceModel[_this4.accessors().add](_this4.handleKeyOfAdd(options), {
144
+ transaction
145
+ });
146
+ })();
147
+ }
148
+
149
+ accessors() {
150
+ return this.association.accessors;
151
+ }
152
+
103
153
  }
104
- __decorate([
105
- (0, relation_repository_1.transaction)((args, transaction) => {
106
- return {
107
- filterByTk: args[0],
108
- transaction,
109
- };
110
- })
111
- ], HasManyRepository.prototype, "destroy", null);
112
- __decorate([
113
- (0, relation_repository_1.transaction)((args, transaction) => {
114
- return {
115
- pk: args[0],
116
- transaction,
117
- };
118
- })
119
- ], HasManyRepository.prototype, "set", null);
120
- __decorate([
121
- (0, relation_repository_1.transaction)((args, transaction) => {
122
- return {
123
- pk: args[0],
124
- transaction,
125
- };
126
- })
127
- ], HasManyRepository.prototype, "add", null);
154
+
128
155
  exports.HasManyRepository = HasManyRepository;
129
- //# sourceMappingURL=hasmany-repository.js.map
156
+
157
+ __decorate([(0, _relationRepository.transaction)((args, transaction) => {
158
+ return {
159
+ filterByTk: args[0],
160
+ transaction
161
+ };
162
+ })], HasManyRepository.prototype, "destroy", null);
163
+
164
+ __decorate([(0, _relationRepository.transaction)((args, transaction) => {
165
+ return {
166
+ pk: args[0],
167
+ transaction
168
+ };
169
+ })], HasManyRepository.prototype, "set", null);
170
+
171
+ __decorate([(0, _relationRepository.transaction)((args, transaction) => {
172
+ return {
173
+ pk: args[0],
174
+ transaction
175
+ };
176
+ })], HasManyRepository.prototype, "add", null);
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.HasOneRepository = void 0;
4
- const single_relation_repository_1 = require("./single-relation-repository");
5
- class HasOneRepository extends single_relation_repository_1.SingleRelationRepository {
6
- }
7
- exports.HasOneRepository = HasOneRepository;
8
- //# sourceMappingURL=hasone-repository.js.map
7
+
8
+ var _singleRelationRepository = require("./single-relation-repository");
9
+
10
+ class HasOneRepository extends _singleRelationRepository.SingleRelationRepository {}
11
+
12
+ exports.HasOneRepository = HasOneRepository;
@@ -1,11 +1,11 @@
1
- import { MultiAssociationAccessors, Transaction } from 'sequelize';
2
- import { CommonFindOptions, CountOptions, DestroyOptions, Filter, FilterByTk, FindOptions, TargetKey, TK, TransactionAble, UpdateOptions } from '../repository';
1
+ import { MultiAssociationAccessors, Transaction, Transactionable } from 'sequelize';
2
+ import { CommonFindOptions, CountOptions, DestroyOptions, Filter, FilterByTk, FindOptions, TargetKey, TK, UpdateOptions } from '../repository';
3
3
  import { RelationRepository } from './relation-repository';
4
4
  export interface FindAndCountOptions extends CommonFindOptions {
5
5
  }
6
6
  export interface FindOneOptions extends CommonFindOptions, FilterByTk {
7
7
  }
8
- export interface AssociatedOptions extends TransactionAble {
8
+ export interface AssociatedOptions extends Transactionable {
9
9
  tk?: TK;
10
10
  }
11
11
  export declare abstract class MultipleRelationRepository extends RelationRepository {