@based/schema 2.2.10 → 2.2.11

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 (95) hide show
  1. package/dist/{display → src/display}/index.d.ts +1 -1
  2. package/dist/src/display/index.js +16 -0
  3. package/dist/{display → src/display}/number.js +1 -3
  4. package/dist/{display → src/display}/string.js +1 -3
  5. package/dist/{display → src/display}/timestamp.js +1 -3
  6. package/dist/{error.js → src/error.js} +2 -5
  7. package/dist/src/index.d.ts +5 -0
  8. package/dist/src/index.js +6 -0
  9. package/dist/{languages.js → src/languages.js} +1 -4
  10. package/dist/src/set/fields/array.d.ts +2 -0
  11. package/dist/{set → src/set}/fields/array.js +10 -14
  12. package/dist/src/set/fields/index.d.ts +3 -0
  13. package/dist/src/set/fields/index.js +71 -0
  14. package/dist/{set → src/set}/fields/number.d.ts +1 -1
  15. package/dist/{set → src/set}/fields/number.js +15 -21
  16. package/dist/{set → src/set}/fields/object.d.ts +1 -1
  17. package/dist/src/set/fields/object.js +28 -0
  18. package/dist/{set → src/set}/fields/references.d.ts +1 -1
  19. package/dist/{set → src/set}/fields/references.js +13 -18
  20. package/dist/src/set/fields/set.d.ts +2 -0
  21. package/dist/{set → src/set}/fields/set.js +4 -8
  22. package/dist/{set → src/set}/fields/string.d.ts +1 -1
  23. package/dist/{set → src/set}/fields/string.js +87 -95
  24. package/dist/{set → src/set}/index.d.ts +2 -2
  25. package/dist/{set → src/set}/index.js +21 -25
  26. package/dist/{set → src/set}/isValidId.d.ts +1 -1
  27. package/dist/{set → src/set}/isValidId.js +1 -5
  28. package/dist/{types.d.ts → src/types.d.ts} +6 -6
  29. package/dist/src/types.js +23 -0
  30. package/dist/src/updateSchema.d.ts +2 -0
  31. package/dist/src/updateSchema.js +12 -0
  32. package/dist/src/validateSchema.d.ts +4 -0
  33. package/dist/{validateSchema.js → src/validateSchema.js} +5 -11
  34. package/dist/{walker → src/walker}/args.d.ts +4 -4
  35. package/dist/{walker → src/walker}/args.js +8 -12
  36. package/dist/src/walker/index.d.ts +6 -0
  37. package/dist/src/walker/index.js +31 -0
  38. package/dist/{walker → src/walker}/parse.d.ts +1 -1
  39. package/dist/{walker → src/walker}/parse.js +7 -11
  40. package/dist/{walker → src/walker}/types.d.ts +3 -3
  41. package/dist/{walker → src/walker}/types.js +2 -5
  42. package/dist/test/array.d.ts +1 -0
  43. package/dist/test/array.js +342 -0
  44. package/dist/test/display.d.ts +1 -0
  45. package/dist/test/display.js +103 -0
  46. package/dist/test/number.d.ts +1 -0
  47. package/dist/test/number.js +374 -0
  48. package/dist/test/reference.d.ts +1 -0
  49. package/dist/test/reference.js +186 -0
  50. package/dist/test/rest.d.ts +1 -0
  51. package/dist/test/rest.js +168 -0
  52. package/dist/test/set.d.ts +1 -0
  53. package/dist/test/set.js +95 -0
  54. package/dist/test/string.d.ts +1 -0
  55. package/dist/test/string.js +120 -0
  56. package/dist/test/text.d.ts +1 -0
  57. package/dist/test/text.js +324 -0
  58. package/dist/test/utils/index.d.ts +11 -0
  59. package/dist/test/utils/index.js +17 -0
  60. package/dist/test/validateSchema.d.ts +1 -0
  61. package/dist/test/validateSchema.js +38 -0
  62. package/dist/test/walker.d.ts +1 -0
  63. package/dist/test/walker.js +289 -0
  64. package/package.json +8 -13
  65. package/dist/display/dateString copy.d.ts +0 -3
  66. package/dist/display/dateString copy.js +0 -127
  67. package/dist/display/dateString.d.ts +0 -3
  68. package/dist/display/dateString.js +0 -127
  69. package/dist/display/display.d.ts +0 -1
  70. package/dist/display/display.js +0 -8
  71. package/dist/display/index.js +0 -26
  72. package/dist/display/number copy.d.ts +0 -3
  73. package/dist/display/number copy.js +0 -81
  74. package/dist/display.d.ts +0 -2
  75. package/dist/display.js +0 -8
  76. package/dist/index.d.ts +0 -5
  77. package/dist/index.js +0 -22
  78. package/dist/set/fields/array.d.ts +0 -2
  79. package/dist/set/fields/index.d.ts +0 -3
  80. package/dist/set/fields/index.js +0 -74
  81. package/dist/set/fields/object.js +0 -33
  82. package/dist/set/fields/set.d.ts +0 -2
  83. package/dist/set/types.d.ts +0 -0
  84. package/dist/set/types.js +0 -1
  85. package/dist/types.js +0 -27
  86. package/dist/updateSchema.d.ts +0 -2
  87. package/dist/updateSchema.js +0 -16
  88. package/dist/validateSchema.d.ts +0 -4
  89. package/dist/walker/index.d.ts +0 -6
  90. package/dist/walker/index.js +0 -49
  91. /package/dist/{display → src/display}/number.d.ts +0 -0
  92. /package/dist/{display → src/display}/string.d.ts +0 -0
  93. /package/dist/{display → src/display}/timestamp.d.ts +0 -0
  94. /package/dist/{error.d.ts → src/error.d.ts} +0 -0
  95. /package/dist/{languages.d.ts → src/languages.d.ts} +0 -0
@@ -0,0 +1,374 @@
1
+ import test from 'ava';
2
+ import { setWalker } from '../src/index.js';
3
+ import { resultCollect, errorCollect } from './utils/index.js';
4
+ const schema = {
5
+ types: {
6
+ bla: {
7
+ prefix: 'bl',
8
+ fields: {
9
+ number: {
10
+ type: 'number',
11
+ maximum: 6,
12
+ minimum: 3,
13
+ },
14
+ infiniteNum: {
15
+ type: 'number',
16
+ },
17
+ infiniteInt: {
18
+ type: 'integer',
19
+ },
20
+ exclusiveminmax: {
21
+ type: 'number',
22
+ minimum: 3,
23
+ exclusiveMinimum: true,
24
+ maximum: 6,
25
+ exclusiveMaximum: true,
26
+ },
27
+ integer: {
28
+ type: 'integer',
29
+ },
30
+ multipleOf: {
31
+ type: 'integer',
32
+ multipleOf: 3,
33
+ },
34
+ set: {
35
+ type: 'set',
36
+ items: { type: 'number', minimum: 3, maximum: 6 },
37
+ },
38
+ },
39
+ },
40
+ },
41
+ $defs: {},
42
+ language: 'en',
43
+ root: {
44
+ fields: {},
45
+ },
46
+ prefixToTypeMapping: {
47
+ bl: 'bla',
48
+ },
49
+ };
50
+ //todo need help typing this maybe
51
+ test('min-max', async (t) => {
52
+ const e1 = await setWalker(schema, {
53
+ $id: 'bl1',
54
+ number: 1,
55
+ });
56
+ const e2 = await setWalker(schema, {
57
+ $id: 'bl1',
58
+ number: 10,
59
+ });
60
+ const res1 = await setWalker(schema, {
61
+ $id: 'bl1',
62
+ number: 3,
63
+ });
64
+ const res2 = await setWalker(schema, {
65
+ $id: 'bl1',
66
+ number: 6,
67
+ });
68
+ t.true(errorCollect(e1, e2).length > 0);
69
+ t.deepEqual(resultCollect(res1, res2), [
70
+ { path: ['number'], value: 3 },
71
+ { path: ['number'], value: 6 },
72
+ ]);
73
+ });
74
+ test('min-max exclusive', async (t) => {
75
+ const e1 = await setWalker(schema, {
76
+ $id: 'bl1',
77
+ exclusiveminmax: 3,
78
+ });
79
+ const e2 = await setWalker(schema, {
80
+ $id: 'bl1',
81
+ exclusiveminmax: 6,
82
+ });
83
+ const res1 = await setWalker(schema, {
84
+ $id: 'bl1',
85
+ exclusiveminmax: 4,
86
+ });
87
+ const res2 = await setWalker(schema, {
88
+ $id: 'bl1',
89
+ exclusiveminmax: 5,
90
+ });
91
+ t.assert(errorCollect(e1, e2).length > 0);
92
+ t.deepEqual(resultCollect(res1, res2), [
93
+ { path: ['exclusiveminmax'], value: 4 },
94
+ { path: ['exclusiveminmax'], value: 5 },
95
+ ]);
96
+ });
97
+ test('isInteger', async (t) => {
98
+ const e1 = await setWalker(schema, {
99
+ $id: 'bl1',
100
+ integer: 6.5,
101
+ });
102
+ const res1 = await setWalker(schema, {
103
+ $id: 'bl1',
104
+ integer: 5,
105
+ });
106
+ t.assert(errorCollect(e1).length > 0);
107
+ t.deepEqual(resultCollect(res1), [{ path: ['integer'], value: 5 }]);
108
+ });
109
+ test('isMultiple', async (t) => {
110
+ const e1 = await setWalker(schema, {
111
+ $id: 'bl1',
112
+ multipleOf: 7,
113
+ });
114
+ const res1 = await setWalker(schema, {
115
+ $id: 'bl1',
116
+ multipleOf: 9,
117
+ });
118
+ t.assert(errorCollect(e1).length > 0);
119
+ t.deepEqual(resultCollect(res1), [{ path: ['multipleOf'], value: 9 }]);
120
+ });
121
+ //TODO fix
122
+ test('numbers in a set', async (t) => {
123
+ const e1 = await setWalker(schema, {
124
+ $id: 'bl1',
125
+ set: [9, 4, 5, 2],
126
+ });
127
+ const res1 = await setWalker(schema, { $id: 'bl1', set: [3, 3, 3, 3] });
128
+ t.assert(errorCollect(e1).length > 0);
129
+ t.deepEqual(resultCollect(res1), [
130
+ { path: ['set'], value: { $value: [3, 3, 3, 3] } },
131
+ ]);
132
+ });
133
+ //TODO fix
134
+ test('value', async (t) => {
135
+ const e1 = await setWalker(schema, {
136
+ $id: 'bl1',
137
+ number: { $value: 7 },
138
+ });
139
+ const e2 = await setWalker(schema, {
140
+ $id: 'bl1',
141
+ exclusiveminmax: { $value: 3 },
142
+ });
143
+ const e3 = await setWalker(schema, {
144
+ $id: 'bl1',
145
+ integer: { value: 3.5 },
146
+ });
147
+ const e4 = await setWalker(schema, {
148
+ $id: 'bl1',
149
+ set: { $value: [1, 3, 3, 4] },
150
+ });
151
+ const e5 = await setWalker(schema, {
152
+ $id: 'bl1',
153
+ multipleOf: { $value: 2 },
154
+ });
155
+ const res1 = await setWalker(schema, {
156
+ $id: 'bl1',
157
+ number: { $value: 4 },
158
+ });
159
+ const res2 = await setWalker(schema, {
160
+ $id: 'bl1',
161
+ integer: { $value: 4 },
162
+ });
163
+ const res3 = await setWalker(schema, {
164
+ $id: 'bl1',
165
+ exclusiveminmax: { $value: 4 },
166
+ });
167
+ const res4 = await setWalker(schema, {
168
+ $id: 'bl1',
169
+ multipleOf: { $value: 6 },
170
+ });
171
+ await setWalker(schema, {
172
+ $id: 'bl1',
173
+ set: { $value: [3, 3, 3, 4] },
174
+ });
175
+ t.assert(errorCollect(e1, e2, e3, e4, e5).length > 0);
176
+ t.deepEqual(resultCollect(res1, res2, res3, res4), [
177
+ { path: ['number'], value: 4 },
178
+ { path: ['integer'], value: 4 },
179
+ { path: ['exclusiveminmax'], value: 4 },
180
+ { path: ['multipleOf'], value: 6 },
181
+ ]);
182
+ });
183
+ test('default', async (t) => {
184
+ const e1 = await setWalker(schema, {
185
+ $id: 'bl1',
186
+ number: { $default: 7 },
187
+ });
188
+ const e2 = await setWalker(schema, {
189
+ $id: 'bl1',
190
+ exclusiveminmax: { $default: 3 },
191
+ });
192
+ const e3 = await setWalker(schema, {
193
+ $id: 'bl1',
194
+ integer: { default: 3.5 },
195
+ });
196
+ const e4 = await setWalker(schema, {
197
+ $id: 'bl1',
198
+ set: { $default: [1, 3, 3, 4] },
199
+ });
200
+ const e5 = await setWalker(schema, {
201
+ $id: 'bl1',
202
+ multipleOf: { $default: 2 },
203
+ });
204
+ const res1 = await setWalker(schema, {
205
+ $id: 'bl1',
206
+ number: { $default: 4 },
207
+ });
208
+ const res2 = await setWalker(schema, {
209
+ $id: 'bl1',
210
+ integer: { $default: 4 },
211
+ });
212
+ const res3 = await setWalker(schema, {
213
+ $id: 'bl1',
214
+ exclusiveminmax: { $default: 4 },
215
+ });
216
+ const res4 = await setWalker(schema, {
217
+ $id: 'bl1',
218
+ multipleOf: { $default: 6 },
219
+ });
220
+ const res5 = await setWalker(schema, {
221
+ $id: 'bl1',
222
+ set: { $default: [3, 3, 3, 4] },
223
+ });
224
+ t.assert(errorCollect(e1, e2, e3, e4, e5).length > 0);
225
+ t.deepEqual(resultCollect(res1, res2, res3, res4, res5), [
226
+ { path: ['number'], value: { $default: 4 } },
227
+ { path: ['integer'], value: { $default: 4 } },
228
+ { path: ['exclusiveminmax'], value: { $default: 4 } },
229
+ { path: ['multipleOf'], value: { $default: 6 } },
230
+ { path: ['set'], value: { $default: { $value: [3, 3, 3, 4] } } },
231
+ ]);
232
+ });
233
+ test('decrement', async (t) => {
234
+ //maxmin
235
+ const e1 = await setWalker(schema, {
236
+ $id: 'bl1',
237
+ number: { $decrement: 2 },
238
+ });
239
+ const e2 = await setWalker(schema, {
240
+ $id: 'bl1',
241
+ number: { $decrement: 7 },
242
+ });
243
+ const res1 = await setWalker(schema, {
244
+ $id: 'bl1',
245
+ number: { $decrement: 3 },
246
+ });
247
+ //exclusiveminmax
248
+ const e3 = await setWalker(schema, {
249
+ $id: 'bl1',
250
+ exclusiveminmax: { $decrement: 3 },
251
+ });
252
+ const e4 = await setWalker(schema, {
253
+ $id: 'bl1',
254
+ exclusiveminmax: { $decrement: 6 },
255
+ });
256
+ const res2 = await setWalker(schema, {
257
+ $id: 'bl1',
258
+ exclusiveminmax: { $decrement: 4 },
259
+ });
260
+ //integer
261
+ const e5 = await setWalker(schema, {
262
+ $id: 'bl1',
263
+ integer: { $decrement: 3.5 },
264
+ });
265
+ const res3 = await setWalker(schema, {
266
+ $id: 'bl1',
267
+ integer: { $decrement: 3 },
268
+ });
269
+ //multiple of
270
+ const e6 = await setWalker(schema, {
271
+ $id: 'bl1',
272
+ multipleOf: { $decrement: 7 },
273
+ });
274
+ const res4 = await setWalker(schema, {
275
+ $id: 'bl1',
276
+ multipleOf: { $decrement: 9 },
277
+ });
278
+ t.assert(errorCollect(e1, e2, e3, e4, e5, e6).length > 0);
279
+ t.deepEqual(resultCollect(res1, res2, res3, res4), [
280
+ { path: ['number'], value: { $decrement: 3 } },
281
+ { path: ['exclusiveminmax'], value: { $decrement: 4 } },
282
+ { path: ['integer'], value: { $decrement: 3 } },
283
+ { path: ['multipleOf'], value: { $decrement: 9 } },
284
+ ]);
285
+ });
286
+ test('increment', async (t) => {
287
+ //maxmin
288
+ const e1 = await setWalker(schema, {
289
+ $id: 'bl1',
290
+ number: { $increment: 2 },
291
+ });
292
+ const e2 = await setWalker(schema, {
293
+ $id: 'bl1',
294
+ number: { $increment: 7 },
295
+ });
296
+ const res1 = await setWalker(schema, {
297
+ $id: 'bl1',
298
+ number: { $increment: 3 },
299
+ });
300
+ //exclusiveminmax
301
+ const e3 = await setWalker(schema, {
302
+ $id: 'bl1',
303
+ exclusiveminmax: { $increment: 3 },
304
+ });
305
+ const e4 = await setWalker(schema, {
306
+ $id: 'bl1',
307
+ exclusiveminmax: { $increment: 6 },
308
+ });
309
+ const res2 = await setWalker(schema, {
310
+ $id: 'bl1',
311
+ exclusiveminmax: { $increment: 4 },
312
+ });
313
+ //integer
314
+ const e5 = await setWalker(schema, {
315
+ $id: 'bl1',
316
+ integer: { $increment: 3.5 },
317
+ });
318
+ const res3 = await setWalker(schema, {
319
+ $id: 'bl1',
320
+ integer: { $increment: 3 },
321
+ });
322
+ //multiple of
323
+ const e6 = await setWalker(schema, {
324
+ $id: 'bl1',
325
+ multipleOf: { $increment: 7 },
326
+ });
327
+ const res4 = await setWalker(schema, {
328
+ $id: 'bl1',
329
+ multipleOf: { $increment: 9 },
330
+ });
331
+ t.assert(errorCollect(e1, e2, e3, e4, e5, e6).length > 0);
332
+ t.deepEqual(resultCollect(res1, res2, res3, res4), [
333
+ { path: ['number'], value: { $increment: 3 } },
334
+ { path: ['exclusiveminmax'], value: { $increment: 4 } },
335
+ { path: ['integer'], value: { $increment: 3 } },
336
+ { path: ['multipleOf'], value: { $increment: 9 } },
337
+ ]);
338
+ });
339
+ test('NaN', async (t) => {
340
+ const r = await setWalker(schema, {
341
+ $id: 'bl120',
342
+ integer: NaN,
343
+ });
344
+ t.is(r.errors.length, 1);
345
+ });
346
+ test('Infinity (integer)', async (t) => {
347
+ const r = await setWalker(schema, {
348
+ $id: 'bl120',
349
+ integer: Infinity,
350
+ });
351
+ t.is(r.errors.length, 1);
352
+ });
353
+ test('Infinity (number)', async (t) => {
354
+ const r = await setWalker(schema, {
355
+ $id: 'bl120',
356
+ infiniteNum: Infinity,
357
+ });
358
+ t.is(r.errors.length, 1);
359
+ });
360
+ test('number -infinity', async (t) => {
361
+ const r = await setWalker(schema, {
362
+ $id: 'bl120',
363
+ infiniteNum: -Infinity,
364
+ });
365
+ t.is(r.errors.length, 1);
366
+ });
367
+ test('number with max infinity', async (t) => {
368
+ const r = await setWalker(schema, {
369
+ $id: 'bl120',
370
+ number: Infinity,
371
+ });
372
+ t.is(r.errors.length, 1);
373
+ });
374
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,186 @@
1
+ import test from 'ava';
2
+ import { setWalker } from '../src/index.js';
3
+ import { resultCollect } from './utils/index.js';
4
+ const schema = {
5
+ types: {
6
+ thing: {
7
+ prefix: 'ti',
8
+ fields: {
9
+ priority: { type: 'number' },
10
+ something: { type: 'string', format: 'strongPassword' },
11
+ },
12
+ },
13
+ bla: {
14
+ prefix: 'bl',
15
+ fields: {
16
+ ref: {
17
+ type: 'reference',
18
+ },
19
+ children: {
20
+ type: 'references',
21
+ },
22
+ referencesToThings: {
23
+ type: 'references',
24
+ allowedTypes: ['thing'],
25
+ },
26
+ referenceToThing: {
27
+ type: 'reference',
28
+ allowedTypes: ['thing'],
29
+ },
30
+ },
31
+ },
32
+ },
33
+ $defs: {},
34
+ language: 'en',
35
+ translations: ['de', 'nl', 'ro', 'za', 'ae'],
36
+ root: {
37
+ fields: {},
38
+ },
39
+ prefixToTypeMapping: {
40
+ bl: 'bla',
41
+ ti: 'thing',
42
+ },
43
+ };
44
+ let r;
45
+ test('simple error', async (t) => {
46
+ r = await setWalker(schema, {
47
+ $id: 'bl120',
48
+ referenceToThing: 'sdfefewfewfewewffwe',
49
+ });
50
+ t.true(r.errors.length === 1);
51
+ });
52
+ test('simple case ', async (t) => {
53
+ r = await setWalker(schema, {
54
+ $id: 'bl120',
55
+ referenceToThing: 'tibla',
56
+ });
57
+ t.deepEqual(resultCollect(r), [
58
+ { path: ['referenceToThing'], value: 'tibla' },
59
+ ]);
60
+ });
61
+ test('reference to wrong type', async (t) => {
62
+ r = await setWalker(schema, {
63
+ $id: 'bl120',
64
+ referenceToThing: 'blbla',
65
+ });
66
+ t.true(r.errors.length === 1);
67
+ });
68
+ test('references with wrongly formatted ids and incorrect types ', async (t) => {
69
+ r = await setWalker(schema, {
70
+ $id: 'bl120',
71
+ referencesToThings: ['blbla', 'ti123', 'ewiohfdoweihfw'],
72
+ });
73
+ t.true(r.errors.length === 2);
74
+ });
75
+ test('references to empty array (clear)', async (t) => {
76
+ r = await setWalker(schema, {
77
+ $id: 'bl120',
78
+ referencesToThings: [],
79
+ });
80
+ t.deepEqual(resultCollect(r), [
81
+ { path: ['referencesToThings'], value: { $value: [] } },
82
+ ]);
83
+ t.is(r.errors.length, 0);
84
+ });
85
+ test('$remove references', async (t) => {
86
+ r = await setWalker(schema, {
87
+ $id: 'bl120',
88
+ referencesToThings: { $remove: ['ti123'] },
89
+ });
90
+ t.deepEqual(resultCollect(r), [
91
+ { path: ['referencesToThings'], value: { $remove: ['ti123'] } },
92
+ ]);
93
+ });
94
+ test('$add 0 2 wrong', async (t) => {
95
+ r = await setWalker(schema, {
96
+ $id: 'bl120',
97
+ referencesToThings: { $add: ['blbla', 'ti123', 'ewiohfdoweihfw'] },
98
+ });
99
+ t.true(r.errors.length === 2);
100
+ });
101
+ test('$add correct ', async (t) => {
102
+ r = await setWalker(schema, {
103
+ $id: 'bl120',
104
+ referencesToThings: { $add: 'ti123' },
105
+ });
106
+ t.deepEqual(resultCollect(r), [
107
+ { path: ['referencesToThings'], value: { $add: ['ti123'] } },
108
+ ]);
109
+ });
110
+ test('$remove $value not allowed', async (t) => {
111
+ r = await setWalker(schema, {
112
+ $id: 'bl120',
113
+ referencesToThings: { $remove: { $value: 'ti123' } },
114
+ });
115
+ t.true(r.errors.length > 0);
116
+ });
117
+ test('reference to an object', async (t) => {
118
+ r = await setWalker(schema, {
119
+ $id: 'bl120',
120
+ referenceToThing: {
121
+ type: 'thing',
122
+ priority: 9000,
123
+ },
124
+ }, async (args) => {
125
+ if (args.value.type === 'thing') {
126
+ return 'tilil';
127
+ }
128
+ else {
129
+ return 'bl1221';
130
+ }
131
+ });
132
+ t.is(r.errors.length, 0);
133
+ t.deepEqual(resultCollect(r), [
134
+ { path: ['referenceToThing'], value: 'tilil' },
135
+ ]);
136
+ t.true(true);
137
+ });
138
+ test('nested references + $add (deep)', async (t) => {
139
+ r = await setWalker(schema, {
140
+ $id: 'bl1221',
141
+ children: {
142
+ $add: [
143
+ {
144
+ type: 'bla',
145
+ },
146
+ ],
147
+ },
148
+ }, async (args) => {
149
+ if (args.value.type === 'thing') {
150
+ return 'tilil';
151
+ }
152
+ else {
153
+ return 'bl1221';
154
+ }
155
+ });
156
+ t.is(r.errors.length, 0);
157
+ t.deepEqual(resultCollect(r), [
158
+ { path: ['children'], value: { $add: ['bl1221'] } },
159
+ ]);
160
+ });
161
+ test('nested ref + references', async (t) => {
162
+ r = await setWalker(schema, {
163
+ $id: 'bl1221',
164
+ ref: {
165
+ $id: 'bl1221',
166
+ },
167
+ children: [
168
+ {
169
+ $id: 'bl1221',
170
+ },
171
+ ],
172
+ }, async (args) => {
173
+ if (args.value.type === 'thing') {
174
+ return 'tilil';
175
+ }
176
+ else {
177
+ return 'bl1221';
178
+ }
179
+ });
180
+ t.is(r.errors.length, 0);
181
+ t.deepEqual(resultCollect(r), [
182
+ { path: ['ref'], value: 'bl1221' },
183
+ { path: ['children'], value: { $value: ['bl1221'] } },
184
+ ]);
185
+ });
186
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ export {};