@based/schema 0.0.6 → 0.0.8

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 (73) hide show
  1. package/dist/deepPartial.d.ts +0 -0
  2. package/dist/deepPartial.js +3 -0
  3. package/dist/deepPartial.js.map +1 -0
  4. package/dist/set/checkDefaultAndValue.d.ts +3 -0
  5. package/dist/set/checkDefaultAndValue.js +33 -0
  6. package/dist/set/checkDefaultAndValue.js.map +1 -0
  7. package/dist/set/collections.js +80 -56
  8. package/dist/set/collections.js.map +1 -1
  9. package/dist/set/enum.d.ts +2 -0
  10. package/dist/set/enum.js +15 -0
  11. package/dist/set/enum.js.map +1 -0
  12. package/dist/set/error.d.ts +4 -1
  13. package/dist/set/error.js +3 -0
  14. package/dist/set/error.js.map +1 -1
  15. package/dist/set/fieldValidator.d.ts +6 -0
  16. package/dist/set/fieldValidator.js +144 -0
  17. package/dist/set/fieldValidator.js.map +1 -0
  18. package/dist/set/handleError.d.ts +1 -0
  19. package/dist/set/handleError.js +9 -0
  20. package/dist/set/handleError.js.map +1 -0
  21. package/dist/set/index.d.ts +1 -1
  22. package/dist/set/index.js +5 -3
  23. package/dist/set/index.js.map +1 -1
  24. package/dist/set/number copy.d.ts +4 -0
  25. package/dist/set/number copy.js +57 -0
  26. package/dist/set/number copy.js.map +1 -0
  27. package/dist/set/number.js +86 -33
  28. package/dist/set/number.js.map +1 -1
  29. package/dist/set/parseDefaultAndValue.d.ts +3 -0
  30. package/dist/set/parseDefaultAndValue.js +33 -0
  31. package/dist/set/parseDefaultAndValue.js.map +1 -0
  32. package/dist/set/references.js +10 -14
  33. package/dist/set/references.js.map +1 -1
  34. package/dist/set/rest copy.d.ts +5 -0
  35. package/dist/set/rest copy.js +53 -0
  36. package/dist/set/rest copy.js.map +1 -0
  37. package/dist/set/rest.js +45 -22
  38. package/dist/set/rest.js.map +1 -1
  39. package/dist/set/string.js +41 -21
  40. package/dist/set/string.js.map +1 -1
  41. package/dist/set/types.d.ts +1 -1
  42. package/dist/setWalker.d.ts +11 -0
  43. package/dist/setWalker.js +189 -0
  44. package/dist/setWalker.js.map +1 -0
  45. package/dist/transformers.d.ts +3 -0
  46. package/dist/transformers.js +18 -0
  47. package/dist/transformers.js.map +1 -0
  48. package/dist/typeWalker.d.ts +3 -0
  49. package/dist/typeWalker.js +18 -0
  50. package/dist/typeWalker.js.map +1 -0
  51. package/dist/validate.d.ts +4 -0
  52. package/dist/validate.js +34 -0
  53. package/dist/validate.js.map +1 -0
  54. package/dist/validateFields.d.ts +4 -0
  55. package/dist/validateFields.js +34 -0
  56. package/dist/validateFields.js.map +1 -0
  57. package/dist/validateSchema copy.d.ts +4 -0
  58. package/dist/validateSchema copy.js +34 -0
  59. package/dist/validateSchema copy.js.map +1 -0
  60. package/package.json +1 -1
  61. package/src/set/collections.ts +111 -88
  62. package/src/set/error.ts +3 -0
  63. package/src/set/index.ts +6 -3
  64. package/src/set/number.ts +109 -37
  65. package/src/set/parseDefaultAndValue.ts +44 -0
  66. package/src/set/references.ts +14 -14
  67. package/src/set/rest.ts +80 -21
  68. package/src/set/string.ts +75 -23
  69. package/src/set/types.ts +3 -2
  70. package/test/setWalker.ts +93 -5
  71. package/dist/parse.d.ts +0 -2
  72. package/dist/parse.js +0 -9
  73. package/dist/parse.js.map +0 -1
File without changes
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=deepPartial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepPartial.js","sourceRoot":"","sources":["../src/deepPartial.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { BasedSchemaFields } from '../types';
2
+ import { Parser } from './types';
3
+ export declare const parseValueAndDefault: Parser<keyof BasedSchemaFields>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseValueAndDefault = void 0;
7
+ const error_1 = require("./error");
8
+ const parsers_1 = __importDefault(require("./parsers"));
9
+ const parseValueAndDefault = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
10
+ let handled = false;
11
+ if (typeof value === 'object') {
12
+ const typeDef = fieldSchema.type ?? ('enum' in fieldSchema ? 'enum' : '');
13
+ const parse = parsers_1.default[typeDef];
14
+ if (value.$value !== undefined) {
15
+ // TODO: for errors handle path a bit smarter...
16
+ parse(path, value.$value, fieldSchema, typeSchema, target, handlers, true);
17
+ handled = true;
18
+ }
19
+ if (value.$default !== undefined) {
20
+ if (value.$value !== undefined) {
21
+ (0, error_1.error)(path, error_1.ParseError.valueAndDefault);
22
+ }
23
+ parse(path, value.$default, fieldSchema, typeSchema, target, handlers, true);
24
+ handled = true;
25
+ }
26
+ }
27
+ if (handled && !noCollect) {
28
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
29
+ }
30
+ return handled;
31
+ };
32
+ exports.parseValueAndDefault = parseValueAndDefault;
33
+ //# sourceMappingURL=checkDefaultAndValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkDefaultAndValue.js","sourceRoot":"","sources":["../../src/set/checkDefaultAndValue.ts"],"names":[],"mappings":";;;;;;AAEA,mCAA2C;AAC3C,wDAA+B;AAExB,MAAM,oBAAoB,GAAoC,KAAK,EACxE,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACS,EAAE;IACpB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,iBAAO,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;YAC9B,gDAAgD;YAChD,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC1E,OAAO,GAAG,IAAI,CAAA;SACf;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;YAChC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC9B,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;YACD,KAAK,CACH,IAAI,EACJ,KAAK,CAAC,QAAQ,EACd,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CAAA;YACD,OAAO,GAAG,IAAI,CAAA;SACf;KACF;IACD,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE;QACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;KACnE;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAtCY,QAAA,oBAAoB,wBAsChC"}
@@ -3,50 +3,49 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.record = exports.array = exports.object = exports.set = void 0;
4
4
  const error_1 = require("./error");
5
5
  const _1 = require(".");
6
- const set = async (path, value, fieldSchema, typeSchema, target, handlers) => {
6
+ const set = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
7
7
  const q = [];
8
8
  const fieldDef = fieldSchema.items;
9
9
  if (Array.isArray(value)) {
10
- const handlerNest = {
11
- ...handlers,
12
- collect: ({ value }) => {
13
- parsedArray.push(value);
14
- },
15
- };
16
10
  const parsedArray = [];
17
11
  for (let i = 0; i < value.length; i++) {
18
- q.push((0, _1.fieldWalker)([...path, i], value[i], fieldDef, typeSchema, target, handlerNest));
12
+ q.push((0, _1.fieldWalker)([...path, i], value[i], fieldDef, typeSchema, target, {
13
+ ...handlers,
14
+ collect: ({ value }) => {
15
+ parsedArray.push(value);
16
+ },
17
+ }));
19
18
  }
20
19
  await Promise.all(q);
21
- handlers.collect({
22
- path,
23
- value: { $value: parsedArray },
24
- typeSchema,
25
- fieldSchema,
26
- target,
27
- });
20
+ if (!noCollect) {
21
+ handlers.collect({
22
+ path,
23
+ value: { $value: parsedArray },
24
+ typeSchema,
25
+ fieldSchema,
26
+ target,
27
+ });
28
+ }
28
29
  }
29
30
  else {
30
- const handlerNest = {
31
- ...handlers,
32
- collect: () => { },
33
- };
34
31
  if (value.$add) {
35
32
  for (let i = 0; i < value.$add.length; i++) {
36
- q.push((0, _1.fieldWalker)([...path, '$add', i], value.$add[i], fieldDef, typeSchema, target, handlerNest));
33
+ q.push((0, _1.fieldWalker)(path, value.$add[i], fieldDef, typeSchema, target, handlers, true));
37
34
  }
38
35
  }
39
36
  if (value.$delete) {
40
37
  for (let i = 0; i < value.$add.length; i++) {
41
- q.push((0, _1.fieldWalker)([...path, '$delete', i], value.$delete[i], fieldDef, typeSchema, target, handlerNest));
38
+ q.push((0, _1.fieldWalker)(path, value.$delete[i], fieldDef, typeSchema, target, handlers, true));
42
39
  }
43
40
  }
44
41
  await Promise.all(q);
45
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
42
+ if (!noCollect) {
43
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
44
+ }
46
45
  }
47
46
  };
48
47
  exports.set = set;
49
- const object = async (path, value, fieldSchema, typeSchema, target, handlers) => {
48
+ const object = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
50
49
  if (typeof value !== 'object') {
51
50
  (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
52
51
  }
@@ -60,68 +59,93 @@ const object = async (path, value, fieldSchema, typeSchema, target, handlers) =>
60
59
  if (!propDef) {
61
60
  (0, error_1.error)([...path, key], error_1.ParseError.fieldDoesNotExist);
62
61
  }
63
- q.push((0, _1.fieldWalker)([...path, key], value[key], propDef, typeSchema, target, handlers));
62
+ q.push((0, _1.fieldWalker)([...path, key], value[key], propDef, typeSchema, target, handlers, noCollect));
64
63
  }
65
64
  await Promise.all(q);
66
65
  };
67
66
  exports.object = object;
68
- const array = async (path, value, fieldSchema, typeSchema, target, handlers) => {
67
+ // unshift // only allow 1 command
68
+ const array = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
69
69
  const isArray = Array.isArray(value);
70
+ let parsedValue = value;
71
+ let opCount = 0;
70
72
  if (typeof value === 'object' && !isArray) {
71
73
  if (value.$insert) {
74
+ opCount++;
72
75
  if (typeof value.$insert !== 'object' ||
73
76
  value.$insert.$idx === undefined) {
74
- (0, error_1.error)([...path, '$insert'], error_1.ParseError.incorrectFormat);
77
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
75
78
  }
76
79
  else {
77
- const nestedHandler = {
78
- ...handlers,
79
- collect: () => { },
80
- };
80
+ const insert = Array.isArray(value.$insert.$value)
81
+ ? value.$insert.$value
82
+ : [value.$insert.$value];
81
83
  const q = [];
82
- if (Array.isArray(value.$insert.$value)) {
83
- for (let i = 0; i < value.$insert.$value.length; i++) {
84
- q.push((0, _1.fieldWalker)([...path, 'insert', i], value.$insert.$value[i], fieldSchema.values, typeSchema, target, nestedHandler));
85
- }
86
- }
87
- else {
88
- q.push((0, _1.fieldWalker)([...path, '$insert'], value.$insert.$value, fieldSchema.values, typeSchema, target, nestedHandler));
84
+ for (let i = 0; i < insert.length; i++) {
85
+ q.push((0, _1.fieldWalker)(path, insert[i], fieldSchema.values, typeSchema, target, handlers, true));
89
86
  }
90
87
  await Promise.all(q);
91
88
  }
92
89
  }
93
- if (value.$remove && value.$remove.$idx === undefined) {
94
- (0, error_1.error)([...path, '$remove'], error_1.ParseError.incorrectFormat);
90
+ if (value.$remove) {
91
+ opCount++;
92
+ if (opCount > 1) {
93
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
94
+ }
95
+ if (value.$remove.$idx === undefined) {
96
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
97
+ }
95
98
  }
96
99
  if (value.$push) {
100
+ opCount++;
101
+ if (opCount > 1) {
102
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
103
+ }
97
104
  const q = [];
98
- const nestedHandler = {
99
- ...handlers,
100
- collect: () => { },
101
- };
102
- if (Array.isArray(value.$push)) {
103
- for (let i = 0; i < value.$push.length; i++) {
104
- q.push((0, _1.fieldWalker)([...path, i], value.$push[i], fieldSchema.values, typeSchema, target, nestedHandler));
105
- }
105
+ const push = Array.isArray(value.$push) ? value.$push : [value.$push];
106
+ for (let i = 0; i < push.length; i++) {
107
+ q.push((0, _1.fieldWalker)(path, push[i], fieldSchema.values, typeSchema, target, handlers, true));
106
108
  }
107
- else {
108
- q.push((0, _1.fieldWalker)([...path, '$push'], value.$push, fieldSchema.values, typeSchema, target, nestedHandler));
109
+ await Promise.all(q);
110
+ parsedValue = { $push: push };
111
+ }
112
+ if (value.$unshift) {
113
+ opCount++;
114
+ if (opCount > 1) {
115
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
116
+ }
117
+ const q = [];
118
+ const unshift = Array.isArray(value.$unshift)
119
+ ? value.$unshift
120
+ : [value.$unshift];
121
+ for (let i = 0; i < unshift.length; i++) {
122
+ q.push((0, _1.fieldWalker)(path, unshift[i], fieldSchema.values, typeSchema, target, handlers, true));
109
123
  }
110
124
  await Promise.all(q);
125
+ parsedValue = { $unshift: unshift };
111
126
  }
112
127
  if (value.$assign) {
128
+ opCount++;
129
+ if (opCount > 1) {
130
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
131
+ }
113
132
  if (typeof value.$assign !== 'object' ||
114
133
  value.$assign.$idx === undefined) {
115
- (0, error_1.error)([...path, '$assign'], error_1.ParseError.incorrectFormat);
134
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
116
135
  }
117
136
  else {
118
- await (0, _1.fieldWalker)([...path, '$assign', '$value'], value.$assign.$value, fieldSchema.values, typeSchema, target, {
119
- ...handlers,
120
- collect: () => { },
121
- });
137
+ await (0, _1.fieldWalker)(path, value.$assign.$value, fieldSchema.values, typeSchema, target, handlers, true);
122
138
  }
123
139
  }
124
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
140
+ if (!noCollect) {
141
+ handlers.collect({
142
+ path,
143
+ value: parsedValue,
144
+ typeSchema,
145
+ fieldSchema,
146
+ target,
147
+ });
148
+ }
125
149
  return;
126
150
  }
127
151
  if (!isArray) {
@@ -129,7 +153,7 @@ const array = async (path, value, fieldSchema, typeSchema, target, handlers) =>
129
153
  }
130
154
  const q = [];
131
155
  for (let i = 0; i < value.length; i++) {
132
- q.push((0, _1.fieldWalker)([...path, i], value[i], fieldSchema.values, typeSchema, target, handlers));
156
+ q.push((0, _1.fieldWalker)([...path, i], value[i], fieldSchema.values, typeSchema, target, handlers, noCollect));
133
157
  }
134
158
  await Promise.all(q);
135
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/set/collections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/set/collections.ts"],"names":[],"mappings":";;;AACA,mCAA2C;AAC3C,wBAA+B;AAExB,MAAM,GAAG,GAAkB,KAAK,EACrC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE;IACF,MAAM,CAAC,GAAoB,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,WAAW,GAAG,EAAE,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;gBAChE,GAAG,QAAQ;gBACX,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;oBACrB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzB,CAAC;aACF,CAAC,CACH,CAAA;SACF;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,SAAS,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC;gBACf,IAAI;gBACJ,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;gBAC9B,UAAU;gBACV,WAAW;gBACX,MAAM;aACP,CAAC,CAAA;SACH;KACF;SAAM;QACL,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACb,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;SACF;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAChB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;SACF;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,SAAS,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;SACnE;KACF;AACH,CAAC,CAAA;AArEY,QAAA,GAAG,OAqEf;AAEM,MAAM,MAAM,GAAqB,KAAK,EAC3C,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE;IACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;KACxC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,OAAO,EAAE;QACX,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;KACxC;IACD,MAAM,CAAC,GAAoB,EAAE,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE;YACZ,IAAA,aAAK,EAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,kBAAU,CAAC,iBAAiB,CAAC,CAAA;SACpD;QACD,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EACd,KAAK,CAAC,GAAG,CAAC,EACV,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CACF,CAAA;KACF;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC,CAAA;AAnCY,QAAA,MAAM,UAmClB;AAED,kCAAkC;AAC3B,MAAM,KAAK,GAAoB,KAAK,EACzC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE;QACzC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAA;YACT,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACjC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAChC;gBACA,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;iBAAM;gBACL,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAChD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;oBACtB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC1B,MAAM,CAAC,GAAoB,EAAE,CAAA;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,MAAM,CAAC,CAAC,CAAC,EACT,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;iBACF;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;aACrB;SACF;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBACpC,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;SACF;QACD,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YAED,MAAM,CAAC,GAAoB,EAAE,CAAA;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,IAAI,CAAC,CAAC,CAAC,EACP,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;SAC9B;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YAED,MAAM,CAAC,GAAoB,EAAE,CAAA;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC3C,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAChB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,OAAO,CAAC,CAAC,CAAC,EACV,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,WAAW,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;SACpC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YAED,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACjC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAChC;gBACA,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;iBAAM;gBACL,MAAM,IAAA,cAAW,EACf,IAAI,EACJ,KAAK,CAAC,OAAO,CAAC,MAAM,EACpB,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CAAA;aACF;SACF;QAED,IAAI,CAAC,SAAS,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC;gBACf,IAAI;gBACJ,KAAK,EAAE,WAAW;gBAClB,UAAU;gBACV,WAAW;gBACX,MAAM;aACP,CAAC,CAAA;SACH;QACD,OAAM;KACP;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,kBAAkB,CAAC,CAAA;KAC3C;IACD,MAAM,CAAC,GAAoB,EAAE,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EACZ,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CACF,CAAA;KACF;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC,CAAA;AAzJY,QAAA,KAAK,SAyJjB;AAEM,MAAM,MAAM,GAAqB,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAE,CAAC,CAAA;AAAjE,QAAA,MAAM,UAA2D"}
@@ -0,0 +1,2 @@
1
+ export declare const enum {
2
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ () => {
4
+ if ('enum' in fieldSchema) {
5
+ const enumValues = fieldSchema.enum;
6
+ for (let i = 0; i < enumValues.length; i++) {
7
+ if (deepEqual(enumValues[i], value)) {
8
+ collect(path, i, typeSchema, fieldSchema, target);
9
+ return;
10
+ }
11
+ }
12
+ throw createError(path, target.type, 'enum', value);
13
+ }
14
+ };
15
+ //# sourceMappingURL=enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/set/enum.ts"],"names":[],"mappings":";;AAAoB,GAAG,EAAE;IAErB,IAAI,MAAM,IAAI,WAAW,EAAE;QACvB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAA;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gBACnC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;gBACjD,OAAM;aACP;SACF;QACD,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;KACpD;AACP,CAAC,CAAA"}
@@ -5,6 +5,9 @@ export declare enum ParseError {
5
5
  'subceedsMinimum' = 3,
6
6
  'fieldDoesNotExist' = 4,
7
7
  'incorrectFormat' = 5,
8
- 'referenceIsIncorrectType' = 6
8
+ 'referenceIsIncorrectType' = 6,
9
+ 'valueAndDefault' = 7,
10
+ 'defaultNotSupported' = 8,
11
+ 'multipleOperationsNotAllowed' = 9
9
12
  }
10
13
  export declare const error: (path: (number | string)[], error: ParseError, type?: string) => never;
package/dist/set/error.js CHANGED
@@ -10,6 +10,9 @@ var ParseError;
10
10
  ParseError[ParseError["fieldDoesNotExist"] = 4] = "fieldDoesNotExist";
11
11
  ParseError[ParseError["incorrectFormat"] = 5] = "incorrectFormat";
12
12
  ParseError[ParseError["referenceIsIncorrectType"] = 6] = "referenceIsIncorrectType";
13
+ ParseError[ParseError["valueAndDefault"] = 7] = "valueAndDefault";
14
+ ParseError[ParseError["defaultNotSupported"] = 8] = "defaultNotSupported";
15
+ ParseError[ParseError["multipleOperationsNotAllowed"] = 9] = "multipleOperationsNotAllowed";
13
16
  })(ParseError = exports.ParseError || (exports.ParseError = {}));
14
17
  const error = (path, error, type // nice to give as option
15
18
  ) => {
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/set/error.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,uEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;IACjB,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,mFAA0B,CAAA;AAC5B,CAAC,EARW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAQrB;AAEM,MAAM,KAAK,GAAG,CACnB,IAAyB,EACzB,KAAiB,EACjB,IAAa,CAAC,yBAAyB;EACvC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACpE,CAAC,CAAA;AANY,QAAA,KAAK,SAMjB"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/set/error.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAWX;AAXD,WAAY,UAAU;IACpB,uEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;IACjB,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,mFAA0B,CAAA;IAC1B,iEAAiB,CAAA;IACjB,yEAAqB,CAAA;IACrB,2FAA8B,CAAA;AAChC,CAAC,EAXW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAWrB;AAEM,MAAM,KAAK,GAAG,CACnB,IAAyB,EACzB,KAAiB,EACjB,IAAa,CAAC,yBAAyB;EACvC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACpE,CAAC,CAAA;AANY,QAAA,KAAK,SAMjB"}
@@ -0,0 +1,6 @@
1
+ import { BasedSchemaField, BasedSchemaType, BasedSetTarget } from '../types';
2
+ declare const fieldValidator: {
3
+ [key: string]: (path: (string | number)[], value: any, fieldSchema: BasedSchemaField, typeSchema: BasedSchemaType, target: BasedSetTarget, collect: (path: (string | number)[], value: any, // parsed value
4
+ typeSchema: BasedSchemaType, fieldSchema: BasedSchemaField, target: BasedSetTarget) => void) => void;
5
+ };
6
+ export default fieldValidator;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@saulx/utils");
4
+ const handleError_1 = require("./handleError");
5
+ const _1 = require(".");
6
+ const fieldValidator = {
7
+ enum: (path, value, fieldSchema, typeSchema, target, collect) => {
8
+ // @ts-ignore
9
+ const enumValues = fieldSchema.enum;
10
+ for (let i = 0; i < enumValues.length; i++) {
11
+ if ((0, utils_1.deepEqual)(enumValues[i], value)) {
12
+ collect(path, i, typeSchema, fieldSchema, target);
13
+ return;
14
+ }
15
+ }
16
+ throw (0, handleError_1.createError)(path, target.type, 'enum', value);
17
+ },
18
+ array: (path, value, fieldSchema, typeSchema, target, collect) => {
19
+ // TODO: ADD OPERATORS
20
+ const isArray = Array.isArray(value);
21
+ if (!isArray) {
22
+ throw (0, handleError_1.createError)(path, target.type, 'array', value);
23
+ }
24
+ for (let i = 0; i < value.length; i++) {
25
+ (0, _1.fieldWalker)([...path, i], value[i],
26
+ // @ts-ignore
27
+ fieldSchema.values, typeSchema, target, collect);
28
+ }
29
+ },
30
+ object: (path, value, fieldSchema, typeSchema, target, collect) => {
31
+ if (typeof value !== 'object') {
32
+ throw (0, handleError_1.createError)(path, target.type, 'object', value);
33
+ }
34
+ const isArray = Array.isArray(value);
35
+ if (isArray) {
36
+ throw (0, handleError_1.createError)(path, target.type, 'object', value);
37
+ }
38
+ for (const key in value) {
39
+ // @ts-ignore
40
+ const propDef = fieldSchema.properties[key];
41
+ if (!propDef) {
42
+ throw (0, handleError_1.createError)([...path, key], target.type, 'object', value[key], key);
43
+ }
44
+ (0, _1.fieldWalker)([...path, key], value[key], propDef, typeSchema, target, collect);
45
+ }
46
+ },
47
+ set: (path, value, fieldSchema, typeSchema, target, collect) => {
48
+ if (Array.isArray(value)) {
49
+ const parsedArray = [];
50
+ // @ts-ignore
51
+ const fieldDef = fieldSchema.items;
52
+ for (let i = 0; i < value.length; i++) {
53
+ (0, _1.fieldWalker)([...path, i], value[i], fieldDef, typeSchema, target, (path, value) => {
54
+ parsedArray.push(value);
55
+ });
56
+ }
57
+ collect(path, parsedArray, typeSchema, fieldSchema, target);
58
+ }
59
+ else {
60
+ // TODO PARSE IF VALID
61
+ // $add / $remove
62
+ collect(path, value, typeSchema, fieldSchema, target);
63
+ }
64
+ },
65
+ json: (path, value, fieldSchema, typeSchema, target, collect) => {
66
+ try {
67
+ const parsedValue = JSON.stringify(value);
68
+ collect(path, parsedValue, typeSchema, fieldSchema, target);
69
+ }
70
+ catch (err) {
71
+ throw (0, handleError_1.createError)(path, target.type, 'json', value);
72
+ }
73
+ },
74
+ number: (path, value, fieldSchema, typeSchema, target, collect) => {
75
+ if (typeof value !== 'number') {
76
+ throw (0, handleError_1.createError)(path, target.type, 'number', value);
77
+ }
78
+ collect(path, value, typeSchema, fieldSchema, target);
79
+ },
80
+ integer: (path, value, fieldSchema, typeSchema, target, collect) => {
81
+ if (typeof value !== 'number' || value - Math.floor(value) !== 0) {
82
+ throw (0, handleError_1.createError)(path, target.type, 'integer', value);
83
+ }
84
+ collect(path, value, typeSchema, fieldSchema, target);
85
+ },
86
+ string: (path, value, fieldSchema, typeSchema, target, collect) => {
87
+ if (typeof value !== 'string') {
88
+ throw (0, handleError_1.createError)(path, target.type, 'string', value);
89
+ }
90
+ // @ts-ignore
91
+ if (fieldSchema.minLength && value.length < fieldSchema.minLength) {
92
+ throw (0, handleError_1.createError)(path, target.type, 'string', value);
93
+ }
94
+ // @ts-ignore
95
+ if (fieldSchema.maxLength && value.length > fieldSchema.maxLength) {
96
+ throw (0, handleError_1.createError)(path, target.type, 'string', value);
97
+ }
98
+ collect(path, value, typeSchema, fieldSchema, target);
99
+ },
100
+ text: (path, value, fieldSchema, typeSchema, target, collect) => {
101
+ const valueType = typeof value;
102
+ if (target.$language && valueType === 'string') {
103
+ // @ts-ignore
104
+ if (fieldSchema.minLength && value.length < fieldSchema.minLength) {
105
+ throw (0, handleError_1.createError)(path, target.type, 'text', value);
106
+ }
107
+ // @ts-ignore
108
+ if (fieldSchema.maxLength && value.length > fieldSchema.maxLength) {
109
+ throw (0, handleError_1.createError)(path, target.type, 'text', value);
110
+ }
111
+ collect(path, { [target.$language]: value }, typeSchema, fieldSchema, target);
112
+ return;
113
+ }
114
+ if (valueType !== 'object') {
115
+ throw (0, handleError_1.createError)(path, target.type, 'text', value);
116
+ }
117
+ for (const key in value) {
118
+ // @ts-ignore
119
+ if (fieldSchema.minLength && value[key].length < fieldSchema.minLength) {
120
+ throw (0, handleError_1.createError)([...path, key], target.type, 'text', value);
121
+ }
122
+ // @ts-ignore
123
+ if (fieldSchema.maxLength && value[key].length > fieldSchema.maxLength) {
124
+ throw (0, handleError_1.createError)([...path, key], target.type, 'text', value);
125
+ }
126
+ if (typeof value[key] === 'object' && value[key].$delete === true) {
127
+ collect([...path, key], null, typeSchema, fieldSchema, target);
128
+ continue;
129
+ }
130
+ if (typeof value[key] !== 'string') {
131
+ throw (0, handleError_1.createError)([...path, key], target.type, 'text', value);
132
+ }
133
+ collect([...path, key], value[key], typeSchema, fieldSchema, target);
134
+ }
135
+ },
136
+ references: (path, value, fieldSchema, typeSchema, target, collect) => {
137
+ collect(path, value, typeSchema, fieldSchema, target);
138
+ },
139
+ reference: (path, value, fieldSchema, typeSchema, target, collect) => {
140
+ collect(path, value, typeSchema, fieldSchema, target);
141
+ },
142
+ };
143
+ exports.default = fieldValidator;
144
+ //# sourceMappingURL=fieldValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldValidator.js","sourceRoot":"","sources":["../../src/set/fieldValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const createError: (path: (number | string)[], fromType: string, fieldType: string, value: any, fieldDoesNotExist?: string, msg?: string) => Error;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createError = void 0;
4
+ const createError = (path, fromType, fieldType, value, fieldDoesNotExist, msg) => {
5
+ const err = new Error();
6
+ return new Error(`Type: "${fromType}" Field: "${path.join('.')}" is not a valid value for ${fieldType}`);
7
+ };
8
+ exports.createError = createError;
9
+ //# sourceMappingURL=handleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleError.js","sourceRoot":"","sources":["../../src/set/handleError.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CACzB,IAAyB,EACzB,QAAgB,EAChB,SAAiB,EACjB,KAAU,EACV,iBAA0B,EAC1B,GAAY,EACL,EAAE;IACT,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;IACvB,OAAO,IAAI,KAAK,CACd,UAAU,QAAQ,aAAa,IAAI,CAAC,IAAI,CACtC,GAAG,CACJ,8BAA8B,SAAS,EAAE,CAC3C,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,WAAW,eAcvB"}
@@ -1,5 +1,5 @@
1
1
  import { BasedSchemaField, BasedSchemaType, BasedSetHandlers, BasedSchema, BasedSetTarget } from '../types';
2
- export declare const fieldWalker: (path: (string | number)[], value: any, fieldSchema: BasedSchemaField, typeSchema: BasedSchemaType, target: BasedSetTarget, handlers: BasedSetHandlers) => Promise<void>;
2
+ export declare const fieldWalker: (path: (string | number)[], value: any, fieldSchema: BasedSchemaField, typeSchema: BasedSchemaType, target: BasedSetTarget, handlers: BasedSetHandlers, noCollect?: boolean) => Promise<void>;
3
3
  export declare const setWalker: (schema: BasedSchema, value: {
4
4
  [key: string]: any;
5
5
  }, handlers: BasedSetHandlers) => Promise<BasedSetTarget>;
package/dist/set/index.js CHANGED
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.setWalker = exports.fieldWalker = void 0;
7
7
  const error_1 = require("./error");
8
8
  const parsers_1 = __importDefault(require("./parsers"));
9
- const fieldWalker = async (path, value, fieldSchema, typeSchema, target, handlers) => {
9
+ const fieldWalker = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
10
10
  if ('$ref' in fieldSchema) {
11
11
  // TODO: when we have this it has to get it from the schema and redo the parsing with the correct fieldSchema
12
12
  return;
@@ -14,7 +14,9 @@ const fieldWalker = async (path, value, fieldSchema, typeSchema, target, handler
14
14
  const valueType = typeof value;
15
15
  const valueIsObject = value && valueType === 'object';
16
16
  if (valueIsObject && value.$delete === true) {
17
- handlers.collect({ path, value, typeSchema, fieldSchema, target });
17
+ if (!noCollect) {
18
+ handlers.collect({ path, value, typeSchema, fieldSchema, target });
19
+ }
18
20
  return;
19
21
  }
20
22
  const typeDef = fieldSchema.type ?? ('enum' in fieldSchema ? 'enum' : '');
@@ -28,7 +30,7 @@ const fieldWalker = async (path, value, fieldSchema, typeSchema, target, handler
28
30
  }
29
31
  }
30
32
  const parse = parsers_1.default[typeDef];
31
- await parse(path, value, fieldSchema, typeSchema, target, handlers);
33
+ await parse(path, value, fieldSchema, typeSchema, target, handlers, noCollect);
32
34
  return;
33
35
  };
34
36
  exports.fieldWalker = fieldWalker;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/set/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/set/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Parser } from './types';
2
+ export declare const timestamp: Parser<'timestamp'>;
3
+ export declare const number: Parser<'number'>;
4
+ export declare const integer: Parser<'integer'>;