@beseif-solutions/prow-core 0.2.5 → 0.2.6
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.
|
@@ -471,7 +471,23 @@ const recursive_schema = async (field, data, options) => {
|
|
|
471
471
|
calculatedSchema = getOrderedArrayFieldSchema(newField, itemSchemas);
|
|
472
472
|
}
|
|
473
473
|
else {
|
|
474
|
-
|
|
474
|
+
let genericItemSchema;
|
|
475
|
+
if (noArrayField.type === `dict` && noArrayField.items) {
|
|
476
|
+
const items = [];
|
|
477
|
+
if (lodash_1.default.isObject(resolved)) {
|
|
478
|
+
for (const item of noArrayField.items) {
|
|
479
|
+
const recursive = await recursive_schema(item, data, { alter: options.alter && true, relative: relativeKey, context: options.context });
|
|
480
|
+
if (recursive) {
|
|
481
|
+
items.push({ key: item.key, schema: recursive.schema, field: recursive.field });
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
genericItemSchema = getObjectFieldSchema(noArrayField, items);
|
|
486
|
+
noArrayField.items = items.map((i) => i.field);
|
|
487
|
+
}
|
|
488
|
+
else {
|
|
489
|
+
genericItemSchema = getSimpleFieldSchema(noArrayField);
|
|
490
|
+
}
|
|
475
491
|
calculatedSchema = getItemsArrayFieldSchema(newField, [genericItemSchema]);
|
|
476
492
|
}
|
|
477
493
|
}
|
package/package.json
CHANGED
|
@@ -678,7 +678,23 @@ const recursive_schema = async (field: Field, data: Record<string, any>, options
|
|
|
678
678
|
|
|
679
679
|
calculatedSchema = getOrderedArrayFieldSchema(newField, itemSchemas);
|
|
680
680
|
} else {
|
|
681
|
-
|
|
681
|
+
let genericItemSchema: Joi.Schema;
|
|
682
|
+
if (noArrayField.type === `dict` && noArrayField.items) {
|
|
683
|
+
const items: { key: string, schema: Joi.Schema, field: Field }[] = [];
|
|
684
|
+
|
|
685
|
+
if (_.isObject(resolved)) {
|
|
686
|
+
for (const item of noArrayField.items) {
|
|
687
|
+
const recursive = await recursive_schema(item, data, { alter: options.alter && true, relative: relativeKey, context: options.context });
|
|
688
|
+
if (recursive) { items.push({ key: item.key, schema: recursive.schema, field: recursive.field }); }
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
genericItemSchema = getObjectFieldSchema(noArrayField, items);
|
|
693
|
+
noArrayField.items = items.map((i) => i.field);
|
|
694
|
+
} else {
|
|
695
|
+
genericItemSchema = getSimpleFieldSchema(noArrayField);
|
|
696
|
+
}
|
|
697
|
+
|
|
682
698
|
calculatedSchema = getItemsArrayFieldSchema(newField, [genericItemSchema]);
|
|
683
699
|
}
|
|
684
700
|
} else if (newField.type === `dict` && newField.items) {
|