@based/schema 1.1.15 → 1.3.0

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 (40) hide show
  1. package/dist/set/fields/string.d.ts.map +1 -1
  2. package/dist/set/fields/string.js +182 -28
  3. package/dist/set/fields/string.js.map +1 -1
  4. package/dist/types.d.ts +2 -0
  5. package/dist/types.d.ts.map +1 -1
  6. package/dist/walker/args.d.ts +1 -0
  7. package/dist/walker/args.d.ts.map +1 -1
  8. package/dist/walker/args.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/set/fields/string.ts +163 -11
  11. package/src/types.ts +71 -67
  12. package/src/walker/args.ts +2 -0
  13. package/test/text.ts +133 -19
  14. package/dist/schema.d.ts +0 -1
  15. package/dist/schema.js +0 -3
  16. package/dist/schema.js.map +0 -1
  17. package/dist/set/collections.d.ts +0 -5
  18. package/dist/set/collections.js +0 -211
  19. package/dist/set/collections.js.map +0 -1
  20. package/dist/set/error.d.ts +0 -14
  21. package/dist/set/error.js +0 -23
  22. package/dist/set/error.js.map +0 -1
  23. package/dist/set/number.d.ts +0 -4
  24. package/dist/set/number.js +0 -110
  25. package/dist/set/number.js.map +0 -1
  26. package/dist/set/parseDefaultAndValue.d.ts +0 -3
  27. package/dist/set/parseDefaultAndValue.js +0 -33
  28. package/dist/set/parseDefaultAndValue.js.map +0 -1
  29. package/dist/set/parsers.d.ts +0 -3
  30. package/dist/set/parsers.js +0 -42
  31. package/dist/set/parsers.js.map +0 -1
  32. package/dist/set/references.d.ts +0 -3
  33. package/dist/set/references.js +0 -77
  34. package/dist/set/references.js.map +0 -1
  35. package/dist/set/rest.d.ts +0 -5
  36. package/dist/set/rest.js +0 -76
  37. package/dist/set/rest.js.map +0 -1
  38. package/dist/set/string.d.ts +0 -3
  39. package/dist/set/string.js +0 -169
  40. package/dist/set/string.js.map +0 -1
package/src/types.ts CHANGED
@@ -64,8 +64,8 @@ export type BasedSchemaContentMediaType =
64
64
 
65
65
  export type BasedSchemaFieldShared = {
66
66
  hooks?:
67
- | { interval?: number; hook: string }
68
- | { interval?: number; hook: string }[]
67
+ | { interval?: number; hook: string }
68
+ | { interval?: number; hook: string }[]
69
69
  type?: BasedSchemaFieldType
70
70
  $id?: string
71
71
  $schema?: string
@@ -85,6 +85,8 @@ export type BasedSchemaFieldShared = {
85
85
  target: BasedSetTarget
86
86
  ) => Promise<boolean>
87
87
  $defs?: { [key: string]: BasedSchemaField }
88
+ // TODO: This is an option. Should be in another place
89
+ $delete?: boolean
88
90
  }
89
91
 
90
92
  // -------------- Primitive ---------------
@@ -95,67 +97,67 @@ export type BasedSchemaStringShared = {
95
97
  contentMediaType?: BasedSchemaContentMediaType // 'image/*'
96
98
  pattern?: BasedSchemaPattern // TODO: does not exist
97
99
  format?:
98
- | 'email'
99
- | 'URL'
100
- | 'MACAddress'
101
- | 'IP'
102
- | 'IPRange'
103
- | 'FQDN'
104
- | 'IBAN'
105
- | 'BIC'
106
- | 'alpha'
107
- | 'alphaLocales'
108
- | 'alphanumeric'
109
- | 'alphanumericLocales'
110
- | 'passportNumber'
111
- | 'port'
112
- | 'lowercase'
113
- | 'uppercase'
114
- | 'ascii'
115
- | 'semVer'
116
- | 'surrogatePair'
117
- | 'IMEI'
118
- | 'hexadecimal'
119
- | 'octal'
120
- | 'hexColor'
121
- | 'rgbColor'
122
- | 'HSL'
123
- | 'ISRC'
124
- | 'MD5'
125
- | 'JWT'
126
- | 'UUID'
127
- | 'luhnNumber'
128
- | 'creditCard'
129
- | 'identityCard'
130
- | 'EAN'
131
- | 'ISIN'
132
- | 'ISBN'
133
- | 'ISSN'
134
- | 'mobilePhone'
135
- | 'mobilePhoneLocales'
136
- | 'postalCode'
137
- | 'postalCodeLocales'
138
- | 'ethereumAddress'
139
- | 'currency'
140
- | 'btcAddress'
141
- | 'ISO6391'
142
- | 'ISO8601'
143
- | 'RFC3339'
144
- | 'ISO31661Alpha2'
145
- | 'ISO31661Alpha3'
146
- | 'ISO4217'
147
- | 'base32'
148
- | 'base58'
149
- | 'base64'
150
- | 'dataURI'
151
- | 'magnetURI'
152
- | 'mimeType'
153
- | 'latLong'
154
- | 'slug'
155
- | 'strongPassword'
156
- | 'taxID'
157
- | 'licensePlate'
158
- | 'VAT'
100
+ | 'email'
101
+ | 'URL'
102
+ | 'MACAddress'
103
+ | 'IP'
104
+ | 'IPRange'
105
+ | 'FQDN'
106
+ | 'IBAN'
107
+ | 'BIC'
108
+ | 'alpha'
109
+ | 'alphaLocales'
110
+ | 'alphanumeric'
111
+ | 'alphanumericLocales'
112
+ | 'passportNumber'
113
+ | 'port'
114
+ | 'lowercase'
115
+ | 'uppercase'
116
+ | 'ascii'
117
+ | 'semVer'
118
+ | 'surrogatePair'
119
+ | 'IMEI'
120
+ | 'hexadecimal'
121
+ | 'octal'
122
+ | 'hexColor'
123
+ | 'rgbColor'
124
+ | 'HSL'
125
+ | 'ISRC'
126
+ | 'MD5'
127
+ | 'JWT'
128
+ | 'UUID'
129
+ | 'luhnNumber'
130
+ | 'creditCard'
131
+ | 'identityCard'
132
+ | 'EAN'
133
+ | 'ISIN'
134
+ | 'ISBN'
135
+ | 'ISSN'
136
+ | 'mobilePhone'
137
+ | 'mobilePhoneLocales'
138
+ | 'postalCode'
139
+ | 'postalCodeLocales'
140
+ | 'ethereumAddress'
141
+ | 'currency'
142
+ | 'btcAddress'
143
+ | 'ISO6391'
144
+ | 'ISO8601'
145
+ | 'RFC3339'
146
+ | 'ISO31661Alpha2'
147
+ | 'ISO31661Alpha3'
148
+ | 'ISO4217'
149
+ | 'base32'
150
+ | 'base58'
151
+ | 'base64'
152
+ | 'dataURI'
153
+ | 'magnetURI'
154
+ | 'mimeType'
155
+ | 'latLong'
156
+ | 'slug'
157
+ | 'strongPassword'
158
+ | 'taxID'
159
+ | 'licensePlate'
160
+ | 'VAT'
159
161
  }
160
162
 
161
163
  export type BasedSchemaFieldString = {
@@ -281,10 +283,10 @@ export type BasedSchemaField =
281
283
  | BasedSchemaFieldReferences
282
284
  | BasedSchemaFieldCardinality
283
285
  | {
284
- type?: BasedSchemaFieldType
285
- isRequired?: boolean // our own
286
- $ref: string // to mimic json schema will just load it in place (so only for setting)
287
- }
286
+ type?: BasedSchemaFieldType
287
+ isRequired?: boolean // our own
288
+ $ref: string // to mimic json schema will just load it in place (so only for setting)
289
+ }
288
290
 
289
291
  export type BasedSchemaFields = {
290
292
  enum: BasedSchemaFieldEnum
@@ -314,6 +316,8 @@ export type BasedSchemaType = {
314
316
  examples?: any[]
315
317
  required?: string[]
316
318
  $defs?: { [key: string]: BasedSchemaField }
319
+ // TODO: This is an option. Should be in another place
320
+ $delete?: boolean
317
321
  }
318
322
 
319
323
  // this is the return value,, optional for insert
@@ -24,6 +24,8 @@ export class ArgsClass<
24
24
 
25
25
  _target: T
26
26
 
27
+ _stopObject?: boolean
28
+
27
29
  _schema: BasedSchema
28
30
 
29
31
  parseTopLevel?: boolean
package/test/text.ts CHANGED
@@ -39,7 +39,6 @@ test('throw error no language', async (t) => {
39
39
  $id: 'bl120',
40
40
  text: { $value: 'x' },
41
41
  })
42
-
43
42
  t.true(r.errors.length > 0)
44
43
  })
45
44
 
@@ -48,17 +47,56 @@ test('simple case', async (t) => {
48
47
  $id: 'bl120',
49
48
  text: { en: 'flap' },
50
49
  })
51
- t.deepEqual(resultCollect(r), [{ path: ['text'], value: { en: 'flap' } }])
50
+ t.deepEqual(resultCollect(r), [
51
+ { path: ['text', 'en'], value: 'flap' },
52
+ { path: ['text'], value: { en: 'flap' } },
53
+ ])
54
+ })
55
+
56
+ test('simple case $value', async (t) => {
57
+ let r = await setWalker(schema, {
58
+ $id: 'bl120',
59
+ text: { en: { $value: 'flap' } },
60
+ })
61
+ t.deepEqual(resultCollect(r), [
62
+ { path: ['text', 'en'], value: 'flap' },
63
+ { path: ['text'], value: { en: { $value: 'flap' } } },
64
+ ])
65
+ })
66
+
67
+ test('simple case $language', async (t) => {
68
+ let r = await setWalker(schema, {
69
+ $id: 'bl120',
70
+ $language: 'en',
71
+ text: 'flap',
72
+ })
73
+ t.deepEqual(resultCollect(r), [
74
+ { path: ['text', 'en'], value: 'flap' },
75
+ { path: ['text'], value: { en: 'flap' } },
76
+ ])
52
77
  })
53
78
 
54
79
  test('simple case with value', async (t) => {
55
80
  r = await setWalker(schema, {
56
81
  $id: 'bl120',
57
82
  $language: 'za',
58
- text: { $value: 'sdsdds' },
83
+ text: { $value: 'flap' },
84
+ })
85
+ t.deepEqual(resultCollect(r), [
86
+ { path: ['text', 'za'], value: 'flap' },
87
+ { path: ['text'], value: { $value: 'flap' } },
88
+ ])
89
+ })
90
+
91
+ test('simple case $value /w obj', async (t) => {
92
+ let r = await setWalker(schema, {
93
+ $id: 'bl120',
94
+ text: { $value: { en: 'flap' } },
59
95
  })
60
- t.deepEqual(resultCollect(r), [{ path: ['text'], value: { za: 'sdsdds' } }])
61
- t.true(true)
96
+ t.deepEqual(resultCollect(r), [
97
+ { path: ['text', 'en'], value: 'flap' },
98
+ { path: ['text'], value: { $value: { en: 'flap' } } },
99
+ ])
62
100
  })
63
101
 
64
102
  test('text default', async (t) => {
@@ -67,9 +105,9 @@ test('text default', async (t) => {
67
105
  $language: 'za',
68
106
  text: { $default: 'sdsdds' },
69
107
  })
70
-
71
108
  t.deepEqual(resultCollect(r), [
72
- { path: ['text'], value: { $default: { za: 'sdsdds' } } },
109
+ { path: ['text', 'za'], value: { $default: 'sdsdds' } },
110
+ { path: ['text'], value: { $default: 'sdsdds' } },
73
111
  ])
74
112
  })
75
113
 
@@ -81,9 +119,11 @@ test('default and lang:default', async (t) => {
81
119
  })
82
120
 
83
121
  t.deepEqual(resultCollect(r), [
122
+ { path: ['text', 'za'], value: { $default: 'sdsdds' } },
123
+ { path: ['text', 'en'], value: { $default: 'flapflap' } },
84
124
  {
85
125
  path: ['text'],
86
- value: { $default: { za: 'sdsdds', en: 'flapflap' } },
126
+ value: { $default: 'sdsdds', en: { $default: 'flapflap' } },
87
127
  },
88
128
  ])
89
129
  })
@@ -94,11 +134,12 @@ test('default: lang, lang', async (t) => {
94
134
  $language: 'za',
95
135
  text: { $default: { de: 'dsnfds' }, en: { $default: 'flapflap' } },
96
136
  })
97
-
98
137
  t.deepEqual(resultCollect(r), [
138
+ { path: ['text', 'de'], value: { $default: 'dsnfds' } },
139
+ { path: ['text', 'en'], value: { $default: 'flapflap' } },
99
140
  {
100
141
  path: ['text'],
101
- value: { $default: { de: 'dsnfds', en: 'flapflap' } },
142
+ value: { $default: { de: 'dsnfds' }, en: { $default: 'flapflap' } },
102
143
  },
103
144
  ])
104
145
  })
@@ -113,11 +154,17 @@ test('defaullt:lang, lang, lang:default', async (t) => {
113
154
  en: { $default: 'flapflap' },
114
155
  },
115
156
  })
116
-
117
157
  t.deepEqual(resultCollect(r), [
158
+ { path: ['text', 'de'], value: { $default: 'dsnfds' } },
159
+ { path: ['text', 'nl'], value: 'flapperonus' },
160
+ { path: ['text', 'en'], value: { $default: 'flapflap' } },
118
161
  {
119
162
  path: ['text'],
120
- value: { $default: { de: 'dsnfds', en: 'flapflap' }, nl: 'flapperonus' },
163
+ value: {
164
+ $default: { de: 'dsnfds' },
165
+ nl: 'flapperonus',
166
+ en: { $default: 'flapflap' },
167
+ },
121
168
  },
122
169
  ])
123
170
  })
@@ -135,12 +182,17 @@ test('default:lang, lang, lang:value, lang:default', async (t) => {
135
182
  })
136
183
 
137
184
  t.deepEqual(resultCollect(r), [
185
+ { path: ['text', 'de'], value: { $default: 'dsnfds' } },
186
+ { path: ['text', 'nl'], value: 'flapperonus' },
187
+ { path: ['text', 'ro'], value: 'durp' },
188
+ { path: ['text', 'en'], value: { $default: 'flapflap' } },
138
189
  {
139
190
  path: ['text'],
140
191
  value: {
141
- $default: { de: 'dsnfds', en: 'flapflap' },
192
+ $default: { de: 'dsnfds' },
142
193
  nl: 'flapperonus',
143
- ro: 'durp',
194
+ ro: { $value: 'durp' },
195
+ en: { $default: 'flapflap' },
144
196
  },
145
197
  },
146
198
  ])
@@ -162,13 +214,21 @@ test('value:lang, lang, default:lang, lang:value, lang:default', async (t) => {
162
214
  })
163
215
 
164
216
  t.deepEqual(resultCollect(r), [
217
+ { path: ['text', 'za'], value: 'durp' },
218
+ { path: ['text', 'nl'], value: 'flapperonus' },
219
+ { path: ['text', 'ae'], value: { $default: 'habibi' } },
220
+ { path: ['text', 'ro'], value: 'durp' },
221
+ { path: ['text', 'en'], value: { $default: 'flapflap' } },
165
222
  {
166
223
  path: ['text'],
167
224
  value: {
225
+ $value: 'durp',
168
226
  nl: 'flapperonus',
169
- za: 'durp',
170
- $default: { ae: 'habibi', en: 'flapflap' },
171
- ro: 'durp',
227
+ $default: {
228
+ ae: 'habibi',
229
+ },
230
+ ro: { $value: 'durp' },
231
+ en: { $default: 'flapflap' },
172
232
  },
173
233
  },
174
234
  ])
@@ -198,10 +258,31 @@ test('text delete', async (t) => {
198
258
  $delete: true,
199
259
  },
200
260
  })
201
-
202
261
  t.deepEqual(resultCollect(r), [{ path: ['text'], value: { $delete: true } }])
203
262
  })
204
263
 
264
+ test('text delete single language', async (t) => {
265
+ r = await setWalker(schema, {
266
+ $id: 'bl120',
267
+ text: {
268
+ en: {
269
+ $delete: true,
270
+ },
271
+ },
272
+ })
273
+ t.deepEqual(resultCollect(r), [
274
+ { path: ['text', 'en'], value: { $delete: true } },
275
+ {
276
+ path: ['text'],
277
+ value: {
278
+ en: {
279
+ $delete: true,
280
+ },
281
+ },
282
+ },
283
+ ])
284
+ })
285
+
205
286
  test('just delete', async (t) => {
206
287
  r = await setWalker(schema, {
207
288
  $id: 'bl120',
@@ -221,6 +302,39 @@ test('$default in collected path', async (t) => {
221
302
  })
222
303
  t.is(r.errors.length, 0)
223
304
  t.deepEqual(resultCollect(r), [
224
- { path: ['text'], value: { $default: { en: 'title' } } },
305
+ { path: ['text', 'en'], value: { $default: 'title' } },
306
+ {
307
+ path: ['text'],
308
+ value: {
309
+ en: {
310
+ $default: 'title',
311
+ },
312
+ },
313
+ },
314
+ ])
315
+ })
316
+
317
+ test('$default in collected path + $merge:false', async (t) => {
318
+ r = await setWalker(schema, {
319
+ $id: 'bl120',
320
+ text: {
321
+ $merge: false,
322
+ en: {
323
+ $default: 'title',
324
+ },
325
+ },
326
+ })
327
+ t.is(r.errors.length, 0)
328
+ t.deepEqual(resultCollect(r), [
329
+ { path: ['text', 'en'], value: { $default: 'title' } },
330
+ {
331
+ path: ['text'],
332
+ value: {
333
+ $merge: false,
334
+ en: {
335
+ $default: 'title',
336
+ },
337
+ },
338
+ },
225
339
  ])
226
340
  })
package/dist/schema.d.ts DELETED
@@ -1 +0,0 @@
1
- export type Schema = {};
package/dist/schema.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { Parser } from './types';
2
- export declare const set: Parser<'set'>;
3
- export declare const object: Parser<'object'>;
4
- export declare const array: Parser<'array'>;
5
- export declare const record: Parser<'record'>;
@@ -1,211 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.record = exports.array = exports.object = exports.set = void 0;
4
- const error_1 = require("./error");
5
- const _1 = require(".");
6
- const set = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
7
- if (value && typeof value === 'object' && value.$value) {
8
- value = value.$value;
9
- }
10
- const q = [];
11
- const fieldDef = fieldSchema.items;
12
- if (Array.isArray(value)) {
13
- const parsedArray = [];
14
- for (let i = 0; i < value.length; i++) {
15
- q.push((0, _1.fieldWalker)([...path, i], value[i], fieldDef, typeSchema, target, {
16
- ...handlers,
17
- collect: ({ value }) => {
18
- parsedArray.push(value);
19
- },
20
- }));
21
- }
22
- await Promise.all(q);
23
- if (!noCollect) {
24
- handlers.collect({
25
- path,
26
- value: { $value: parsedArray },
27
- typeSchema,
28
- fieldSchema,
29
- target,
30
- });
31
- }
32
- }
33
- else {
34
- if (value.$add) {
35
- for (let i = 0; i < value.$add.length; i++) {
36
- q.push((0, _1.fieldWalker)(path, value.$add[i], fieldDef, typeSchema, target, handlers, true));
37
- }
38
- }
39
- if (value.$remove) {
40
- for (let i = 0; i < value.$remove.length; i++) {
41
- q.push((0, _1.fieldWalker)(path, value.$remove[i], fieldDef, typeSchema, target, handlers, true));
42
- }
43
- }
44
- await Promise.all(q);
45
- if (!noCollect) {
46
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
47
- }
48
- }
49
- };
50
- exports.set = set;
51
- const object = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
52
- if (typeof value !== 'object') {
53
- (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
54
- }
55
- const isArray = Array.isArray(value);
56
- if (isArray) {
57
- (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
58
- }
59
- const q = [];
60
- for (const key in value) {
61
- const propDef = fieldSchema.properties[key];
62
- if (!propDef) {
63
- (0, error_1.error)([...path, key], error_1.ParseError.fieldDoesNotExist);
64
- }
65
- q.push((0, _1.fieldWalker)([...path, key], value[key], propDef, typeSchema, target, handlers, noCollect));
66
- }
67
- await Promise.all(q);
68
- if (fieldSchema.required) {
69
- for (const req of fieldSchema.required) {
70
- if (!(req in value)) {
71
- target.required.push([...path, req]);
72
- }
73
- }
74
- }
75
- };
76
- exports.object = object;
77
- // IF REQUIRED AND PUSH OR UNSHIFT just throw here scince we dont need to parse at all...
78
- const array = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
79
- let isArray = Array.isArray(value);
80
- let parsedValue = value;
81
- let opCount = 0;
82
- let has$Value = false;
83
- if (typeof parsedValue === 'object' && !isArray) {
84
- if (value.$value) {
85
- opCount++;
86
- has$Value = true;
87
- parsedValue = value.$value;
88
- isArray = Array.isArray(parsedValue);
89
- }
90
- if (value.$insert) {
91
- opCount++;
92
- if (opCount > 1) {
93
- (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
94
- }
95
- if (typeof value.$insert !== 'object' ||
96
- value.$insert.$idx === undefined) {
97
- (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
98
- }
99
- else {
100
- const insert = Array.isArray(value.$insert.$value)
101
- ? value.$insert.$value
102
- : [value.$insert.$value];
103
- const q = [];
104
- for (let i = 0; i < insert.length; i++) {
105
- q.push((0, _1.fieldWalker)(path, insert[i], fieldSchema.values, typeSchema, target, handlers, true));
106
- }
107
- await Promise.all(q);
108
- }
109
- }
110
- if (value.$remove) {
111
- opCount++;
112
- if (opCount > 1) {
113
- (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
114
- }
115
- if (value.$remove.$idx === undefined) {
116
- (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
117
- }
118
- }
119
- if (value.$push) {
120
- opCount++;
121
- if (opCount > 1) {
122
- (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
123
- }
124
- // TODO: FIX PUSH PARSING
125
- const q = [];
126
- const push = Array.isArray(value.$push) ? value.$push : [value.$push];
127
- for (let i = 0; i < push.length; i++) {
128
- q.push((0, _1.fieldWalker)(
129
- // exception
130
- [...path, '$push', i], push[i], fieldSchema.values, typeSchema, target, handlers, true));
131
- }
132
- await Promise.all(q);
133
- parsedValue = { $push: push };
134
- }
135
- if (value.$unshift) {
136
- opCount++;
137
- if (opCount > 1) {
138
- (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
139
- }
140
- const q = [];
141
- const unshift = Array.isArray(value.$unshift)
142
- ? value.$unshift
143
- : [value.$unshift];
144
- // TODO: FIX UNSHIFT PARSING
145
- for (let i = 0; i < unshift.length; i++) {
146
- q.push((0, _1.fieldWalker)(
147
- // exception
148
- [...path, '$unshift', i], unshift[i], fieldSchema.values, typeSchema, target, handlers, true));
149
- }
150
- await Promise.all(q);
151
- parsedValue = { $unshift: unshift };
152
- }
153
- if (value.$assign) {
154
- opCount++;
155
- if (opCount > 1) {
156
- (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
157
- }
158
- if (typeof value.$assign !== 'object' ||
159
- typeof value.$assign.$idx !== 'number') {
160
- (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
161
- }
162
- await (0, _1.fieldWalker)([...path, value.$assign.$idx], value.$assign.$value, fieldSchema.values, typeSchema, target, handlers, noCollect);
163
- return;
164
- }
165
- if (!has$Value && !noCollect) {
166
- handlers.collect({
167
- path,
168
- value: parsedValue,
169
- typeSchema,
170
- fieldSchema,
171
- target,
172
- });
173
- }
174
- if (!has$Value) {
175
- return;
176
- }
177
- }
178
- if (!isArray) {
179
- (0, error_1.error)(path, error_1.ParseError.incorrectFieldType);
180
- }
181
- const q = [];
182
- const collector = [];
183
- const nHandler = noCollect
184
- ? handlers
185
- : {
186
- ...handlers,
187
- collect: (collect) => {
188
- collector.push(collect);
189
- },
190
- };
191
- for (let i = 0; i < parsedValue.length; i++) {
192
- q.push((0, _1.fieldWalker)([...path, i], parsedValue[i], fieldSchema.values, typeSchema, target, nHandler, noCollect));
193
- }
194
- await Promise.all(q);
195
- if (!noCollect) {
196
- handlers.collect({
197
- path,
198
- typeSchema,
199
- fieldSchema,
200
- target,
201
- value: { $delete: true },
202
- });
203
- for (const c of collector) {
204
- handlers.collect(c);
205
- }
206
- }
207
- };
208
- exports.array = array;
209
- const record = async (path, value, fieldSchema) => { };
210
- exports.record = record;
211
- //# sourceMappingURL=collections.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/set/collections.ts"],"names":[],"mappings":"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"}