@arrai-innovations/reactive-helpers 18.0.0 → 18.0.2

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 (216) hide show
  1. package/package.json +20 -6
  2. package/types/config/listCrud.d.ts +153 -0
  3. package/types/config/listCrud.d.ts.map +1 -0
  4. package/types/config/objectCrud.d.ts +171 -0
  5. package/types/config/objectCrud.d.ts.map +1 -0
  6. package/types/index.d.ts +37 -0
  7. package/types/index.d.ts.map +1 -0
  8. package/types/tests/unit/config/listCrud.spec.d.ts +2 -0
  9. package/types/tests/unit/config/listCrud.spec.d.ts.map +1 -0
  10. package/types/tests/unit/config/objectCrud.spec.d.ts +2 -0
  11. package/types/tests/unit/config/objectCrud.spec.d.ts.map +1 -0
  12. package/types/tests/unit/crudPromise.d.ts +25 -0
  13. package/types/tests/unit/crudPromise.d.ts.map +1 -0
  14. package/types/tests/unit/expectHelpers.d.ts +2 -0
  15. package/types/tests/unit/expectHelpers.d.ts.map +1 -0
  16. package/types/tests/unit/mockOnUnmounted.d.ts +2 -0
  17. package/types/tests/unit/mockOnUnmounted.d.ts.map +1 -0
  18. package/types/tests/unit/poll.d.ts +2 -0
  19. package/types/tests/unit/poll.d.ts.map +1 -0
  20. package/types/tests/unit/use/cancellableIntent.spec.d.ts +2 -0
  21. package/types/tests/unit/use/cancellableIntent.spec.d.ts.map +1 -0
  22. package/types/tests/unit/use/listCalculated.spec.d.ts +2 -0
  23. package/types/tests/unit/use/listCalculated.spec.d.ts.map +1 -0
  24. package/types/tests/unit/use/listFilter.spec.d.ts +2 -0
  25. package/types/tests/unit/use/listFilter.spec.d.ts.map +1 -0
  26. package/types/tests/unit/use/listInstance.spec.d.ts +2 -0
  27. package/types/tests/unit/use/listInstance.spec.d.ts.map +1 -0
  28. package/types/tests/unit/use/listRelated.spec.d.ts +2 -0
  29. package/types/tests/unit/use/listRelated.spec.d.ts.map +1 -0
  30. package/types/tests/unit/use/listSearch.spec.d.ts +2 -0
  31. package/types/tests/unit/use/listSearch.spec.d.ts.map +1 -0
  32. package/types/tests/unit/use/listSort.spec.d.ts +2 -0
  33. package/types/tests/unit/use/listSort.spec.d.ts.map +1 -0
  34. package/types/tests/unit/use/listSubscription.spec.d.ts +2 -0
  35. package/types/tests/unit/use/listSubscription.spec.d.ts.map +1 -0
  36. package/types/tests/unit/use/loadingError.spec.d.ts +2 -0
  37. package/types/tests/unit/use/loadingError.spec.d.ts.map +1 -0
  38. package/types/tests/unit/use/objectInstance.spec.d.ts +2 -0
  39. package/types/tests/unit/use/objectInstance.spec.d.ts.map +1 -0
  40. package/types/tests/unit/use/objectSubscription.spec.d.ts +2 -0
  41. package/types/tests/unit/use/objectSubscription.spec.d.ts.map +1 -0
  42. package/types/tests/unit/use/proxyLoadingError.spec.d.ts +2 -0
  43. package/types/tests/unit/use/proxyLoadingError.spec.d.ts.map +1 -0
  44. package/types/tests/unit/use/search.spec.d.ts +2 -0
  45. package/types/tests/unit/use/search.spec.d.ts.map +1 -0
  46. package/types/tests/unit/utils/assignReactiveObject.spec.d.ts +2 -0
  47. package/types/tests/unit/utils/assignReactiveObject.spec.d.ts.map +1 -0
  48. package/types/tests/unit/utils/classes.spec.d.ts +2 -0
  49. package/types/tests/unit/utils/classes.spec.d.ts.map +1 -0
  50. package/types/tests/unit/utils/deleteKey.spec.d.ts +2 -0
  51. package/types/tests/unit/utils/deleteKey.spec.d.ts.map +1 -0
  52. package/types/tests/unit/utils/flattenPaths.spec.d.ts +2 -0
  53. package/types/tests/unit/utils/flattenPaths.spec.d.ts.map +1 -0
  54. package/types/tests/unit/utils/keyDiff.spec.d.ts +2 -0
  55. package/types/tests/unit/utils/keyDiff.spec.d.ts.map +1 -0
  56. package/types/tests/unit/utils/set.spec.d.ts +2 -0
  57. package/types/tests/unit/utils/set.spec.d.ts.map +1 -0
  58. package/types/tests/unit/utils/watches.spec.d.ts +2 -0
  59. package/types/tests/unit/utils/watches.spec.d.ts.map +1 -0
  60. package/types/use/cancellableIntent.d.ts +129 -0
  61. package/types/use/cancellableIntent.d.ts.map +1 -0
  62. package/types/use/combineClasses.d.ts +43 -0
  63. package/types/use/combineClasses.d.ts.map +1 -0
  64. package/types/use/list.d.ts +176 -0
  65. package/types/use/list.d.ts.map +1 -0
  66. package/types/use/listCalculated.d.ts +192 -0
  67. package/types/use/listCalculated.d.ts.map +1 -0
  68. package/types/use/listFilter.d.ts +203 -0
  69. package/types/use/listFilter.d.ts.map +1 -0
  70. package/types/use/listInstance.d.ts +357 -0
  71. package/types/use/listInstance.d.ts.map +1 -0
  72. package/types/use/listKeys.d.ts +15 -0
  73. package/types/use/listKeys.d.ts.map +1 -0
  74. package/types/use/listRelated.d.ts +239 -0
  75. package/types/use/listRelated.d.ts.map +1 -0
  76. package/types/use/listSearch.d.ts +298 -0
  77. package/types/use/listSearch.d.ts.map +1 -0
  78. package/types/use/listSort.d.ts +235 -0
  79. package/types/use/listSort.d.ts.map +1 -0
  80. package/types/use/listSubscription.d.ts +218 -0
  81. package/types/use/listSubscription.d.ts.map +1 -0
  82. package/types/use/loadingError.d.ts +81 -0
  83. package/types/use/loadingError.d.ts.map +1 -0
  84. package/types/use/object.d.ts +67 -0
  85. package/types/use/object.d.ts.map +1 -0
  86. package/types/use/objectCalculated.d.ts +215 -0
  87. package/types/use/objectCalculated.d.ts.map +1 -0
  88. package/types/use/objectInstance.d.ts +289 -0
  89. package/types/use/objectInstance.d.ts.map +1 -0
  90. package/types/use/objectRelated.d.ts +264 -0
  91. package/types/use/objectRelated.d.ts.map +1 -0
  92. package/types/use/objectSubscription.d.ts +249 -0
  93. package/types/use/objectSubscription.d.ts.map +1 -0
  94. package/types/use/paginatedListInstance.d.ts +51 -0
  95. package/types/use/paginatedListInstance.d.ts.map +1 -0
  96. package/types/use/proxyLoadingError.d.ts +36 -0
  97. package/types/use/proxyLoadingError.d.ts.map +1 -0
  98. package/types/use/search.d.ts +144 -0
  99. package/types/use/search.d.ts.map +1 -0
  100. package/types/use/watchesRunning.d.ts +63 -0
  101. package/types/use/watchesRunning.d.ts.map +1 -0
  102. package/types/utils/assignReactiveObject.d.ts +115 -0
  103. package/types/utils/assignReactiveObject.d.ts.map +1 -0
  104. package/types/utils/classes.d.ts +22 -0
  105. package/types/utils/classes.d.ts.map +1 -0
  106. package/types/utils/compact.d.ts +4 -0
  107. package/types/utils/compact.d.ts.map +1 -0
  108. package/types/utils/deleteKey.d.ts +16 -0
  109. package/types/utils/deleteKey.d.ts.map +1 -0
  110. package/types/utils/flattenPaths.d.ts +23 -0
  111. package/types/utils/flattenPaths.d.ts.map +1 -0
  112. package/types/utils/getFakePk.d.ts +13 -0
  113. package/types/utils/getFakePk.d.ts.map +1 -0
  114. package/types/utils/keepAliveTry.d.ts +15 -0
  115. package/types/utils/keepAliveTry.d.ts.map +1 -0
  116. package/types/utils/keyDiff.d.ts +63 -0
  117. package/types/utils/keyDiff.d.ts.map +1 -0
  118. package/types/utils/loadingCombine.d.ts +9 -0
  119. package/types/utils/loadingCombine.d.ts.map +1 -0
  120. package/types/utils/proxyRunning.d.ts +9 -0
  121. package/types/utils/proxyRunning.d.ts.map +1 -0
  122. package/types/utils/relatedCalculatedHelpers.d.ts +5 -0
  123. package/types/utils/relatedCalculatedHelpers.d.ts.map +1 -0
  124. package/types/utils/set.d.ts +7 -0
  125. package/types/utils/set.d.ts.map +1 -0
  126. package/types/utils/transformWalk.d.ts +2 -0
  127. package/types/utils/transformWalk.d.ts.map +1 -0
  128. package/types/utils/watches.d.ts +155 -0
  129. package/types/utils/watches.d.ts.map +1 -0
  130. package/use/loadingError.js +1 -1
  131. package/.circleci/config.yml +0 -88
  132. package/.commitlintrc.json +0 -25
  133. package/.editorconfig +0 -5
  134. package/.husky/commit-msg +0 -3
  135. package/.husky/pre-commit +0 -3
  136. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  137. package/.idea/encodings.xml +0 -6
  138. package/.idea/inspectionProfiles/Project_Default.xml +0 -7
  139. package/.idea/modules.xml +0 -8
  140. package/.idea/prettier.xml +0 -8
  141. package/.idea/reactive-helpers.iml +0 -15
  142. package/.prettierignore +0 -5
  143. package/.prettierrc.cjs +0 -5
  144. package/.vscode/extensions.json +0 -3
  145. package/docs/README.md +0 -45
  146. package/docs/config/listCrud.md +0 -422
  147. package/docs/config/objectCrud.md +0 -427
  148. package/docs/use/cancellableIntent.md +0 -165
  149. package/docs/use/combineClasses.md +0 -62
  150. package/docs/use/list.md +0 -361
  151. package/docs/use/listCalculated.md +0 -794
  152. package/docs/use/listFilter.md +0 -897
  153. package/docs/use/listInstance.md +0 -559
  154. package/docs/use/listKeys.md +0 -91
  155. package/docs/use/listRelated.md +0 -706
  156. package/docs/use/listSearch.md +0 -903
  157. package/docs/use/listSort.md +0 -1171
  158. package/docs/use/listSubscription.md +0 -393
  159. package/docs/use/loadingError.md +0 -115
  160. package/docs/use/object.md +0 -668
  161. package/docs/use/objectCalculated.md +0 -741
  162. package/docs/use/objectInstance.md +0 -685
  163. package/docs/use/objectRelated.md +0 -723
  164. package/docs/use/objectSubscription.md +0 -538
  165. package/docs/use/paginatedListInstance.md +0 -155
  166. package/docs/use/proxyLoadingError.md +0 -51
  167. package/docs/use/search.md +0 -321
  168. package/docs/use/watchesRunning.md +0 -84
  169. package/docs/utils/assignReactiveObject.md +0 -413
  170. package/docs/utils/classes.md +0 -139
  171. package/docs/utils/compact.md +0 -67
  172. package/docs/utils/deleteKey.md +0 -61
  173. package/docs/utils/flattenPaths.md +0 -53
  174. package/docs/utils/getFakePk.md +0 -39
  175. package/docs/utils/keepAliveTry.md +0 -59
  176. package/docs/utils/keyDiff.md +0 -117
  177. package/docs/utils/loadingCombine.md +0 -30
  178. package/docs/utils/proxyRunning.md +0 -39
  179. package/docs/utils/relatedCalculatedHelpers.md +0 -93
  180. package/docs/utils/set.md +0 -223
  181. package/docs/utils/transformWalk.md +0 -68
  182. package/docs/utils/watches.md +0 -489
  183. package/eslint.config.js +0 -125
  184. package/lint-staged.config.js +0 -10
  185. package/makeTypeDoc.sh +0 -25
  186. package/make_type_doc.js +0 -59
  187. package/tests/unit/config/listCrud.spec.js +0 -114
  188. package/tests/unit/config/objectCrud.spec.js +0 -160
  189. package/tests/unit/crudPromise.js +0 -40
  190. package/tests/unit/expectHelpers.js +0 -6
  191. package/tests/unit/mockOnUnmounted.js +0 -9
  192. package/tests/unit/poll.js +0 -50
  193. package/tests/unit/use/cancellableIntent.spec.js +0 -152
  194. package/tests/unit/use/listCalculated.spec.js +0 -135
  195. package/tests/unit/use/listFilter.spec.js +0 -484
  196. package/tests/unit/use/listInstance.spec.js +0 -1166
  197. package/tests/unit/use/listRelated.spec.js +0 -260
  198. package/tests/unit/use/listSearch.spec.js +0 -586
  199. package/tests/unit/use/listSort.spec.js +0 -418
  200. package/tests/unit/use/listSubscription.spec.js +0 -845
  201. package/tests/unit/use/loadingError.spec.js +0 -43
  202. package/tests/unit/use/objectInstance.spec.js +0 -1525
  203. package/tests/unit/use/objectSubscription.spec.js +0 -849
  204. package/tests/unit/use/proxyLoadingError.spec.js +0 -64
  205. package/tests/unit/use/search.spec.js +0 -248
  206. package/tests/unit/utils/assignReactiveObject.spec.js +0 -593
  207. package/tests/unit/utils/classes.spec.js +0 -427
  208. package/tests/unit/utils/deleteKey.spec.js +0 -265
  209. package/tests/unit/utils/flattenPaths.spec.js +0 -126
  210. package/tests/unit/utils/keyDiff.spec.js +0 -110
  211. package/tests/unit/utils/set.spec.js +0 -81
  212. package/tests/unit/utils/watches.spec.js +0 -276
  213. package/tsconfig.json +0 -19
  214. package/typedoc-local-plugins/customize-output.js +0 -13
  215. package/typedoc.json +0 -11
  216. package/vitest.config.js +0 -11
@@ -1,260 +0,0 @@
1
- import { nextTick } from "vue";
2
- import { deepUnref } from "vue-deepunref";
3
-
4
- describe("use/listRelated", () => {
5
- let useListInstance, useListRelated, AwaitNot;
6
- beforeEach(async () => {
7
- const listInstanceModule = await import("../../../use/listInstance.js");
8
- useListInstance = listInstanceModule.useListInstance;
9
- const listRelatedModule = await import("../../../use/listRelated.js");
10
- useListRelated = listRelatedModule.useListRelated;
11
- // todo: no useListRelateds test yet
12
- const watchesModule = await import("../../../utils/watches.js");
13
- AwaitNot = watchesModule.AwaitNot;
14
- });
15
- it("should return a list of related items", async () => {
16
- const mainListInstance = useListInstance({ props: { pkKey: "id" }, keepOldPages: false });
17
- const relatedListInstance = useListInstance({ props: { pkKey: "id" }, keepOldPages: false });
18
- mainListInstance.addListObject({
19
- id: "1",
20
- name: "main",
21
- related_items: ["2", "3"],
22
- related_id: "4",
23
- });
24
- relatedListInstance.addListObject({
25
- id: "2",
26
- name: "related1",
27
- });
28
- relatedListInstance.addListObject({
29
- id: "3",
30
- name: "related2",
31
- });
32
- relatedListInstance.addListObject({
33
- id: "4",
34
- name: "related3",
35
- });
36
- const listRelated = useListRelated({
37
- parentState: mainListInstance.state,
38
- relatedObjectsRules: {
39
- relatedItems: {
40
- objects: relatedListInstance.state.objects,
41
- pkKey: "related_items",
42
- },
43
- relatedItem: {
44
- objects: relatedListInstance.state.objects,
45
- pkKey: "related_id",
46
- },
47
- },
48
- });
49
- await nextTick();
50
- // listRelated.state.objects is doing proxy shenanigans
51
- // in uses handler.has
52
- expect(!!listRelated.state.relatedObjects?.[1]).toBe(true);
53
- expect("relatedItems" in listRelated.state.relatedObjects[1]).toBe(true);
54
- expect("relatedItem" in listRelated.state.relatedObjects[1]).toBe(true);
55
- // expect uses enumeration, which uses handler.ownKeys and handler.getOwnPropertyDescriptor
56
- expect(deepUnref(listRelated.state.objects)).toEqual({
57
- 1: {
58
- id: "1",
59
- name: "main",
60
- related_id: "4",
61
- related_items: ["2", "3"],
62
- },
63
- });
64
- expect(deepUnref(listRelated.state.relatedObjects)).toEqual({
65
- 1: {
66
- relatedItems: [
67
- {
68
- id: "2",
69
- name: "related1",
70
- },
71
- {
72
- id: "3",
73
- name: "related2",
74
- },
75
- ],
76
- relatedItem: {
77
- id: "4",
78
- name: "related3",
79
- },
80
- },
81
- });
82
- });
83
- it('should allow related objects pkKey to be prefixed with "relatedItem." to reference previously related objects', async () => {
84
- //
85
- const mainListInstance = useListInstance({ props: { pkKey: "id" }, keepOldPages: false });
86
- const intermediateListInstance = useListInstance({ props: { pkKey: "id" }, keepOldPages: false });
87
- const relatedListInstance = useListInstance({ props: { pkKey: "id" }, keepOldPages: false });
88
- mainListInstance.addListObject({
89
- id: "1",
90
- name: "main",
91
- intermediate_ids: ["2", "3"],
92
- intermediate_id: "2",
93
- });
94
- intermediateListInstance.addListObject({
95
- id: "2",
96
- name: "intermediate1",
97
- related_ids: ["4", "5"],
98
- related_id: "4",
99
- });
100
- intermediateListInstance.addListObject({
101
- id: "3",
102
- name: "intermediate2",
103
- related_ids: ["6", "7"],
104
- related_id: "6",
105
- });
106
- relatedListInstance.addListObject({
107
- id: "4",
108
- name: "related1",
109
- });
110
- relatedListInstance.addListObject({
111
- id: "5",
112
- name: "related2",
113
- });
114
- relatedListInstance.addListObject({
115
- id: "6",
116
- name: "related3",
117
- });
118
- relatedListInstance.addListObject({
119
- id: "7",
120
- name: "related4",
121
- });
122
- const listRelated = useListRelated({
123
- parentState: mainListInstance.state,
124
- relatedObjectsRules: {
125
- intermediateItems: {
126
- objects: intermediateListInstance.state.objects,
127
- pkKey: "intermediate_ids",
128
- },
129
- intermediateItem: {
130
- objects: intermediateListInstance.state.objects,
131
- pkKey: "intermediate_id",
132
- },
133
- relatedItems: {
134
- objects: relatedListInstance.state.objects,
135
- pkKey: "relatedItem.intermediateItems.related_ids",
136
- },
137
- relatedItem: {
138
- objects: relatedListInstance.state.objects,
139
- pkKey: "relatedItem.intermediateItem.related_id",
140
- },
141
- },
142
- });
143
- const anr = new AwaitNot({
144
- obj: listRelated.state,
145
- prop: "running",
146
- });
147
- anr.start();
148
- await anr.promise;
149
- expect(deepUnref(listRelated.state.relatedObjects)).toEqual({
150
- 1: {
151
- intermediateItems: [
152
- {
153
- id: "2",
154
- name: "intermediate1",
155
- related_ids: ["4", "5"],
156
- related_id: "4",
157
- },
158
- {
159
- id: "3",
160
- name: "intermediate2",
161
- related_ids: ["6", "7"],
162
- related_id: "6",
163
- },
164
- ],
165
- intermediateItem: {
166
- id: "2",
167
- name: "intermediate1",
168
- related_ids: ["4", "5"],
169
- related_id: "4",
170
- },
171
- relatedItems: [
172
- {
173
- id: "4",
174
- name: "related1",
175
- },
176
- {
177
- id: "5",
178
- name: "related2",
179
- },
180
- {
181
- id: "6",
182
- name: "related3",
183
- },
184
- {
185
- id: "7",
186
- name: "related4",
187
- },
188
- ],
189
- relatedItem: {
190
- id: "4",
191
- name: "related1",
192
- },
193
- },
194
- });
195
- intermediateListInstance.state.objects[2].name = "intermediate1a";
196
- intermediateListInstance.state.objects[2].related_id = "6";
197
- intermediateListInstance.state.objects[2].related_ids = ["7", "8"];
198
- intermediateListInstance.state.objects[3].name = "intermediate2a";
199
- intermediateListInstance.state.objects[3].related_id = "4";
200
- intermediateListInstance.state.objects[3].related_ids = ["5", "9"];
201
- relatedListInstance.state.objects[4].name = "related1a";
202
- relatedListInstance.state.objects[5].name = "related2a";
203
- relatedListInstance.state.objects[6].name = "related3a";
204
- relatedListInstance.state.objects[7].name = "related4a";
205
- relatedListInstance.addListObject({
206
- id: "8",
207
- name: "related5",
208
- });
209
- relatedListInstance.addListObject({
210
- id: "9",
211
- name: "related6",
212
- });
213
- expect(deepUnref(listRelated.state.relatedObjects)).toEqual({
214
- 1: {
215
- intermediateItems: [
216
- {
217
- id: "2",
218
- name: "intermediate1a",
219
- related_ids: ["7", "8"],
220
- related_id: "6",
221
- },
222
- {
223
- id: "3",
224
- name: "intermediate2a",
225
- related_ids: ["5", "9"],
226
- related_id: "4",
227
- },
228
- ],
229
- intermediateItem: {
230
- id: "2",
231
- name: "intermediate1a",
232
- related_ids: ["7", "8"],
233
- related_id: "6",
234
- },
235
- relatedItems: [
236
- {
237
- id: "7",
238
- name: "related4a",
239
- },
240
- {
241
- id: "8",
242
- name: "related5",
243
- },
244
- {
245
- id: "5",
246
- name: "related2a",
247
- },
248
- {
249
- id: "9",
250
- name: "related6",
251
- },
252
- ],
253
- relatedItem: {
254
- id: "6",
255
- name: "related3a",
256
- },
257
- },
258
- });
259
- });
260
- });