@arrai-innovations/reactive-helpers 13.0.2 → 13.0.4
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.
- package/config/listCrud.js +69 -3
- package/config/objectCrud.js +62 -6
- package/docs/config/listCrud.md +207 -4
- package/docs/config/objectCrud.md +234 -12
- package/docs/use/combineClasses.md +9 -1
- package/docs/use/listInstance.md +17 -2
- package/docs/use/loadingError.md +70 -2
- package/docs/use/object.md +120 -24
- package/docs/use/objectCalculated.md +120 -24
- package/docs/use/objectInstance.md +120 -24
- package/docs/use/objectRelated.md +120 -24
- package/docs/use/objectSubscription.md +60 -12
- package/index.js +1 -0
- package/package.json +1 -1
- package/tests/unit/config/listCrud.spec.js +1 -1
- package/tests/unit/use/listInstance.spec.js +49 -1
- package/use/combineClasses.js +10 -6
- package/use/listInstance.js +34 -1
- package/use/listKeys.js +1 -0
- package/use/loadingError.js +13 -6
|
@@ -135,42 +135,90 @@ The arguments to be passed to the crud functions.
|
|
|
135
135
|
|
|
136
136
|
The arguments to be passed to the crud functions.
|
|
137
137
|
|
|
138
|
-
###### crudArgs.create
|
|
138
|
+
###### crudArgs.create()
|
|
139
139
|
|
|
140
|
-
> **create**: `
|
|
140
|
+
> **create**: (`CreateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
141
141
|
|
|
142
142
|
A function to be used instead of the default crud create function.
|
|
143
143
|
|
|
144
|
-
######
|
|
144
|
+
###### Parameters
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
• **CreateDetailArgs**: `any`
|
|
147
|
+
|
|
148
|
+
###### Returns
|
|
149
|
+
|
|
150
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
151
|
+
|
|
152
|
+
###### crudArgs.delete()
|
|
153
|
+
|
|
154
|
+
> **delete**: (`DeleteDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
147
155
|
|
|
148
156
|
A function to be used instead of the default crud delete function.
|
|
149
157
|
|
|
150
|
-
######
|
|
158
|
+
###### Parameters
|
|
151
159
|
|
|
152
|
-
|
|
160
|
+
• **DeleteDetailArgs**: `any`
|
|
161
|
+
|
|
162
|
+
###### Returns
|
|
163
|
+
|
|
164
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
165
|
+
|
|
166
|
+
###### crudArgs.patch()
|
|
167
|
+
|
|
168
|
+
> **patch**: (`PartialDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
153
169
|
|
|
154
170
|
A function to be used instead of the default crud patch function.
|
|
155
171
|
|
|
156
|
-
######
|
|
172
|
+
###### Parameters
|
|
173
|
+
|
|
174
|
+
• **PartialDetailArgs**: `any`
|
|
157
175
|
|
|
158
|
-
|
|
176
|
+
###### Returns
|
|
177
|
+
|
|
178
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
179
|
+
|
|
180
|
+
###### crudArgs.retrieve()
|
|
181
|
+
|
|
182
|
+
> **retrieve**: (`RetrieveDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
159
183
|
|
|
160
184
|
A function to be used instead of the default crud retrieve function.
|
|
161
185
|
|
|
162
|
-
######
|
|
186
|
+
###### Parameters
|
|
187
|
+
|
|
188
|
+
• **RetrieveDetailArgs**: `any`
|
|
189
|
+
|
|
190
|
+
###### Returns
|
|
191
|
+
|
|
192
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
193
|
+
|
|
194
|
+
###### crudArgs.subscribe()
|
|
163
195
|
|
|
164
|
-
> **subscribe**: `
|
|
196
|
+
> **subscribe**: (`SubscribeArgs`) => `void`
|
|
165
197
|
|
|
166
198
|
A function to be used instead of the default crud subscribe function.
|
|
167
199
|
|
|
168
|
-
######
|
|
200
|
+
###### Parameters
|
|
169
201
|
|
|
170
|
-
|
|
202
|
+
• **SubscribeArgs**: `any`
|
|
203
|
+
|
|
204
|
+
###### Returns
|
|
205
|
+
|
|
206
|
+
`void`
|
|
207
|
+
|
|
208
|
+
###### crudArgs.update()
|
|
209
|
+
|
|
210
|
+
> **update**: (`UpdateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
171
211
|
|
|
172
212
|
A function to be used instead of the default crud update function.
|
|
173
213
|
|
|
214
|
+
###### Parameters
|
|
215
|
+
|
|
216
|
+
• **UpdateDetailArgs**: `any`
|
|
217
|
+
|
|
218
|
+
###### Returns
|
|
219
|
+
|
|
220
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
221
|
+
|
|
174
222
|
###### id
|
|
175
223
|
|
|
176
224
|
> **id**: `string`
|
|
@@ -207,42 +255,90 @@ The crud functions.
|
|
|
207
255
|
|
|
208
256
|
The arguments to be passed to the crud functions.
|
|
209
257
|
|
|
210
|
-
###### crud.create
|
|
258
|
+
###### crud.create()
|
|
211
259
|
|
|
212
|
-
> **create**: `
|
|
260
|
+
> **create**: (`CreateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
213
261
|
|
|
214
262
|
A function to be used instead of the default crud create function.
|
|
215
263
|
|
|
216
|
-
######
|
|
264
|
+
###### Parameters
|
|
217
265
|
|
|
218
|
-
|
|
266
|
+
• **CreateDetailArgs**: `any`
|
|
267
|
+
|
|
268
|
+
###### Returns
|
|
269
|
+
|
|
270
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
271
|
+
|
|
272
|
+
###### crud.delete()
|
|
273
|
+
|
|
274
|
+
> **delete**: (`DeleteDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
219
275
|
|
|
220
276
|
A function to be used instead of the default crud delete function.
|
|
221
277
|
|
|
222
|
-
######
|
|
278
|
+
###### Parameters
|
|
223
279
|
|
|
224
|
-
|
|
280
|
+
• **DeleteDetailArgs**: `any`
|
|
281
|
+
|
|
282
|
+
###### Returns
|
|
283
|
+
|
|
284
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
285
|
+
|
|
286
|
+
###### crud.patch()
|
|
287
|
+
|
|
288
|
+
> **patch**: (`PartialDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
225
289
|
|
|
226
290
|
A function to be used instead of the default crud patch function.
|
|
227
291
|
|
|
228
|
-
######
|
|
292
|
+
###### Parameters
|
|
293
|
+
|
|
294
|
+
• **PartialDetailArgs**: `any`
|
|
229
295
|
|
|
230
|
-
|
|
296
|
+
###### Returns
|
|
297
|
+
|
|
298
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
299
|
+
|
|
300
|
+
###### crud.retrieve()
|
|
301
|
+
|
|
302
|
+
> **retrieve**: (`RetrieveDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
231
303
|
|
|
232
304
|
A function to be used instead of the default crud retrieve function.
|
|
233
305
|
|
|
234
|
-
######
|
|
306
|
+
###### Parameters
|
|
307
|
+
|
|
308
|
+
• **RetrieveDetailArgs**: `any`
|
|
309
|
+
|
|
310
|
+
###### Returns
|
|
311
|
+
|
|
312
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
313
|
+
|
|
314
|
+
###### crud.subscribe()
|
|
235
315
|
|
|
236
|
-
> **subscribe**: `
|
|
316
|
+
> **subscribe**: (`SubscribeArgs`) => `void`
|
|
237
317
|
|
|
238
318
|
A function to be used instead of the default crud subscribe function.
|
|
239
319
|
|
|
240
|
-
######
|
|
320
|
+
###### Parameters
|
|
241
321
|
|
|
242
|
-
|
|
322
|
+
• **SubscribeArgs**: `any`
|
|
323
|
+
|
|
324
|
+
###### Returns
|
|
325
|
+
|
|
326
|
+
`void`
|
|
327
|
+
|
|
328
|
+
###### crud.update()
|
|
329
|
+
|
|
330
|
+
> **update**: (`UpdateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
243
331
|
|
|
244
332
|
A function to be used instead of the default crud update function.
|
|
245
333
|
|
|
334
|
+
###### Parameters
|
|
335
|
+
|
|
336
|
+
• **UpdateDetailArgs**: `any`
|
|
337
|
+
|
|
338
|
+
###### Returns
|
|
339
|
+
|
|
340
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
341
|
+
|
|
246
342
|
###### deleted
|
|
247
343
|
|
|
248
344
|
> **deleted**: `boolean`
|
|
@@ -36,42 +36,90 @@ The crud functions.
|
|
|
36
36
|
|
|
37
37
|
The arguments to be passed to the crud functions.
|
|
38
38
|
|
|
39
|
-
###### crud.create
|
|
39
|
+
###### crud.create()
|
|
40
40
|
|
|
41
|
-
> **create**: `
|
|
41
|
+
> **create**: (`CreateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
42
42
|
|
|
43
43
|
A function to be used instead of the default crud create function.
|
|
44
44
|
|
|
45
|
-
######
|
|
45
|
+
###### Parameters
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
• **CreateDetailArgs**: `any`
|
|
48
|
+
|
|
49
|
+
###### Returns
|
|
50
|
+
|
|
51
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
52
|
+
|
|
53
|
+
###### crud.delete()
|
|
54
|
+
|
|
55
|
+
> **delete**: (`DeleteDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
48
56
|
|
|
49
57
|
A function to be used instead of the default crud delete function.
|
|
50
58
|
|
|
51
|
-
######
|
|
59
|
+
###### Parameters
|
|
60
|
+
|
|
61
|
+
• **DeleteDetailArgs**: `any`
|
|
62
|
+
|
|
63
|
+
###### Returns
|
|
52
64
|
|
|
53
|
-
|
|
65
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
66
|
+
|
|
67
|
+
###### crud.patch()
|
|
68
|
+
|
|
69
|
+
> **patch**: (`PartialDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
54
70
|
|
|
55
71
|
A function to be used instead of the default crud patch function.
|
|
56
72
|
|
|
57
|
-
######
|
|
73
|
+
###### Parameters
|
|
74
|
+
|
|
75
|
+
• **PartialDetailArgs**: `any`
|
|
76
|
+
|
|
77
|
+
###### Returns
|
|
78
|
+
|
|
79
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
80
|
+
|
|
81
|
+
###### crud.retrieve()
|
|
58
82
|
|
|
59
|
-
> **retrieve**: `
|
|
83
|
+
> **retrieve**: (`RetrieveDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
60
84
|
|
|
61
85
|
A function to be used instead of the default crud retrieve function.
|
|
62
86
|
|
|
63
|
-
######
|
|
87
|
+
###### Parameters
|
|
64
88
|
|
|
65
|
-
|
|
89
|
+
• **RetrieveDetailArgs**: `any`
|
|
90
|
+
|
|
91
|
+
###### Returns
|
|
92
|
+
|
|
93
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
94
|
+
|
|
95
|
+
###### crud.subscribe()
|
|
96
|
+
|
|
97
|
+
> **subscribe**: (`SubscribeArgs`) => `void`
|
|
66
98
|
|
|
67
99
|
A function to be used instead of the default crud subscribe function.
|
|
68
100
|
|
|
69
|
-
######
|
|
101
|
+
###### Parameters
|
|
102
|
+
|
|
103
|
+
• **SubscribeArgs**: `any`
|
|
104
|
+
|
|
105
|
+
###### Returns
|
|
70
106
|
|
|
71
|
-
|
|
107
|
+
`void`
|
|
108
|
+
|
|
109
|
+
###### crud.update()
|
|
110
|
+
|
|
111
|
+
> **update**: (`UpdateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
72
112
|
|
|
73
113
|
A function to be used instead of the default crud update function.
|
|
74
114
|
|
|
115
|
+
###### Parameters
|
|
116
|
+
|
|
117
|
+
• **UpdateDetailArgs**: `any`
|
|
118
|
+
|
|
119
|
+
###### Returns
|
|
120
|
+
|
|
121
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
122
|
+
|
|
75
123
|
###### deleted
|
|
76
124
|
|
|
77
125
|
> **deleted**: `boolean`
|
|
@@ -168,42 +216,90 @@ The crud functions.
|
|
|
168
216
|
|
|
169
217
|
The arguments to be passed to the crud functions.
|
|
170
218
|
|
|
171
|
-
###### crud.create
|
|
219
|
+
###### crud.create()
|
|
172
220
|
|
|
173
|
-
> **create**: `
|
|
221
|
+
> **create**: (`CreateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
174
222
|
|
|
175
223
|
A function to be used instead of the default crud create function.
|
|
176
224
|
|
|
177
|
-
######
|
|
225
|
+
###### Parameters
|
|
178
226
|
|
|
179
|
-
|
|
227
|
+
• **CreateDetailArgs**: `any`
|
|
228
|
+
|
|
229
|
+
###### Returns
|
|
230
|
+
|
|
231
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
232
|
+
|
|
233
|
+
###### crud.delete()
|
|
234
|
+
|
|
235
|
+
> **delete**: (`DeleteDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
180
236
|
|
|
181
237
|
A function to be used instead of the default crud delete function.
|
|
182
238
|
|
|
183
|
-
######
|
|
239
|
+
###### Parameters
|
|
240
|
+
|
|
241
|
+
• **DeleteDetailArgs**: `any`
|
|
242
|
+
|
|
243
|
+
###### Returns
|
|
184
244
|
|
|
185
|
-
|
|
245
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
246
|
+
|
|
247
|
+
###### crud.patch()
|
|
248
|
+
|
|
249
|
+
> **patch**: (`PartialDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
186
250
|
|
|
187
251
|
A function to be used instead of the default crud patch function.
|
|
188
252
|
|
|
189
|
-
######
|
|
253
|
+
###### Parameters
|
|
254
|
+
|
|
255
|
+
• **PartialDetailArgs**: `any`
|
|
256
|
+
|
|
257
|
+
###### Returns
|
|
258
|
+
|
|
259
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
260
|
+
|
|
261
|
+
###### crud.retrieve()
|
|
190
262
|
|
|
191
|
-
> **retrieve**: `
|
|
263
|
+
> **retrieve**: (`RetrieveDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
192
264
|
|
|
193
265
|
A function to be used instead of the default crud retrieve function.
|
|
194
266
|
|
|
195
|
-
######
|
|
267
|
+
###### Parameters
|
|
196
268
|
|
|
197
|
-
|
|
269
|
+
• **RetrieveDetailArgs**: `any`
|
|
270
|
+
|
|
271
|
+
###### Returns
|
|
272
|
+
|
|
273
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
274
|
+
|
|
275
|
+
###### crud.subscribe()
|
|
276
|
+
|
|
277
|
+
> **subscribe**: (`SubscribeArgs`) => `void`
|
|
198
278
|
|
|
199
279
|
A function to be used instead of the default crud subscribe function.
|
|
200
280
|
|
|
201
|
-
######
|
|
281
|
+
###### Parameters
|
|
282
|
+
|
|
283
|
+
• **SubscribeArgs**: `any`
|
|
284
|
+
|
|
285
|
+
###### Returns
|
|
202
286
|
|
|
203
|
-
|
|
287
|
+
`void`
|
|
288
|
+
|
|
289
|
+
###### crud.update()
|
|
290
|
+
|
|
291
|
+
> **update**: (`UpdateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
204
292
|
|
|
205
293
|
A function to be used instead of the default crud update function.
|
|
206
294
|
|
|
295
|
+
###### Parameters
|
|
296
|
+
|
|
297
|
+
• **UpdateDetailArgs**: `any`
|
|
298
|
+
|
|
299
|
+
###### Returns
|
|
300
|
+
|
|
301
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
302
|
+
|
|
207
303
|
###### deleted
|
|
208
304
|
|
|
209
305
|
> **deleted**: `boolean`
|
|
@@ -167,42 +167,90 @@ The crud functions.
|
|
|
167
167
|
|
|
168
168
|
The arguments to be passed to the crud functions.
|
|
169
169
|
|
|
170
|
-
###### crud.create
|
|
170
|
+
###### crud.create()
|
|
171
171
|
|
|
172
|
-
> **create**: `
|
|
172
|
+
> **create**: (`CreateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
173
173
|
|
|
174
174
|
A function to be used instead of the default crud create function.
|
|
175
175
|
|
|
176
|
-
######
|
|
176
|
+
###### Parameters
|
|
177
|
+
|
|
178
|
+
• **CreateDetailArgs**: `any`
|
|
179
|
+
|
|
180
|
+
###### Returns
|
|
181
|
+
|
|
182
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
177
183
|
|
|
178
|
-
|
|
184
|
+
###### crud.delete()
|
|
185
|
+
|
|
186
|
+
> **delete**: (`DeleteDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
179
187
|
|
|
180
188
|
A function to be used instead of the default crud delete function.
|
|
181
189
|
|
|
182
|
-
######
|
|
190
|
+
###### Parameters
|
|
191
|
+
|
|
192
|
+
• **DeleteDetailArgs**: `any`
|
|
193
|
+
|
|
194
|
+
###### Returns
|
|
183
195
|
|
|
184
|
-
|
|
196
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
197
|
+
|
|
198
|
+
###### crud.patch()
|
|
199
|
+
|
|
200
|
+
> **patch**: (`PartialDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
185
201
|
|
|
186
202
|
A function to be used instead of the default crud patch function.
|
|
187
203
|
|
|
188
|
-
######
|
|
204
|
+
###### Parameters
|
|
189
205
|
|
|
190
|
-
|
|
206
|
+
• **PartialDetailArgs**: `any`
|
|
207
|
+
|
|
208
|
+
###### Returns
|
|
209
|
+
|
|
210
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
211
|
+
|
|
212
|
+
###### crud.retrieve()
|
|
213
|
+
|
|
214
|
+
> **retrieve**: (`RetrieveDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
191
215
|
|
|
192
216
|
A function to be used instead of the default crud retrieve function.
|
|
193
217
|
|
|
194
|
-
######
|
|
218
|
+
###### Parameters
|
|
195
219
|
|
|
196
|
-
|
|
220
|
+
• **RetrieveDetailArgs**: `any`
|
|
221
|
+
|
|
222
|
+
###### Returns
|
|
223
|
+
|
|
224
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
225
|
+
|
|
226
|
+
###### crud.subscribe()
|
|
227
|
+
|
|
228
|
+
> **subscribe**: (`SubscribeArgs`) => `void`
|
|
197
229
|
|
|
198
230
|
A function to be used instead of the default crud subscribe function.
|
|
199
231
|
|
|
200
|
-
######
|
|
232
|
+
###### Parameters
|
|
233
|
+
|
|
234
|
+
• **SubscribeArgs**: `any`
|
|
235
|
+
|
|
236
|
+
###### Returns
|
|
237
|
+
|
|
238
|
+
`void`
|
|
239
|
+
|
|
240
|
+
###### crud.update()
|
|
201
241
|
|
|
202
|
-
> **update**: `
|
|
242
|
+
> **update**: (`UpdateDetailArgs`) => [`ResponseData`](../config/objectCrud.md#responsedata)
|
|
203
243
|
|
|
204
244
|
A function to be used instead of the default crud update function.
|
|
205
245
|
|
|
246
|
+
###### Parameters
|
|
247
|
+
|
|
248
|
+
• **UpdateDetailArgs**: `any`
|
|
249
|
+
|
|
250
|
+
###### Returns
|
|
251
|
+
|
|
252
|
+
[`ResponseData`](../config/objectCrud.md#responsedata)
|
|
253
|
+
|
|
206
254
|
###### deleted
|
|
207
255
|
|
|
208
256
|
> **deleted**: `boolean`
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@ describe("config/listCrud.js", () => {
|
|
|
30
30
|
*/
|
|
31
31
|
const retrievedCrud = reactive({});
|
|
32
32
|
expect(() => getListCrud(retrievedCrud)).not.toThrow();
|
|
33
|
-
expect(new Set(Object.keys(retrievedCrud))).toEqual(new Set(["list", "subscribe", "args"]));
|
|
33
|
+
expect(new Set(Object.keys(retrievedCrud))).toEqual(new Set(["list", "bulkDelete", "subscribe", "args"]));
|
|
34
34
|
expect(retrievedCrud.args).not.toBe(crud.args);
|
|
35
35
|
expect(retrievedCrud.args).toEqual(crud.args);
|
|
36
36
|
expect(retrievedCrud.list).toBe(crud.list);
|
|
@@ -11,15 +11,17 @@ afterAll(() => {
|
|
|
11
11
|
|
|
12
12
|
const fields = ["id", "__str__", "name"];
|
|
13
13
|
describe("use/listInstance.spec.js", function () {
|
|
14
|
-
let useListInstance, ListInstanceError, useListInstances, globalList;
|
|
14
|
+
let useListInstance, ListInstanceError, useListInstances, globalList, globalbulkDelete;
|
|
15
15
|
beforeEach(async () => {
|
|
16
16
|
const listCrud = await import("../../../config/listCrud.js");
|
|
17
17
|
const imported = await import("../../../use/listInstance.js");
|
|
18
18
|
globalList = vi.fn();
|
|
19
|
+
globalbulkDelete = vi.fn(() => Promise.resolve(true));
|
|
19
20
|
// @ts-ignore
|
|
20
21
|
globalList.cancel = vi.fn();
|
|
21
22
|
listCrud.setListCrud({
|
|
22
23
|
list: globalList,
|
|
24
|
+
bulkDelete: globalbulkDelete,
|
|
23
25
|
args: { stream: "test_stream" },
|
|
24
26
|
});
|
|
25
27
|
useListInstance = imported.useListInstance;
|
|
@@ -513,6 +515,52 @@ describe("use/listInstance.spec.js", function () {
|
|
|
513
515
|
expect(listInstance.state.order).toEqual(["2", "3"]);
|
|
514
516
|
});
|
|
515
517
|
});
|
|
518
|
+
describe("bulkDelete", function () {
|
|
519
|
+
it("succeeds", async function () {
|
|
520
|
+
const listArgs = reactive({
|
|
521
|
+
user: 1,
|
|
522
|
+
});
|
|
523
|
+
const retrieveArgs = reactive({
|
|
524
|
+
fields,
|
|
525
|
+
});
|
|
526
|
+
const listInstance = useListInstance({ props: { listArgs, retrieveArgs } });
|
|
527
|
+
let crudListResolve;
|
|
528
|
+
const crudListPromise = new Promise((resolve) => {
|
|
529
|
+
crudListResolve = resolve;
|
|
530
|
+
});
|
|
531
|
+
let passedPageCallback;
|
|
532
|
+
globalList.mockImplementation(({ pageCallback }) => {
|
|
533
|
+
passedPageCallback = pageCallback;
|
|
534
|
+
return crudListPromise;
|
|
535
|
+
});
|
|
536
|
+
const liListResolve = listInstance.list();
|
|
537
|
+
await nextTick();
|
|
538
|
+
// @ts-ignore - pageCallback is set in the mock, if not it will throw which is what we want
|
|
539
|
+
passedPageCallback(crudListResolvedPage2);
|
|
540
|
+
// @ts-ignore - crudListResolve is set in a promise, since we await this will be set
|
|
541
|
+
crudListResolve();
|
|
542
|
+
await flushPromises();
|
|
543
|
+
await expect(liListResolve).resolves.toBe(true);
|
|
544
|
+
|
|
545
|
+
expect({ ...listInstance.state.objects }).toEqual(crudListResolvedObjects2);
|
|
546
|
+
const bulkDeleteResolve = listInstance.bulkDelete();
|
|
547
|
+
expectErrorToBeNull(listInstance.state.error);
|
|
548
|
+
expect(listInstance.state.errored).toBe(false);
|
|
549
|
+
expect(listInstance.state.loading).toBe(true);
|
|
550
|
+
expect(globalbulkDelete).toHaveBeenCalledWith({
|
|
551
|
+
crudArgs: { stream: "test_stream" },
|
|
552
|
+
ids: Object.keys(crudListResolvedObjects2).map(Number),
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
expect(globalbulkDelete).toHaveBeenCalledTimes(1);
|
|
556
|
+
|
|
557
|
+
// @ts-ignore - bulkDeleteResolve is set in a promise, since we await this will be set
|
|
558
|
+
crudListResolve();
|
|
559
|
+
await flushPromises();
|
|
560
|
+
await expect(bulkDeleteResolve).resolves.toBe(true);
|
|
561
|
+
expect({ ...listInstance.state.objects }).toEqual({});
|
|
562
|
+
});
|
|
563
|
+
});
|
|
516
564
|
describe("getFakeId", function () {
|
|
517
565
|
it("returns fakeId", function () {
|
|
518
566
|
const listInstance = useListInstance({ props: {} });
|
package/use/combineClasses.js
CHANGED
|
@@ -15,6 +15,15 @@ import { isRef, ref, watch, isReactive } from "vue";
|
|
|
15
15
|
*/
|
|
16
16
|
const isRefOrReactive = (v) => isRef(v) || isReactive(v);
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {(
|
|
20
|
+
* string |
|
|
21
|
+
* string[] |
|
|
22
|
+
* { [key: string]: boolean | import("vue").Ref<boolean> } |
|
|
23
|
+
* import("vue").Ref<string | string[]>
|
|
24
|
+
* )} CSSClasses
|
|
25
|
+
*/
|
|
26
|
+
|
|
18
27
|
/**
|
|
19
28
|
* Normalize various ways of specifying CSS classes into an object for use in Vue.js with reactivity. If refs are
|
|
20
29
|
* present, the resulting object will be a ref containing an array of objects to preserve order of operations in
|
|
@@ -40,12 +49,7 @@ const isRefOrReactive = (v) => isRef(v) || isReactive(v);
|
|
|
40
49
|
* </script>
|
|
41
50
|
* ```
|
|
42
51
|
*
|
|
43
|
-
* @param {...(
|
|
44
|
-
* string |
|
|
45
|
-
* string[] |
|
|
46
|
-
* { [key: string]: boolean | import("vue").Ref<boolean> } |
|
|
47
|
-
* import("vue").Ref<string | string[]>
|
|
48
|
-
* )} classes - A mixed array containing multiple ways of specifying CSS classes.
|
|
52
|
+
* @param {...(CSSClasses)} classes - A mixed array containing multiple ways of specifying CSS classes.
|
|
49
53
|
* @returns {import("vue").Ref<import('../utils/classes.js').CombinedClasses>} - A ref
|
|
50
54
|
* containing an object or array of objects containing CSS classes. Arrays are used if refs are present, to
|
|
51
55
|
* preserve order of operations in reactive contexts.
|