@datacapy/schema 0.1.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.
- package/LICENSE +29 -0
- package/README.md +113 -0
- package/dist/builder/builder-array.d.ts +11 -0
- package/dist/builder/builder-array.js +35 -0
- package/dist/builder/builder-array.js.map +1 -0
- package/dist/builder/builder-base.d.ts +25 -0
- package/dist/builder/builder-base.js +140 -0
- package/dist/builder/builder-base.js.map +1 -0
- package/dist/builder/builder-boolean.d.ts +5 -0
- package/dist/builder/builder-boolean.js +12 -0
- package/dist/builder/builder-boolean.js.map +1 -0
- package/dist/builder/builder-date.d.ts +5 -0
- package/dist/builder/builder-date.js +12 -0
- package/dist/builder/builder-date.js.map +1 -0
- package/dist/builder/builder-mixed.d.ts +7 -0
- package/dist/builder/builder-mixed.js +16 -0
- package/dist/builder/builder-mixed.js.map +1 -0
- package/dist/builder/builder-number.d.ts +5 -0
- package/dist/builder/builder-number.js +12 -0
- package/dist/builder/builder-number.js.map +1 -0
- package/dist/builder/builder-object.d.ts +17 -0
- package/dist/builder/builder-object.js +47 -0
- package/dist/builder/builder-object.js.map +1 -0
- package/dist/builder/builder-or.d.ts +9 -0
- package/dist/builder/builder-or.js +23 -0
- package/dist/builder/builder-or.js.map +1 -0
- package/dist/builder/builder-schema.d.ts +18 -0
- package/dist/builder/builder-schema.js +68 -0
- package/dist/builder/builder-schema.js.map +1 -0
- package/dist/builder/builder-string.d.ts +17 -0
- package/dist/builder/builder-string.js +106 -0
- package/dist/builder/builder-string.js.map +1 -0
- package/dist/builder/index.d.ts +14 -0
- package/dist/builder/index.js +28 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/schema-builder.d.ts +25 -0
- package/dist/builder/schema-builder.js +46 -0
- package/dist/builder/schema-builder.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -0
- package/dist/encryption/encryption-service.d.ts +4 -0
- package/dist/encryption/encryption-service.js +3 -0
- package/dist/encryption/encryption-service.js.map +1 -0
- package/dist/encryption/index.d.ts +1 -0
- package/dist/encryption/index.js +18 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/filter/filter-abstract.d.ts +9 -0
- package/dist/filter/filter-abstract.js +11 -0
- package/dist/filter/filter-abstract.js.map +1 -0
- package/dist/filter/filter-callback.d.ts +6 -0
- package/dist/filter/filter-callback.js +18 -0
- package/dist/filter/filter-callback.js.map +1 -0
- package/dist/filter/filter-condition.d.ts +8 -0
- package/dist/filter/filter-condition.js +15 -0
- package/dist/filter/filter-condition.js.map +1 -0
- package/dist/filter/filter-default-value.d.ts +10 -0
- package/dist/filter/filter-default-value.js +29 -0
- package/dist/filter/filter-default-value.js.map +1 -0
- package/dist/filter/filter-lowercase.d.ts +6 -0
- package/dist/filter/filter-lowercase.js +17 -0
- package/dist/filter/filter-lowercase.js.map +1 -0
- package/dist/filter/filter-postcode.d.ts +7 -0
- package/dist/filter/filter-postcode.js +30 -0
- package/dist/filter/filter-postcode.js.map +1 -0
- package/dist/filter/filter-prepend-http.d.ts +6 -0
- package/dist/filter/filter-prepend-http.js +17 -0
- package/dist/filter/filter-prepend-http.js.map +1 -0
- package/dist/filter/filter-strip-html.d.ts +13 -0
- package/dist/filter/filter-strip-html.js +96 -0
- package/dist/filter/filter-strip-html.js.map +1 -0
- package/dist/filter/filter-trim.d.ts +6 -0
- package/dist/filter/filter-trim.js +17 -0
- package/dist/filter/filter-trim.js.map +1 -0
- package/dist/filter/filter-uppercase.d.ts +6 -0
- package/dist/filter/filter-uppercase.js +17 -0
- package/dist/filter/filter-uppercase.js.map +1 -0
- package/dist/filter/filter.d.ts +7 -0
- package/dist/filter/filter.js +59 -0
- package/dist/filter/filter.js.map +1 -0
- package/dist/filter/index.d.ts +9 -0
- package/dist/filter/index.js +26 -0
- package/dist/filter/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/inquisitor.d.ts +9 -0
- package/dist/inquisitor.js +44 -0
- package/dist/inquisitor.js.map +1 -0
- package/dist/iterator.d.ts +70 -0
- package/dist/iterator.js +339 -0
- package/dist/iterator.js.map +1 -0
- package/dist/manager.d.ts +30 -0
- package/dist/manager.js +55 -0
- package/dist/manager.js.map +1 -0
- package/dist/processors/field-filter.d.ts +32 -0
- package/dist/processors/field-filter.js +114 -0
- package/dist/processors/field-filter.js.map +1 -0
- package/dist/processors/field-private-filter.d.ts +9 -0
- package/dist/processors/field-private-filter.js +84 -0
- package/dist/processors/field-private-filter.js.map +1 -0
- package/dist/processors/field-type-caster.d.ts +12 -0
- package/dist/processors/field-type-caster.js +89 -0
- package/dist/processors/field-type-caster.js.map +1 -0
- package/dist/processors/field-validator.d.ts +36 -0
- package/dist/processors/field-validator.js +171 -0
- package/dist/processors/field-validator.js.map +1 -0
- package/dist/processors/index.d.ts +5 -0
- package/dist/processors/index.js +22 -0
- package/dist/processors/index.js.map +1 -0
- package/dist/processors/transient-processor.d.ts +23 -0
- package/dist/processors/transient-processor.js +124 -0
- package/dist/processors/transient-processor.js.map +1 -0
- package/dist/schema.d.ts +104 -0
- package/dist/schema.js +400 -0
- package/dist/schema.js.map +1 -0
- package/dist/spec.d.ts +69 -0
- package/dist/spec.js +3 -0
- package/dist/spec.js.map +1 -0
- package/dist/type/PropsOf.d.ts +5 -0
- package/dist/type/PropsOf.js +3 -0
- package/dist/type/PropsOf.js.map +1 -0
- package/dist/type/index.d.ts +1 -0
- package/dist/type/index.js +18 -0
- package/dist/type/index.js.map +1 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -0
- package/dist/utilities/collection.d.ts +10 -0
- package/dist/utilities/collection.js +41 -0
- package/dist/utilities/collection.js.map +1 -0
- package/dist/utilities/index.d.ts +4 -0
- package/dist/utilities/index.js +21 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/object-path-accessor.d.ts +16 -0
- package/dist/utilities/object-path-accessor.js +132 -0
- package/dist/utilities/object-path-accessor.js.map +1 -0
- package/dist/utilities/type-caster.d.ts +10 -0
- package/dist/utilities/type-caster.js +126 -0
- package/dist/utilities/type-caster.js.map +1 -0
- package/dist/utilities/utility.d.ts +8 -0
- package/dist/utilities/utility.js +53 -0
- package/dist/utilities/utility.js.map +1 -0
- package/dist/validator/index.d.ts +12 -0
- package/dist/validator/index.js +29 -0
- package/dist/validator/index.js.map +1 -0
- package/dist/validator/validator-callback.d.ts +6 -0
- package/dist/validator/validator-callback.js +15 -0
- package/dist/validator/validator-callback.js.map +1 -0
- package/dist/validator/validator-email.d.ts +5 -0
- package/dist/validator/validator-email.js +20 -0
- package/dist/validator/validator-email.js.map +1 -0
- package/dist/validator/validator-equality.d.ts +5 -0
- package/dist/validator/validator-equality.js +19 -0
- package/dist/validator/validator-equality.js.map +1 -0
- package/dist/validator/validator-in-array.d.ts +5 -0
- package/dist/validator/validator-in-array.js +17 -0
- package/dist/validator/validator-in-array.js.map +1 -0
- package/dist/validator/validator-interface.d.ts +5 -0
- package/dist/validator/validator-interface.js +3 -0
- package/dist/validator/validator-interface.js.map +1 -0
- package/dist/validator/validator-is-empty.d.ts +5 -0
- package/dist/validator/validator-is-empty.js +37 -0
- package/dist/validator/validator-is-empty.js.map +1 -0
- package/dist/validator/validator-not-empty.d.ts +5 -0
- package/dist/validator/validator-not-empty.js +21 -0
- package/dist/validator/validator-not-empty.js.map +1 -0
- package/dist/validator/validator-not-null.d.ts +5 -0
- package/dist/validator/validator-not-null.js +19 -0
- package/dist/validator/validator-not-null.js.map +1 -0
- package/dist/validator/validator-regex.d.ts +5 -0
- package/dist/validator/validator-regex.js +20 -0
- package/dist/validator/validator-regex.js.map +1 -0
- package/dist/validator/validator-required.d.ts +5 -0
- package/dist/validator/validator-required.js +18 -0
- package/dist/validator/validator-required.js.map +1 -0
- package/dist/validator/validator-value-length.d.ts +5 -0
- package/dist/validator/validator-value-length.js +39 -0
- package/dist/validator/validator-value-length.js.map +1 -0
- package/dist/validator/validator.d.ts +7 -0
- package/dist/validator/validator.js +72 -0
- package/dist/validator/validator.js.map +1 -0
- package/package.json +51 -0
- package/tsconfig.json +26 -0
package/dist/iterator.js
ADDED
|
@@ -0,0 +1,339 @@
|
|
|
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.SchemaIterator = void 0;
|
|
7
|
+
const utility_1 = __importDefault(require("./utilities/utility"));
|
|
8
|
+
const types_1 = __importDefault(require("./types"));
|
|
9
|
+
const type_caster_1 = __importDefault(require("./utilities/type-caster"));
|
|
10
|
+
const schema_1 = __importDefault(require("./schema"));
|
|
11
|
+
class SchemaIterator {
|
|
12
|
+
constructor(spec, config = {}) {
|
|
13
|
+
this.spec = spec;
|
|
14
|
+
this.schemas = {};
|
|
15
|
+
this.addSchemas(config.schemas || {});
|
|
16
|
+
}
|
|
17
|
+
init() {
|
|
18
|
+
if (!this.specNormalised) {
|
|
19
|
+
this.specNormalised = this.normalizeSpec(this.spec);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
getSpec() {
|
|
23
|
+
this.init();
|
|
24
|
+
return this.specNormalised;
|
|
25
|
+
}
|
|
26
|
+
getSpecPath(path) {
|
|
27
|
+
return utility_1.default.getSpec(path, this.getSpec());
|
|
28
|
+
}
|
|
29
|
+
addSchema(schema) {
|
|
30
|
+
if (schema.getName) {
|
|
31
|
+
this.schemas[schema.getName()] = schema;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
throw new Error('Invalid schema');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
addSchemas(schemas) {
|
|
38
|
+
const schemasArray = Array.isArray(schemas)
|
|
39
|
+
? schemas
|
|
40
|
+
: Object.values(schemas);
|
|
41
|
+
schemasArray.forEach((schema) => {
|
|
42
|
+
if (schema instanceof schema_1.default)
|
|
43
|
+
this.addSchema(schema);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
normalizeSpec(spec) {
|
|
47
|
+
if (Array.isArray(spec)) {
|
|
48
|
+
return spec.map((value) => this.normalizeSpec(value));
|
|
49
|
+
}
|
|
50
|
+
if (spec && typeof spec === 'object') {
|
|
51
|
+
if (spec.$schema) {
|
|
52
|
+
const name = spec.$schema;
|
|
53
|
+
if (!this.schemas[name]) {
|
|
54
|
+
throw new Error(`Missing schema reference ${name}`);
|
|
55
|
+
}
|
|
56
|
+
const result = { ...this.schemas[name].getSpec(), ...spec };
|
|
57
|
+
delete result.$schema;
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
return Object.fromEntries(Object.entries(spec).map(([key, value]) => {
|
|
61
|
+
if ((!utility_1.default.isOperator(key) ||
|
|
62
|
+
key === '$spec' ||
|
|
63
|
+
key === '$or') &&
|
|
64
|
+
(Array.isArray(value) || typeof value === 'object')) {
|
|
65
|
+
return [key, this.normalizeSpec(value)];
|
|
66
|
+
}
|
|
67
|
+
return [key, value];
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
return spec;
|
|
71
|
+
}
|
|
72
|
+
iterate(data, callback, config) {
|
|
73
|
+
this.init();
|
|
74
|
+
const meta = { errors: {}, root: data };
|
|
75
|
+
const spec = Array.isArray(data)
|
|
76
|
+
? { $type: Array, $spec: this.specNormalised }
|
|
77
|
+
: this.specNormalised;
|
|
78
|
+
if (SchemaIterator.specIsTransient(spec) && (config === null || config === void 0 ? void 0 : config.skipTransients))
|
|
79
|
+
return;
|
|
80
|
+
return this.mapField({
|
|
81
|
+
spec,
|
|
82
|
+
specParent: null,
|
|
83
|
+
fieldName: 'root',
|
|
84
|
+
container: { root: data },
|
|
85
|
+
path: '',
|
|
86
|
+
callback,
|
|
87
|
+
config,
|
|
88
|
+
meta,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
iteratePaths(paths, callback, config, meta) {
|
|
92
|
+
this.init();
|
|
93
|
+
const metaObj = meta
|
|
94
|
+
? meta
|
|
95
|
+
: { path: '', errors: {} };
|
|
96
|
+
const objects = Array.isArray(paths) ? paths : [paths];
|
|
97
|
+
objects.forEach((container) => {
|
|
98
|
+
for (const fieldName in container) {
|
|
99
|
+
const spec = utility_1.default.getSpec(fieldName, this.specNormalised);
|
|
100
|
+
this.mapField({
|
|
101
|
+
spec,
|
|
102
|
+
specParent: null,
|
|
103
|
+
fieldName,
|
|
104
|
+
container,
|
|
105
|
+
path: fieldName,
|
|
106
|
+
callback,
|
|
107
|
+
config,
|
|
108
|
+
meta: metaObj,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return paths;
|
|
113
|
+
}
|
|
114
|
+
mapQueryPaths(query, callback, _config) {
|
|
115
|
+
const mapRecursiveQuery = (query) => {
|
|
116
|
+
if (Array.isArray(query)) {
|
|
117
|
+
query.forEach(mapRecursiveQuery);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (typeof query !== 'object' || query === null) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
Object.entries(query).forEach(([fieldName, value]) => {
|
|
124
|
+
if (utility_1.default.isOperator(fieldName)) {
|
|
125
|
+
if (utility_1.default.canValidateQueryOperator(fieldName)) {
|
|
126
|
+
if (Array.isArray(value) && ['$or', '$and'].includes(fieldName)) {
|
|
127
|
+
value.forEach(mapRecursiveQuery);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
mapRecursiveQuery(value);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const isObject = typeof value === 'object' && value !== null;
|
|
136
|
+
const hasOperators = isObject && Object.keys(value).some(utility_1.default.isOperator);
|
|
137
|
+
if (hasOperators) {
|
|
138
|
+
Object.entries(value).forEach(([childFieldName, childValue]) => {
|
|
139
|
+
if (utility_1.default.isOperator(childFieldName) &&
|
|
140
|
+
utility_1.default.canValidateQueryOperator(childFieldName)) {
|
|
141
|
+
if (Array.isArray(childValue)) {
|
|
142
|
+
childValue.forEach((_, index) => callback(fieldName, index, childValue));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
callback(fieldName, childFieldName, value);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
if (Array.isArray(value)) {
|
|
152
|
+
value.forEach((_, index) => callback(fieldName, index, value));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
callback(fieldName, fieldName, query);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
mapRecursiveQuery(query);
|
|
162
|
+
}
|
|
163
|
+
specInheritFrom(parent, child) {
|
|
164
|
+
if (parent &&
|
|
165
|
+
type_caster_1.default.getType(parent) == Object &&
|
|
166
|
+
child &&
|
|
167
|
+
type_caster_1.default.getType(child) == Object) {
|
|
168
|
+
if (child.$strict === undefined)
|
|
169
|
+
child.$strict = parent.$strict;
|
|
170
|
+
if (child.$noCast === undefined)
|
|
171
|
+
child.$noCast = parent.$noCast;
|
|
172
|
+
}
|
|
173
|
+
return child;
|
|
174
|
+
}
|
|
175
|
+
mapRecursive(opts) {
|
|
176
|
+
const { spec, specParent, object, path, callback, config, meta } = opts;
|
|
177
|
+
this.init();
|
|
178
|
+
const currentPath = this.initPath(path);
|
|
179
|
+
if (SchemaIterator.specIsTransient(spec) && config && config.skipTransients)
|
|
180
|
+
return;
|
|
181
|
+
const matchAllSpec = (spec && spec['*']) || undefined;
|
|
182
|
+
let finalSpec = this.specInheritFrom(specParent, (!matchAllSpec && { ...spec }) || spec);
|
|
183
|
+
if (matchAllSpec !== undefined && finalSpec === spec) {
|
|
184
|
+
const { '*': _, ...specWithoutMatchAll } = spec;
|
|
185
|
+
finalSpec = specWithoutMatchAll;
|
|
186
|
+
}
|
|
187
|
+
for (const fieldName in object) {
|
|
188
|
+
if (matchAllSpec !== undefined) {
|
|
189
|
+
let inheritedSpec;
|
|
190
|
+
if (Array.isArray(matchAllSpec)) {
|
|
191
|
+
inheritedSpec = matchAllSpec;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
inheritedSpec = { ...matchAllSpec };
|
|
195
|
+
if ((spec === null || spec === void 0 ? void 0 : spec.$noCast) !== undefined &&
|
|
196
|
+
inheritedSpec.$noCast === undefined) {
|
|
197
|
+
inheritedSpec.$noCast = spec.$noCast;
|
|
198
|
+
}
|
|
199
|
+
if ((spec === null || spec === void 0 ? void 0 : spec.$strict) !== undefined &&
|
|
200
|
+
inheritedSpec.$strict === undefined) {
|
|
201
|
+
inheritedSpec.$strict = spec.$strict;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
finalSpec[fieldName] = inheritedSpec;
|
|
205
|
+
}
|
|
206
|
+
else if (finalSpec === undefined ||
|
|
207
|
+
finalSpec[fieldName] === undefined) {
|
|
208
|
+
finalSpec[fieldName] = undefined;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
for (const fieldName in finalSpec) {
|
|
212
|
+
if (utility_1.default.isOperator(fieldName))
|
|
213
|
+
continue;
|
|
214
|
+
if (fieldName === '*')
|
|
215
|
+
continue;
|
|
216
|
+
const fieldPath = currentPath
|
|
217
|
+
? currentPath + '.' + fieldName
|
|
218
|
+
: '' + fieldName;
|
|
219
|
+
this.mapField({
|
|
220
|
+
spec: finalSpec[fieldName],
|
|
221
|
+
specParent: finalSpec,
|
|
222
|
+
fieldName,
|
|
223
|
+
container: object,
|
|
224
|
+
path: fieldPath,
|
|
225
|
+
callback,
|
|
226
|
+
config,
|
|
227
|
+
meta,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
mapArrayElements(opts) {
|
|
232
|
+
const { spec, specParent, array, path, callback, config, meta } = opts;
|
|
233
|
+
this.init();
|
|
234
|
+
const currentPath = this.initPath(path);
|
|
235
|
+
if (SchemaIterator.specIsTransient(spec) && config && config.skipTransients)
|
|
236
|
+
return;
|
|
237
|
+
array.forEach((_element, fieldName) => {
|
|
238
|
+
this.mapField({
|
|
239
|
+
spec,
|
|
240
|
+
specParent,
|
|
241
|
+
fieldName,
|
|
242
|
+
container: array,
|
|
243
|
+
path: currentPath ? currentPath + '.' + fieldName : '' + fieldName,
|
|
244
|
+
callback,
|
|
245
|
+
config,
|
|
246
|
+
meta,
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
mapField(opts) {
|
|
251
|
+
let { spec, specParent, fieldName, container, path, callback, config, meta, } = opts;
|
|
252
|
+
this.init();
|
|
253
|
+
const currentPath = this.initPath(path);
|
|
254
|
+
if (SchemaIterator.specIsTransient(spec) && config && config.skipTransients)
|
|
255
|
+
return;
|
|
256
|
+
let fieldType = undefined;
|
|
257
|
+
let nullable = false;
|
|
258
|
+
if (spec) {
|
|
259
|
+
fieldType = spec.constructor == String ? spec : type_caster_1.default.getType(spec);
|
|
260
|
+
nullable = !!spec.$nullable;
|
|
261
|
+
}
|
|
262
|
+
if (fieldType == Object && spec.$type !== undefined)
|
|
263
|
+
fieldType = spec.$type;
|
|
264
|
+
if (fieldType && fieldType.constructor == String) {
|
|
265
|
+
fieldType = types_1.default[fieldType];
|
|
266
|
+
}
|
|
267
|
+
let defaultValue = undefined;
|
|
268
|
+
if (fieldType == Object) {
|
|
269
|
+
defaultValue = nullable ? null : {};
|
|
270
|
+
}
|
|
271
|
+
else if (fieldType == Array) {
|
|
272
|
+
defaultValue = [];
|
|
273
|
+
}
|
|
274
|
+
if (container &&
|
|
275
|
+
container[fieldName] === undefined &&
|
|
276
|
+
defaultValue !== undefined) {
|
|
277
|
+
container[fieldName] = defaultValue;
|
|
278
|
+
}
|
|
279
|
+
callback({
|
|
280
|
+
spec,
|
|
281
|
+
specParent,
|
|
282
|
+
fieldName,
|
|
283
|
+
container,
|
|
284
|
+
path: currentPath,
|
|
285
|
+
meta,
|
|
286
|
+
});
|
|
287
|
+
const isNullNullable = defaultValue === null && container && container[fieldName] === null;
|
|
288
|
+
const hasMatchAllWithOr = spec && spec['*'] && spec['*'].$or;
|
|
289
|
+
switch (fieldType) {
|
|
290
|
+
case Object:
|
|
291
|
+
if (!isNullNullable && !spec.$or && !hasMatchAllWithOr) {
|
|
292
|
+
if (spec.$spec !== undefined)
|
|
293
|
+
spec = spec.$spec;
|
|
294
|
+
this.mapRecursive({
|
|
295
|
+
spec,
|
|
296
|
+
specParent,
|
|
297
|
+
object: container ? container[fieldName] : undefined,
|
|
298
|
+
path: currentPath,
|
|
299
|
+
callback,
|
|
300
|
+
config,
|
|
301
|
+
meta,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
break;
|
|
305
|
+
case Array:
|
|
306
|
+
if (!spec.$or && !hasMatchAllWithOr) {
|
|
307
|
+
let arraySpec = undefined;
|
|
308
|
+
if (Array.isArray(spec) && spec[0]) {
|
|
309
|
+
arraySpec = spec[0];
|
|
310
|
+
}
|
|
311
|
+
else if (type_caster_1.default.getType(spec) == Object && spec.$spec) {
|
|
312
|
+
arraySpec = spec.$spec;
|
|
313
|
+
}
|
|
314
|
+
if (container && arraySpec && container[fieldName]) {
|
|
315
|
+
this.mapArrayElements({
|
|
316
|
+
spec: arraySpec,
|
|
317
|
+
specParent,
|
|
318
|
+
array: container[fieldName],
|
|
319
|
+
path: currentPath,
|
|
320
|
+
callback,
|
|
321
|
+
config,
|
|
322
|
+
meta,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
return container ? container[fieldName] : undefined;
|
|
329
|
+
}
|
|
330
|
+
initPath(path) {
|
|
331
|
+
return path !== undefined && path.length ? path : '';
|
|
332
|
+
}
|
|
333
|
+
static specIsTransient(spec) {
|
|
334
|
+
return !!(spec && (spec.$relation != null || spec.$pathRef != null));
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
exports.SchemaIterator = SchemaIterator;
|
|
338
|
+
exports.default = SchemaIterator;
|
|
339
|
+
//# sourceMappingURL=iterator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterator.js","sourceRoot":"","sources":["../src/iterator.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA+C;AAC/C,oDAAiC;AACjC,0EAAgD;AAChD,sDAA6B;AAyB7B,MAAa,cAAc;IAIzB,YACU,IAAgB,EACxB,SAAuB,EAAE;QADjB,SAAI,GAAJ,IAAI,CAAY;QAHlB,YAAO,GAA8B,EAAE,CAAA;QAM7C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,iBAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,OAAkD;QAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACzC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1B,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,MAAM,YAAY,gBAAM;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,aAAa,CAAC,IAAgB;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;gBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAA;gBACrD,CAAC;gBACD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAA;gBAC3D,OAAO,MAAM,CAAC,OAAO,CAAA;gBACrB,OAAO,MAAM,CAAA;YACf,CAAC;YAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACxC,IACE,CAAC,CAAC,iBAAa,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC7B,GAAG,KAAK,OAAO;oBACf,GAAG,KAAK,KAAK,CAAC;oBAChB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EACnD,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;gBACzC,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACrB,CAAC,CAAC,CACH,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,IAAyB,EACzB,QAAgC,EAChC,MAAoC;QAEpC,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,MAAM,IAAI,GAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;YAC9C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;QAEvB,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAA;YAAE,OAAM;QAE1E,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,IAAI;YACJ,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACzB,IAAI,EAAE,EAAE;YACR,QAAQ;YACR,MAAM;YACN,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IAED,YAAY,CACV,KAAU,EACV,QAAgC,EAChC,MAAoC,EACpC,IAAyB;QAEzB,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,MAAM,OAAO,GAAG,IAAI;YAClB,CAAC,CAAC,IAAI;YACN,CAAC,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAyB,CAAA;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEtD,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5B,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,iBAAa,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;gBAClE,IAAI,CAAC,QAAQ,CAAC;oBACZ,IAAI;oBACJ,UAAU,EAAE,IAAI;oBAChB,SAAS;oBACT,SAAS;oBACT,IAAI,EAAE,SAAS;oBACf,QAAQ;oBACR,MAAM;oBACN,IAAI,EAAE,OAAO;iBACd,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,aAAa,CACX,KAAU,EACV,QAAkB,EAClB,OAAqC;QAErC,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;gBAChC,OAAM;YACR,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAM;YACR,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;gBACnD,IAAI,iBAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxC,IAAI,iBAAa,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;wBACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;4BAChE,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;wBAClC,CAAC;6BAAM,CAAC;4BACN,iBAAiB,CAAC,KAAK,CAAC,CAAA;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;oBAC5D,MAAM,YAAY,GAChB,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAa,CAAC,UAAU,CAAC,CAAA;oBAE/D,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,EAAE;4BAC7D,IACE,iBAAa,CAAC,UAAU,CAAC,cAAc,CAAC;gCACxC,iBAAa,CAAC,wBAAwB,CAAC,cAAc,CAAC,EACtD,CAAC;gCACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oCAC9B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC9B,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CACvC,CAAA;gCACH,CAAC;qCAAM,CAAC;oCACN,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;gCAC5C,CAAC;4BACH,CAAC;wBACH,CAAC,CAAC,CAAA;oBACJ,CAAC;yBAAM,CAAC;wBACN,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;wBAChE,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;wBACvC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,eAAe,CAAC,MAAkB,EAAE,KAAiB;QACnD,IACE,MAAM;YACN,qBAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;YACpC,KAAK;YACL,qBAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,EACnC,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;YAC/D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QACjE,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,YAAY,CAAC,IAQZ;QACC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAEvE,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEvC,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc;YACzE,OAAM;QAER,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAA;QAErD,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAClC,UAAU,EACV,CAAC,CAAC,YAAY,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,CACvC,CAAA;QAGD,IAAI,YAAY,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAErD,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,mBAAmB,EAAE,GAAG,IAAW,CAAA;YACtD,SAAS,GAAG,mBAAmB,CAAA;QACjC,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAE/B,IAAI,aAAa,CAAA;gBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,aAAa,GAAG,YAAY,CAAA;gBAC9B,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,EAAE,GAAG,YAAY,EAAE,CAAA;oBACnC,IACE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,SAAS;wBAC3B,aAAa,CAAC,OAAO,KAAK,SAAS,EACnC,CAAC;wBACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;oBACtC,CAAC;oBACD,IACE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,SAAS;wBAC3B,aAAa,CAAC,OAAO,KAAK,SAAS,EACnC,CAAC;wBACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;oBACtC,CAAC;gBACH,CAAC;gBACD,SAAS,CAAC,SAAS,CAAC,GAAG,aAAa,CAAA;YACtC,CAAC;iBAAM,IACL,SAAS,KAAK,SAAS;gBACvB,SAAS,CAAC,SAAS,CAAC,KAAK,SAAS,EAClC,CAAC;gBACD,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;YAClC,CAAC;QACH,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;YAClC,IAAI,iBAAa,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAQ;YAEjD,IAAI,SAAS,KAAK,GAAG;gBAAE,SAAQ;YAC/B,MAAM,SAAS,GAAG,WAAW;gBAC3B,CAAC,CAAC,WAAW,GAAG,GAAG,GAAG,SAAS;gBAC/B,CAAC,CAAC,EAAE,GAAG,SAAS,CAAA;YAClB,IAAI,CAAC,QAAQ,CAAC;gBACZ,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC;gBAC1B,UAAU,EAAE,SAAS;gBACrB,SAAS;gBACT,SAAS,EAAE,MAAM;gBACjB,IAAI,EAAE,SAAS;gBACf,QAAQ;gBACR,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAQhB;QACC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAEtE,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEvC,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc;YACzE,OAAM;QAER,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC;gBACZ,IAAI;gBACJ,UAAU;gBACV,SAAS;gBACT,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS;gBAClE,QAAQ;gBACR,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,IASR;QACC,IAAI,EACF,IAAI,EACJ,UAAU,EACV,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,IAAI,GACL,GAAG,IAAI,CAAA;QAER,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEvC,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc;YACzE,OAAM;QAER,IAAI,SAAS,GAA6B,SAAS,CAAA;QACnD,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACxE,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAC7B,CAAC;QACD,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3E,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC;YACjD,SAAS,GAAG,eAAW,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,YAAY,GAAG,SAAS,CAAA;QAC5B,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,YAAY,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,IACE,SAAS;YACT,SAAS,CAAC,SAAS,CAAC,KAAK,SAAS;YAClC,YAAY,KAAK,SAAS,EAC1B,CAAC;YACD,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAA;QACrC,CAAC;QAED,QAAQ,CAAC;YACP,IAAI;YACJ,UAAU;YACV,SAAS;YACT,SAAS;YACT,IAAI,EAAE,WAAW;YACjB,IAAI;SACL,CAAC,CAAA;QAEF,MAAM,cAAc,GAClB,YAAY,KAAK,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;QAGrE,MAAM,iBAAiB,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;QAE5D,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAEvD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;wBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;oBAC/C,IAAI,CAAC,YAAY,CAAC;wBAChB,IAAI;wBACJ,UAAU;wBACV,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;wBACpD,IAAI,EAAE,WAAW;wBACjB,QAAQ;wBACR,MAAM;wBACN,IAAI;qBACL,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAK;YACP,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAEpC,IAAI,SAAS,GAAG,SAAS,CAAA;oBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;oBACrB,CAAC;yBAAM,IAAI,qBAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC5D,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;oBACxB,CAAC;oBACD,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;wBACnD,IAAI,CAAC,gBAAgB,CAAC;4BACpB,IAAI,EAAE,SAAS;4BACf,UAAU;4BACV,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;4BAC3B,IAAI,EAAE,WAAW;4BACjB,QAAQ;4BACR,MAAM;4BACN,IAAI;yBACL,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAK;QACT,CAAC;QAED,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrD,CAAC;IAED,QAAQ,CAAC,IAAI;QACX,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAgB;QACrC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAA;IACtE,CAAC;CACF;AAjbD,wCAibC;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Schema from './schema';
|
|
2
|
+
export interface SchemaManagerConfig {
|
|
3
|
+
constructors?: {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
} | Array<any>;
|
|
6
|
+
schemas?: {
|
|
7
|
+
[key: string]: Schema;
|
|
8
|
+
} | Array<Schema>;
|
|
9
|
+
}
|
|
10
|
+
export declare class SchemaManager {
|
|
11
|
+
config: SchemaManagerConfig;
|
|
12
|
+
constructors: {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
schemas: {
|
|
16
|
+
[key: string]: Schema;
|
|
17
|
+
};
|
|
18
|
+
constructor(options?: SchemaManagerConfig);
|
|
19
|
+
addConstructor(value: any): void;
|
|
20
|
+
getConstructor(constructorName: any): any;
|
|
21
|
+
addConstructors(constructors: any): void;
|
|
22
|
+
addSchema(schema: any): void;
|
|
23
|
+
addSchemas(schemas: Array<Schema> | {
|
|
24
|
+
[key: string]: Schema;
|
|
25
|
+
}): void;
|
|
26
|
+
getSchema(schemaName: any): Schema;
|
|
27
|
+
init(): Promise<this>;
|
|
28
|
+
initSchemas(): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
export default SchemaManager;
|
package/dist/manager.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaManager = void 0;
|
|
4
|
+
class SchemaManager {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.config = options ? options : {};
|
|
7
|
+
this.config.constructors = this.config.constructors
|
|
8
|
+
? this.config.constructors
|
|
9
|
+
: {};
|
|
10
|
+
this.config.schemas = this.config.schemas ? this.config.schemas : {};
|
|
11
|
+
this.constructors = {};
|
|
12
|
+
if (this.config.constructors)
|
|
13
|
+
this.addConstructors(this.config.constructors);
|
|
14
|
+
this.schemas = {};
|
|
15
|
+
if (this.config.schemas)
|
|
16
|
+
this.addSchemas(this.config.schemas);
|
|
17
|
+
}
|
|
18
|
+
addConstructor(value) {
|
|
19
|
+
this.constructors[value.alias ? value.alias : value.name] = value;
|
|
20
|
+
}
|
|
21
|
+
getConstructor(constructorName) {
|
|
22
|
+
return this.constructors[constructorName]
|
|
23
|
+
? this.constructors[constructorName]
|
|
24
|
+
: null;
|
|
25
|
+
}
|
|
26
|
+
addConstructors(constructors) {
|
|
27
|
+
var constructorsArray = Array.isArray(constructors)
|
|
28
|
+
? constructors
|
|
29
|
+
: Object.values(constructors);
|
|
30
|
+
constructorsArray.forEach((construct) => this.addConstructor(construct));
|
|
31
|
+
}
|
|
32
|
+
addSchema(schema) {
|
|
33
|
+
this.schemas[schema.getName()] = schema;
|
|
34
|
+
}
|
|
35
|
+
addSchemas(schemas) {
|
|
36
|
+
var schemasArray = Array.isArray(schemas) ? schemas : Object.values(schemas);
|
|
37
|
+
schemasArray.forEach((schema) => this.addSchema(schema));
|
|
38
|
+
}
|
|
39
|
+
getSchema(schemaName) {
|
|
40
|
+
return this.schemas[schemaName] ? this.schemas[schemaName] : null;
|
|
41
|
+
}
|
|
42
|
+
async init() {
|
|
43
|
+
await this.initSchemas();
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
async initSchemas() {
|
|
47
|
+
Object.values(this.schemas).forEach((schema) => {
|
|
48
|
+
schema.addSchemas(this.schemas);
|
|
49
|
+
schema.addConstructors(this.constructors);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.SchemaManager = SchemaManager;
|
|
54
|
+
exports.default = SchemaManager;
|
|
55
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import SchemaSpec from '../spec';
|
|
2
|
+
import SchemaConfig from '../config';
|
|
3
|
+
import { SchemaValidationMeta } from '../schema';
|
|
4
|
+
import { SchemaIteratorMeta } from '../iterator';
|
|
5
|
+
import SchemaFieldTypeCaster from './field-type-caster';
|
|
6
|
+
export interface SchemaFieldFilterInterface {
|
|
7
|
+
filterField(opts: {
|
|
8
|
+
spec: SchemaSpec;
|
|
9
|
+
specParent: SchemaSpec;
|
|
10
|
+
fieldName: string | number;
|
|
11
|
+
value: any;
|
|
12
|
+
path: string | number;
|
|
13
|
+
config?: SchemaConfig;
|
|
14
|
+
meta?: SchemaValidationMeta;
|
|
15
|
+
mapperMeta?: SchemaIteratorMeta;
|
|
16
|
+
}): Promise<any>;
|
|
17
|
+
}
|
|
18
|
+
export declare class SchemaFieldFilter implements SchemaFieldFilterInterface {
|
|
19
|
+
private fieldTypeCaster;
|
|
20
|
+
constructor(fieldTypeCaster: SchemaFieldTypeCaster);
|
|
21
|
+
filterField(opts: {
|
|
22
|
+
spec: SchemaSpec;
|
|
23
|
+
specParent: SchemaSpec;
|
|
24
|
+
fieldName: string | number;
|
|
25
|
+
value: any;
|
|
26
|
+
path: string | number;
|
|
27
|
+
config?: SchemaConfig;
|
|
28
|
+
meta?: SchemaValidationMeta;
|
|
29
|
+
mapperMeta?: SchemaIteratorMeta;
|
|
30
|
+
}): Promise<any>;
|
|
31
|
+
}
|
|
32
|
+
export default SchemaFieldFilter;
|
|
@@ -0,0 +1,114 @@
|
|
|
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.SchemaFieldFilter = void 0;
|
|
7
|
+
const filter_1 = __importDefault(require("../filter/filter"));
|
|
8
|
+
const types_1 = __importDefault(require("../types"));
|
|
9
|
+
const id_1 = require("@datacapy/id");
|
|
10
|
+
class SchemaFieldFilter {
|
|
11
|
+
constructor(fieldTypeCaster) {
|
|
12
|
+
this.fieldTypeCaster = fieldTypeCaster;
|
|
13
|
+
}
|
|
14
|
+
async filterField(opts) {
|
|
15
|
+
var { spec, specParent, fieldName, value, path, config, meta, mapperMeta } = opts;
|
|
16
|
+
path = path ? path : fieldName;
|
|
17
|
+
config = config ? config : {};
|
|
18
|
+
meta = meta ? meta : { errors: [] };
|
|
19
|
+
mapperMeta = mapperMeta ? mapperMeta : {};
|
|
20
|
+
if (spec && spec.$or && Array.isArray(spec.$or)) {
|
|
21
|
+
if (spec.$noCast === true) {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
const orSpecs = spec.$or;
|
|
25
|
+
for (const orSpec of orSpecs) {
|
|
26
|
+
const tempMeta = { errors: {} };
|
|
27
|
+
try {
|
|
28
|
+
const testValue = await this.filterField({
|
|
29
|
+
spec: orSpec,
|
|
30
|
+
specParent,
|
|
31
|
+
fieldName: 'testField',
|
|
32
|
+
value,
|
|
33
|
+
path,
|
|
34
|
+
config,
|
|
35
|
+
meta: tempMeta,
|
|
36
|
+
mapperMeta,
|
|
37
|
+
});
|
|
38
|
+
if (Object.keys(tempMeta.errors).length === 0) {
|
|
39
|
+
return testValue;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
const nullable = spec && spec.$nullable ? spec.$nullable : false;
|
|
49
|
+
const filters = spec && spec.$filter ? spec.$filter : {};
|
|
50
|
+
const fieldType = this.fieldTypeCaster.specToFieldType(spec, value);
|
|
51
|
+
let defaultValue = filters.defaultValue;
|
|
52
|
+
if (fieldType == Object) {
|
|
53
|
+
defaultValue = nullable ? null : {};
|
|
54
|
+
}
|
|
55
|
+
else if (fieldType == Array) {
|
|
56
|
+
defaultValue = [];
|
|
57
|
+
}
|
|
58
|
+
else if (fieldName == '_id') {
|
|
59
|
+
if (fieldType == types_1.default.ObjectID) {
|
|
60
|
+
defaultValue = function () {
|
|
61
|
+
return new types_1.default.ObjectID();
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
else if (fieldType == types_1.default.String) {
|
|
65
|
+
defaultValue = id_1.genUniqueId;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (defaultValue !== undefined) {
|
|
69
|
+
value = await filter_1.default.filter(value, { defaultValue });
|
|
70
|
+
}
|
|
71
|
+
if (value != undefined && (spec === null || spec === void 0 ? void 0 : spec.$noCast) !== true) {
|
|
72
|
+
if (fieldType && fieldType != types_1.default.Mixed)
|
|
73
|
+
value = this.fieldTypeCaster.typeCast(fieldType, value, path, meta);
|
|
74
|
+
}
|
|
75
|
+
const matchAllFilterSpec = (spec && spec.$spec && spec.$spec['*']) || (spec && spec['*']);
|
|
76
|
+
if (fieldType === Object &&
|
|
77
|
+
value &&
|
|
78
|
+
typeof value === 'object' &&
|
|
79
|
+
!Array.isArray(value) &&
|
|
80
|
+
matchAllFilterSpec) {
|
|
81
|
+
const inheritedMatchAllSpec = {
|
|
82
|
+
...matchAllFilterSpec,
|
|
83
|
+
...((spec === null || spec === void 0 ? void 0 : spec.$noCast) !== undefined &&
|
|
84
|
+
matchAllFilterSpec.$noCast === undefined && {
|
|
85
|
+
$noCast: spec.$noCast,
|
|
86
|
+
}),
|
|
87
|
+
...((spec === null || spec === void 0 ? void 0 : spec.$strict) !== undefined &&
|
|
88
|
+
matchAllFilterSpec.$strict === undefined && {
|
|
89
|
+
$strict: spec.$strict,
|
|
90
|
+
}),
|
|
91
|
+
};
|
|
92
|
+
for (const propName in value) {
|
|
93
|
+
if (typeof value[propName] === 'function')
|
|
94
|
+
continue;
|
|
95
|
+
const propValue = await this.filterField({
|
|
96
|
+
spec: inheritedMatchAllSpec,
|
|
97
|
+
specParent: spec,
|
|
98
|
+
fieldName: propName,
|
|
99
|
+
value: value[propName],
|
|
100
|
+
path: path ? `${path}.${propName}` : propName,
|
|
101
|
+
config,
|
|
102
|
+
meta,
|
|
103
|
+
mapperMeta,
|
|
104
|
+
});
|
|
105
|
+
value[propName] = propValue;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
value = await filter_1.default.filter(value, filters);
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.SchemaFieldFilter = SchemaFieldFilter;
|
|
113
|
+
exports.default = SchemaFieldFilter;
|
|
114
|
+
//# sourceMappingURL=field-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-filter.js","sourceRoot":"","sources":["../../src/processors/field-filter.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAqC;AACrC,qDAAkC;AAMlC,qCAA0C;AAsC1C,MAAa,iBAAiB;IAG5B,YAAY,eAAsC;QAChD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAeD,KAAK,CAAC,WAAW,CAAC,IASjB;QACC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GACxE,IAAI,CAAA;QAEN,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9B,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7B,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACnC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;QAGzC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAEhD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAA;YAExB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAE7B,MAAM,QAAQ,GAAyB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;gBAErD,IAAI,CAAC;oBAEH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;wBACvC,IAAI,EAAE,MAAM;wBACZ,UAAU;wBACV,SAAS,EAAE,WAAW;wBACtB,KAAK;wBACL,IAAI;wBACJ,MAAM;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU;qBACX,CAAC,CAAA;oBAGF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9C,OAAO,SAAS,CAAA;oBAClB,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBAEX,SAAQ;gBACV,CAAC;YACH,CAAC;YAID,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;QAChE,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAGnE,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACvC,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YAIxB,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QACrC,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,YAAY,GAAG,EAAE,CAAA;QACnB,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,IAAI,SAAS,IAAI,eAAW,CAAC,QAAQ,EAAE,CAAC;gBACtC,YAAY,GAAG;oBACb,OAAO,IAAI,eAAW,CAAC,QAAQ,EAAE,CAAA;gBACnC,CAAC,CAAA;YACH,CAAC;iBAAM,IAAI,SAAS,IAAI,eAAW,CAAC,MAAM,EAAE,CAAC;gBAC3C,YAAY,GAAG,gBAAW,CAAA;YAC5B,CAAC;QACH,CAAC;QAKD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,KAAK,GAAG,MAAM,gBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QACtD,CAAC;QAED,IAAI,KAAK,IAAI,SAAS,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,IAAI,EAAE,CAAC;YAKjD,IAAI,SAAS,IAAI,SAAS,IAAI,eAAW,CAAC,KAAK;gBAC7C,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACvE,CAAC;QAID,MAAM,kBAAkB,GACtB,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEhE,IACE,SAAS,KAAK,MAAM;YACpB,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,kBAAkB,EAClB,CAAC;YAED,MAAM,qBAAqB,GAAG;gBAC5B,GAAG,kBAAkB;gBACrB,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,SAAS;oBAC7B,kBAAkB,CAAC,OAAO,KAAK,SAAS,IAAI;oBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC;gBACJ,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,SAAS;oBAC7B,kBAAkB,CAAC,OAAO,KAAK,SAAS,IAAI;oBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC;aACL,CAAA;YAGD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU;oBAAE,SAAQ;gBAEnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;oBACvC,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,QAAQ;oBACnB,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC;oBACtB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;oBAC7C,MAAM;oBACN,IAAI;oBACJ,UAAU;iBACX,CAAC,CAAA;gBACF,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;YAC7B,CAAC;QACH,CAAC;QAGD,KAAK,GAAG,MAAM,gBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAE3C,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAvKD,8CAuKC;AAED,kBAAe,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SchemaIterator } from '../iterator';
|
|
2
|
+
export interface SchemaFieldPrivateFilterInterface {
|
|
3
|
+
filterPrivate(object: any, iterator: SchemaIterator, mode?: boolean | string, iteratorType?: string): any;
|
|
4
|
+
}
|
|
5
|
+
export declare class SchemaFieldPrivateFilter implements SchemaFieldPrivateFilterInterface {
|
|
6
|
+
filterPrivate(object: any, iterator: SchemaIterator, mode?: boolean | string, iteratorType?: string): any;
|
|
7
|
+
private collectPrivateRefsInOrValue;
|
|
8
|
+
}
|
|
9
|
+
export default SchemaFieldPrivateFilter;
|