@beseif-solutions/prow-core 0.2.5 → 0.2.7

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
- const genericItemSchema = getSimpleFieldSchema(noArrayField);
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
  }
@@ -20,6 +20,8 @@ const invokeSchema = joi_1.default.object({
20
20
  configuration: joi_1.default.object().required(),
21
21
  }).required(),
22
22
  context: joi_1.default.object({
23
+ organization: joi_1.default.string().required(),
24
+ workspace: joi_1.default.number().required(),
23
25
  environment: joi_1.default.object().required(),
24
26
  localization: joi_1.default.object({
25
27
  locale: joi_1.default.string().required(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beseif-solutions/prow-core",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "description": "Prow core functionalities and classes",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -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
- const genericItemSchema = getSimpleFieldSchema(noArrayField);
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) {
@@ -17,6 +17,8 @@ const invokeSchema = Joi.object({
17
17
  configuration: Joi.object().required(),
18
18
  }).required(),
19
19
  context: Joi.object({
20
+ organization: Joi.string().required(),
21
+ workspace: Joi.number().required(),
20
22
  environment: Joi.object().required(),
21
23
  localization: Joi.object({
22
24
  locale: Joi.string().required(),