@rjsf/utils 5.21.1 → 5.22.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/dist/index.js +201 -62
- package/dist/index.js.map +3 -3
- package/dist/utils.esm.js +201 -62
- package/dist/utils.esm.js.map +2 -2
- package/dist/utils.umd.js +199 -69
- package/lib/ErrorSchemaBuilder.d.ts +3 -3
- package/lib/ErrorSchemaBuilder.js +2 -1
- package/lib/ErrorSchemaBuilder.js.map +1 -1
- package/lib/createSchemaUtils.d.ts +3 -2
- package/lib/createSchemaUtils.js +17 -11
- package/lib/createSchemaUtils.js.map +1 -1
- package/lib/mergeDefaultsWithFormData.d.ts +4 -2
- package/lib/mergeDefaultsWithFormData.js +9 -4
- package/lib/mergeDefaultsWithFormData.js.map +1 -1
- package/lib/schema/getClosestMatchingOption.js +6 -2
- package/lib/schema/getClosestMatchingOption.js.map +1 -1
- package/lib/schema/getDefaultFormState.d.ts +6 -3
- package/lib/schema/getDefaultFormState.js +43 -22
- package/lib/schema/getDefaultFormState.js.map +1 -1
- package/lib/schema/retrieveSchema.d.ts +19 -10
- package/lib/schema/retrieveSchema.js +54 -26
- package/lib/schema/retrieveSchema.js.map +1 -1
- package/lib/schema/toIdSchema.d.ts +3 -2
- package/lib/schema/toIdSchema.js +8 -6
- package/lib/schema/toIdSchema.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types.d.ts +19 -3
- package/package.json +2 -2
- package/src/ErrorSchemaBuilder.ts +6 -5
- package/src/createSchemaUtils.ts +43 -11
- package/src/mergeDefaultsWithFormData.ts +16 -4
- package/src/schema/getClosestMatchingOption.ts +6 -2
- package/src/schema/getDefaultFormState.ts +58 -19
- package/src/schema/retrieveSchema.ts +125 -28
- package/src/schema/toIdSchema.ts +32 -7
- package/src/types.ts +20 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '../types';
|
|
1
|
+
import { Experimental_CustomMergeAllOf, FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '../types';
|
|
2
2
|
/** Retrieves an expanded schema that has had all of its conditions, additional properties, references and dependencies
|
|
3
3
|
* resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData` that is used to do the
|
|
4
4
|
* potentially recursive resolution.
|
|
@@ -7,9 +7,10 @@ import { FormContextType, RJSFSchema, StrictRJSFSchema, ValidatorType } from '..
|
|
|
7
7
|
* @param schema - The schema for which retrieving a schema is desired
|
|
8
8
|
* @param [rootSchema={}] - The root schema that will be forwarded to all the APIs
|
|
9
9
|
* @param [rawFormData] - The current formData, if any, to assist retrieving a schema
|
|
10
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
10
11
|
* @returns - The schema having its conditions, additional properties, references and dependencies resolved
|
|
11
12
|
*/
|
|
12
|
-
export default function retrieveSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema?: S, rawFormData?: T): S;
|
|
13
|
+
export default function retrieveSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema?: S, rawFormData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S;
|
|
13
14
|
/** Resolves a conditional block (if/else/then) by removing the condition and merging the appropriate conditional branch
|
|
14
15
|
* with the rest of the schema. If `expandAllBranches` is true, then the `retrieveSchemaInteral()` results for both
|
|
15
16
|
* conditions will be returned.
|
|
@@ -21,9 +22,10 @@ export default function retrieveSchema<T = any, S extends StrictRJSFSchema = RJS
|
|
|
21
22
|
* dependencies as a list of schemas
|
|
22
23
|
* @param recurseList - The list of recursive references already processed
|
|
23
24
|
* @param [formData] - The current formData to assist retrieving a schema
|
|
25
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
24
26
|
* @returns - A list of schemas with the appropriate conditions resolved, possibly with all branches expanded
|
|
25
27
|
*/
|
|
26
|
-
export declare function resolveCondition<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
28
|
+
export declare function resolveCondition<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
27
29
|
/** Given a list of lists of allOf, anyOf or oneOf values, create a list of lists of all permutations of the values. The
|
|
28
30
|
* `listOfLists` is expected to be all resolved values of the 1st...nth schemas within an `allOf`, `anyOf` or `oneOf`.
|
|
29
31
|
* From those lists, build a matrix for each `xxxOf` where there is more than one schema for a row in the list of lists.
|
|
@@ -50,9 +52,10 @@ export declare function getAllPermutationsOfXxxOf<S extends StrictRJSFSchema = R
|
|
|
50
52
|
* as a list of schemas
|
|
51
53
|
* @param recurseList - The list of recursive references already processed
|
|
52
54
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
55
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
53
56
|
* @returns - The list of schemas having its references, dependencies and allOf schemas resolved
|
|
54
57
|
*/
|
|
55
|
-
export declare function resolveSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
58
|
+
export declare function resolveSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
56
59
|
/** Resolves all references within a schema and then returns the `retrieveSchemaInternal()` if the resolved schema is
|
|
57
60
|
* actually different than the original. Passes the `expandAllBranches` flag down to the `retrieveSchemaInternal()`
|
|
58
61
|
* helper call.
|
|
@@ -64,9 +67,10 @@ export declare function resolveSchema<T = any, S extends StrictRJSFSchema = RJSF
|
|
|
64
67
|
* as a list of schemas
|
|
65
68
|
* @param recurseList - The list of recursive references already processed
|
|
66
69
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
70
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
67
71
|
* @returns - The list schemas retrieved after having all references resolved
|
|
68
72
|
*/
|
|
69
|
-
export declare function resolveReference<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
73
|
+
export declare function resolveReference<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
70
74
|
/** Resolves all references within the schema itself as well as any of its properties and array items.
|
|
71
75
|
*
|
|
72
76
|
* @param schema - The schema for which resolving all references is desired
|
|
@@ -96,10 +100,11 @@ export declare function stubExistingAdditionalProperties<T = any, S extends Stri
|
|
|
96
100
|
* @param [expandAllBranches=false] - Flag, if true, will return all possible branches of conditions, any/oneOf and
|
|
97
101
|
* dependencies as a list of schemas
|
|
98
102
|
* @param [recurseList=[]] - The optional, list of recursive references already processed
|
|
103
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
99
104
|
* @returns - The schema(s) resulting from having its conditions, additional properties, references and dependencies
|
|
100
105
|
* resolved. Multiple schemas may be returned if `expandAllBranches` is true.
|
|
101
106
|
*/
|
|
102
|
-
export declare function retrieveSchemaInternal<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, rawFormData?: T, expandAllBranches?: boolean, recurseList?: string[]): S[];
|
|
107
|
+
export declare function retrieveSchemaInternal<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, rawFormData?: T, expandAllBranches?: boolean, recurseList?: string[], experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
103
108
|
/** Resolves an `anyOf` or `oneOf` within a schema (if present) to the list of schemas returned from
|
|
104
109
|
* `retrieveSchemaInternal()` for the best matching option. If `expandAllBranches` is true, then a list of schemas for ALL
|
|
105
110
|
* options are retrieved and returned.
|
|
@@ -123,9 +128,10 @@ export declare function resolveAnyOrOneOfSchemas<T = any, S extends StrictRJSFSc
|
|
|
123
128
|
* as a list of schemas
|
|
124
129
|
* @param recurseList - The list of recursive references already processed
|
|
125
130
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
131
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
126
132
|
* @returns - The list of schemas with their dependencies resolved
|
|
127
133
|
*/
|
|
128
|
-
export declare function resolveDependencies<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
134
|
+
export declare function resolveDependencies<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
129
135
|
/** Processes all the `dependencies` recursively into the list of `resolvedSchema`s as needed. Passes the
|
|
130
136
|
* `expandAllBranches` flag down to the `withDependentSchema()` and the recursive `processDependencies()` helper calls.
|
|
131
137
|
*
|
|
@@ -137,9 +143,10 @@ export declare function resolveDependencies<T = any, S extends StrictRJSFSchema
|
|
|
137
143
|
* as a list of schemas
|
|
138
144
|
* @param recurseList - The list of recursive references already processed
|
|
139
145
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
146
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
140
147
|
* @returns - The schema with the `dependencies` resolved into it
|
|
141
148
|
*/
|
|
142
|
-
export declare function processDependencies<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, dependencies: S['dependencies'], resolvedSchema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
149
|
+
export declare function processDependencies<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, dependencies: S['dependencies'], resolvedSchema: S, rootSchema: S, expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
143
150
|
/** Updates a schema with additionally required properties added
|
|
144
151
|
*
|
|
145
152
|
* @param schema - The schema for which resolving a dependent properties is desired
|
|
@@ -159,9 +166,10 @@ export declare function withDependentProperties<S extends StrictRJSFSchema = RJS
|
|
|
159
166
|
* as a list of schemas
|
|
160
167
|
* @param recurseList - The list of recursive references already processed
|
|
161
168
|
* @param [formData]- The current formData to assist retrieving a schema
|
|
169
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
162
170
|
* @returns - The list of schemas with the dependent schema resolved into them
|
|
163
171
|
*/
|
|
164
|
-
export declare function withDependentSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, dependencyKey: string, dependencyValue: S, expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
172
|
+
export declare function withDependentSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, dependencyKey: string, dependencyValue: S, expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
165
173
|
/** Returns a list of `schema`s with the best choice from the `oneOf` options merged into it. If `expandAllBranches` is
|
|
166
174
|
* true, then a list of schemas for ALL options are retrieved and returned. Passes the `expandAllBranches` flag down to
|
|
167
175
|
* the `retrieveSchemaInternal()` helper call.
|
|
@@ -175,6 +183,7 @@ export declare function withDependentSchema<T = any, S extends StrictRJSFSchema
|
|
|
175
183
|
* as a list of schemas
|
|
176
184
|
* @param recurseList - The list of recursive references already processed
|
|
177
185
|
* @param [formData] - The current formData to assist retrieving a schema
|
|
186
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
178
187
|
* @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true
|
|
179
188
|
*/
|
|
180
|
-
export declare function withExactlyOneSubschema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, dependencyKey: string, oneOf: S['oneOf'], expandAllBranches: boolean, recurseList: string[], formData?: T): S[];
|
|
189
|
+
export declare function withExactlyOneSubschema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, rootSchema: S, dependencyKey: string, oneOf: S['oneOf'], expandAllBranches: boolean, recurseList: string[], formData?: T, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): S[];
|
|
@@ -22,10 +22,11 @@ import getFirstMatchingOption from './getFirstMatchingOption';
|
|
|
22
22
|
* @param schema - The schema for which retrieving a schema is desired
|
|
23
23
|
* @param [rootSchema={}] - The root schema that will be forwarded to all the APIs
|
|
24
24
|
* @param [rawFormData] - The current formData, if any, to assist retrieving a schema
|
|
25
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
25
26
|
* @returns - The schema having its conditions, additional properties, references and dependencies resolved
|
|
26
27
|
*/
|
|
27
|
-
export default function retrieveSchema(validator, schema, rootSchema = {}, rawFormData) {
|
|
28
|
-
return retrieveSchemaInternal(validator, schema, rootSchema, rawFormData)[0];
|
|
28
|
+
export default function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf) {
|
|
29
|
+
return retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, undefined, undefined, experimental_customMergeAllOf)[0];
|
|
29
30
|
}
|
|
30
31
|
/** Resolves a conditional block (if/else/then) by removing the condition and merging the appropriate conditional branch
|
|
31
32
|
* with the rest of the schema. If `expandAllBranches` is true, then the `retrieveSchemaInteral()` results for both
|
|
@@ -38,31 +39,32 @@ export default function retrieveSchema(validator, schema, rootSchema = {}, rawFo
|
|
|
38
39
|
* dependencies as a list of schemas
|
|
39
40
|
* @param recurseList - The list of recursive references already processed
|
|
40
41
|
* @param [formData] - The current formData to assist retrieving a schema
|
|
42
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
41
43
|
* @returns - A list of schemas with the appropriate conditions resolved, possibly with all branches expanded
|
|
42
44
|
*/
|
|
43
|
-
export function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
45
|
+
export function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
44
46
|
const { if: expression, then, else: otherwise, ...resolvedSchemaLessConditional } = schema;
|
|
45
47
|
const conditionValue = validator.isValid(expression, formData || {}, rootSchema);
|
|
46
48
|
let resolvedSchemas = [resolvedSchemaLessConditional];
|
|
47
49
|
let schemas = [];
|
|
48
50
|
if (expandAllBranches) {
|
|
49
51
|
if (then && typeof then !== 'boolean') {
|
|
50
|
-
schemas = schemas.concat(retrieveSchemaInternal(validator, then, rootSchema, formData, expandAllBranches, recurseList));
|
|
52
|
+
schemas = schemas.concat(retrieveSchemaInternal(validator, then, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));
|
|
51
53
|
}
|
|
52
54
|
if (otherwise && typeof otherwise !== 'boolean') {
|
|
53
|
-
schemas = schemas.concat(retrieveSchemaInternal(validator, otherwise, rootSchema, formData, expandAllBranches, recurseList));
|
|
55
|
+
schemas = schemas.concat(retrieveSchemaInternal(validator, otherwise, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
else {
|
|
57
59
|
const conditionalSchema = conditionValue ? then : otherwise;
|
|
58
60
|
if (conditionalSchema && typeof conditionalSchema !== 'boolean') {
|
|
59
|
-
schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches, recurseList));
|
|
61
|
+
schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
if (schemas.length) {
|
|
63
65
|
resolvedSchemas = schemas.map((s) => mergeSchemas(resolvedSchemaLessConditional, s));
|
|
64
66
|
}
|
|
65
|
-
return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList));
|
|
67
|
+
return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));
|
|
66
68
|
}
|
|
67
69
|
/** Given a list of lists of allOf, anyOf or oneOf values, create a list of lists of all permutations of the values. The
|
|
68
70
|
* `listOfLists` is expected to be all resolved values of the 1st...nth schemas within an `allOf`, `anyOf` or `oneOf`.
|
|
@@ -102,9 +104,10 @@ export function getAllPermutationsOfXxxOf(listOfLists) {
|
|
|
102
104
|
* as a list of schemas
|
|
103
105
|
* @param recurseList - The list of recursive references already processed
|
|
104
106
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
107
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
105
108
|
* @returns - The list of schemas having its references, dependencies and allOf schemas resolved
|
|
106
109
|
*/
|
|
107
|
-
export function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
110
|
+
export function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
108
111
|
const updatedSchemas = resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData);
|
|
109
112
|
if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {
|
|
110
113
|
// return the updatedSchemas array if it has either multiple schemas within it
|
|
@@ -114,11 +117,11 @@ export function resolveSchema(validator, schema, rootSchema, expandAllBranches,
|
|
|
114
117
|
if (DEPENDENCIES_KEY in schema) {
|
|
115
118
|
const resolvedSchemas = resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData);
|
|
116
119
|
return resolvedSchemas.flatMap((s) => {
|
|
117
|
-
return retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList);
|
|
120
|
+
return retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);
|
|
118
121
|
});
|
|
119
122
|
}
|
|
120
123
|
if (ALL_OF_KEY in schema && Array.isArray(schema.allOf)) {
|
|
121
|
-
const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches, recurseList));
|
|
124
|
+
const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));
|
|
122
125
|
const allPermutations = getAllPermutationsOfXxxOf(allOfSchemaElements);
|
|
123
126
|
return allPermutations.map((permutation) => ({ ...schema, allOf: permutation }));
|
|
124
127
|
}
|
|
@@ -136,13 +139,14 @@ export function resolveSchema(validator, schema, rootSchema, expandAllBranches,
|
|
|
136
139
|
* as a list of schemas
|
|
137
140
|
* @param recurseList - The list of recursive references already processed
|
|
138
141
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
142
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
139
143
|
* @returns - The list schemas retrieved after having all references resolved
|
|
140
144
|
*/
|
|
141
|
-
export function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
145
|
+
export function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
142
146
|
const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList);
|
|
143
147
|
if (updatedSchema !== schema) {
|
|
144
148
|
// Only call this if the schema was actually changed by the `resolveAllReferences()` function
|
|
145
|
-
return retrieveSchemaInternal(validator, updatedSchema, rootSchema, formData, expandAllBranches, recurseList);
|
|
149
|
+
return retrieveSchemaInternal(validator, updatedSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);
|
|
146
150
|
}
|
|
147
151
|
return [schema];
|
|
148
152
|
}
|
|
@@ -251,18 +255,20 @@ export function stubExistingAdditionalProperties(validator, theSchema, rootSchem
|
|
|
251
255
|
* @param [expandAllBranches=false] - Flag, if true, will return all possible branches of conditions, any/oneOf and
|
|
252
256
|
* dependencies as a list of schemas
|
|
253
257
|
* @param [recurseList=[]] - The optional, list of recursive references already processed
|
|
258
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
254
259
|
* @returns - The schema(s) resulting from having its conditions, additional properties, references and dependencies
|
|
255
260
|
* resolved. Multiple schemas may be returned if `expandAllBranches` is true.
|
|
256
261
|
*/
|
|
257
|
-
export function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = []) {
|
|
262
|
+
export function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = [], experimental_customMergeAllOf) {
|
|
258
263
|
if (!isObject(schema)) {
|
|
259
264
|
return [{}];
|
|
260
265
|
}
|
|
261
266
|
const resolvedSchemas = resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, rawFormData);
|
|
262
267
|
return resolvedSchemas.flatMap((s) => {
|
|
268
|
+
var _a;
|
|
263
269
|
let resolvedSchema = s;
|
|
264
270
|
if (IF_KEY in resolvedSchema) {
|
|
265
|
-
return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData);
|
|
271
|
+
return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);
|
|
266
272
|
}
|
|
267
273
|
if (ALL_OF_KEY in resolvedSchema) {
|
|
268
274
|
// resolve allOf schemas
|
|
@@ -271,9 +277,27 @@ export function retrieveSchemaInternal(validator, schema, rootSchema, rawFormDat
|
|
|
271
277
|
return [...allOf, restOfSchema];
|
|
272
278
|
}
|
|
273
279
|
try {
|
|
274
|
-
|
|
275
|
-
|
|
280
|
+
const withContainsSchemas = [];
|
|
281
|
+
const withoutContainsSchemas = [];
|
|
282
|
+
(_a = resolvedSchema.allOf) === null || _a === void 0 ? void 0 : _a.forEach((s) => {
|
|
283
|
+
if (typeof s === 'object' && s.contains) {
|
|
284
|
+
withContainsSchemas.push(s);
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
withoutContainsSchemas.push(s);
|
|
288
|
+
}
|
|
276
289
|
});
|
|
290
|
+
if (withContainsSchemas.length) {
|
|
291
|
+
resolvedSchema = { ...resolvedSchema, allOf: withoutContainsSchemas };
|
|
292
|
+
}
|
|
293
|
+
resolvedSchema = experimental_customMergeAllOf
|
|
294
|
+
? experimental_customMergeAllOf(resolvedSchema)
|
|
295
|
+
: mergeAllOf(resolvedSchema, {
|
|
296
|
+
deep: false,
|
|
297
|
+
});
|
|
298
|
+
if (withContainsSchemas.length) {
|
|
299
|
+
resolvedSchema.allOf = withContainsSchemas;
|
|
300
|
+
}
|
|
277
301
|
}
|
|
278
302
|
catch (e) {
|
|
279
303
|
console.warn('could not merge subschemas in allOf:\n', e);
|
|
@@ -337,13 +361,14 @@ export function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAl
|
|
|
337
361
|
* as a list of schemas
|
|
338
362
|
* @param recurseList - The list of recursive references already processed
|
|
339
363
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
364
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
340
365
|
* @returns - The list of schemas with their dependencies resolved
|
|
341
366
|
*/
|
|
342
|
-
export function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
367
|
+
export function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
343
368
|
// Drop the dependencies from the source schema.
|
|
344
369
|
const { dependencies, ...remainingSchema } = schema;
|
|
345
370
|
const resolvedSchemas = resolveAnyOrOneOfSchemas(validator, remainingSchema, rootSchema, expandAllBranches, formData);
|
|
346
|
-
return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData));
|
|
371
|
+
return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));
|
|
347
372
|
}
|
|
348
373
|
/** Processes all the `dependencies` recursively into the list of `resolvedSchema`s as needed. Passes the
|
|
349
374
|
* `expandAllBranches` flag down to the `withDependentSchema()` and the recursive `processDependencies()` helper calls.
|
|
@@ -356,9 +381,10 @@ export function resolveDependencies(validator, schema, rootSchema, expandAllBran
|
|
|
356
381
|
* as a list of schemas
|
|
357
382
|
* @param recurseList - The list of recursive references already processed
|
|
358
383
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
384
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
359
385
|
* @returns - The schema with the `dependencies` resolved into it
|
|
360
386
|
*/
|
|
361
|
-
export function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData) {
|
|
387
|
+
export function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
362
388
|
let schemas = [resolvedSchema];
|
|
363
389
|
// Process dependencies updating the local schema properties as appropriate.
|
|
364
390
|
for (const dependencyKey in dependencies) {
|
|
@@ -375,9 +401,9 @@ export function processDependencies(validator, dependencies, resolvedSchema, roo
|
|
|
375
401
|
schemas[0] = withDependentProperties(resolvedSchema, dependencyValue);
|
|
376
402
|
}
|
|
377
403
|
else if (isObject(dependencyValue)) {
|
|
378
|
-
schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData);
|
|
404
|
+
schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData, experimental_customMergeAllOf);
|
|
379
405
|
}
|
|
380
|
-
return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, recurseList, formData));
|
|
406
|
+
return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));
|
|
381
407
|
}
|
|
382
408
|
return schemas;
|
|
383
409
|
}
|
|
@@ -408,10 +434,11 @@ export function withDependentProperties(schema, additionallyRequired) {
|
|
|
408
434
|
* as a list of schemas
|
|
409
435
|
* @param recurseList - The list of recursive references already processed
|
|
410
436
|
* @param [formData]- The current formData to assist retrieving a schema
|
|
437
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
411
438
|
* @returns - The list of schemas with the dependent schema resolved into them
|
|
412
439
|
*/
|
|
413
|
-
export function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData) {
|
|
414
|
-
const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches, recurseList);
|
|
440
|
+
export function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
441
|
+
const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);
|
|
415
442
|
return dependentSchemas.flatMap((dependent) => {
|
|
416
443
|
const { oneOf, ...dependentSchema } = dependent;
|
|
417
444
|
schema = mergeSchemas(schema, dependentSchema);
|
|
@@ -427,7 +454,7 @@ export function withDependentSchema(validator, schema, rootSchema, dependencyKey
|
|
|
427
454
|
return resolveReference(validator, subschema, rootSchema, expandAllBranches, recurseList, formData);
|
|
428
455
|
});
|
|
429
456
|
const allPermutations = getAllPermutationsOfXxxOf(resolvedOneOfs);
|
|
430
|
-
return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, recurseList, formData));
|
|
457
|
+
return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));
|
|
431
458
|
});
|
|
432
459
|
}
|
|
433
460
|
/** Returns a list of `schema`s with the best choice from the `oneOf` options merged into it. If `expandAllBranches` is
|
|
@@ -443,9 +470,10 @@ export function withDependentSchema(validator, schema, rootSchema, dependencyKey
|
|
|
443
470
|
* as a list of schemas
|
|
444
471
|
* @param recurseList - The list of recursive references already processed
|
|
445
472
|
* @param [formData] - The current formData to assist retrieving a schema
|
|
473
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
446
474
|
* @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true
|
|
447
475
|
*/
|
|
448
|
-
export function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, recurseList, formData) {
|
|
476
|
+
export function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {
|
|
449
477
|
const validSubschemas = oneOf.filter((subschema) => {
|
|
450
478
|
if (typeof subschema === 'boolean' || !subschema || !subschema.properties) {
|
|
451
479
|
return false;
|
|
@@ -470,7 +498,7 @@ export function withExactlyOneSubschema(validator, schema, rootSchema, dependenc
|
|
|
470
498
|
const subschema = s;
|
|
471
499
|
const [dependentSubschema] = splitKeyElementFromObject(dependencyKey, subschema.properties);
|
|
472
500
|
const dependentSchema = { ...subschema, properties: dependentSubschema };
|
|
473
|
-
const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches, recurseList);
|
|
501
|
+
const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);
|
|
474
502
|
return schemas.map((s) => mergeSchemas(schema, s));
|
|
475
503
|
});
|
|
476
504
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieveSchema.js","sourceRoot":"","sources":["../../src/schema/retrieveSchema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"retrieveSchema.js","sourceRoot":"","sources":["../../src/schema/retrieveSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormContextType, IdSchema, RJSFSchema, StrictRJSFSchema, ValidatorType } from '../types';
|
|
1
|
+
import { Experimental_CustomMergeAllOf, FormContextType, IdSchema, RJSFSchema, StrictRJSFSchema, ValidatorType } from '../types';
|
|
2
2
|
/** Generates an `IdSchema` object for the `schema`, recursively
|
|
3
3
|
*
|
|
4
4
|
* @param validator - An implementation of the `ValidatorType` interface that will be used when necessary
|
|
@@ -8,6 +8,7 @@ import { FormContextType, IdSchema, RJSFSchema, StrictRJSFSchema, ValidatorType
|
|
|
8
8
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
9
9
|
* @param [idPrefix='root'] - The prefix to use for the id
|
|
10
10
|
* @param [idSeparator='_'] - The separator to use for the path segments in the id
|
|
11
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
11
12
|
* @returns - The `IdSchema` object for the `schema`
|
|
12
13
|
*/
|
|
13
|
-
export default function toIdSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, id?: string | null, rootSchema?: S, formData?: T, idPrefix?: string, idSeparator?: string): IdSchema<T>;
|
|
14
|
+
export default function toIdSchema<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(validator: ValidatorType<T, S, F>, schema: S, id?: string | null, rootSchema?: S, formData?: T, idPrefix?: string, idSeparator?: string, experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>): IdSchema<T>;
|
package/lib/schema/toIdSchema.js
CHANGED
|
@@ -15,18 +15,19 @@ import getSchemaType from '../getSchemaType';
|
|
|
15
15
|
* @param [rootSchema] - The root schema, used to primarily to look up `$ref`s
|
|
16
16
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
17
17
|
* @param [_recurseList=[]] - The list of retrieved schemas currently being recursed, used to prevent infinite recursion
|
|
18
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
18
19
|
* @returns - The `IdSchema` object for the `schema`
|
|
19
20
|
*/
|
|
20
|
-
function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = []) {
|
|
21
|
+
function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {
|
|
21
22
|
if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {
|
|
22
23
|
const _schema = retrieveSchema(validator, schema, rootSchema, formData);
|
|
23
24
|
const sameSchemaIndex = _recurseList.findIndex((item) => isEqual(item, _schema));
|
|
24
25
|
if (sameSchemaIndex === -1) {
|
|
25
|
-
return toIdSchemaInternal(validator, _schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList.concat(_schema));
|
|
26
|
+
return toIdSchemaInternal(validator, _schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList.concat(_schema), experimental_customMergeAllOf);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
if (ITEMS_KEY in schema && !get(schema, [ITEMS_KEY, REF_KEY])) {
|
|
29
|
-
return toIdSchemaInternal(validator, get(schema, ITEMS_KEY), idPrefix, idSeparator, id, rootSchema, formData, _recurseList);
|
|
30
|
+
return toIdSchemaInternal(validator, get(schema, ITEMS_KEY), idPrefix, idSeparator, id, rootSchema, formData, _recurseList, experimental_customMergeAllOf);
|
|
30
31
|
}
|
|
31
32
|
const $id = id || idPrefix;
|
|
32
33
|
const idSchema = { $id };
|
|
@@ -37,7 +38,7 @@ function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSc
|
|
|
37
38
|
idSchema[name] = toIdSchemaInternal(validator, isObject(field) ? field : {}, idPrefix, idSeparator, fieldId, rootSchema,
|
|
38
39
|
// It's possible that formData is not an object -- this can happen if an
|
|
39
40
|
// array item has just been added, but not populated with data yet
|
|
40
|
-
get(formData, [name]), _recurseList);
|
|
41
|
+
get(formData, [name]), _recurseList, experimental_customMergeAllOf);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
return idSchema;
|
|
@@ -51,9 +52,10 @@ function toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSc
|
|
|
51
52
|
* @param [formData] - The current formData, if any, to assist retrieving a schema
|
|
52
53
|
* @param [idPrefix='root'] - The prefix to use for the id
|
|
53
54
|
* @param [idSeparator='_'] - The separator to use for the path segments in the id
|
|
55
|
+
* @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas
|
|
54
56
|
* @returns - The `IdSchema` object for the `schema`
|
|
55
57
|
*/
|
|
56
|
-
export default function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = 'root', idSeparator = '_') {
|
|
57
|
-
return toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData);
|
|
58
|
+
export default function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = 'root', idSeparator = '_', experimental_customMergeAllOf) {
|
|
59
|
+
return toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, undefined, experimental_customMergeAllOf);
|
|
58
60
|
}
|
|
59
61
|
//# sourceMappingURL=toIdSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toIdSchema.js","sourceRoot":"","sources":["../../src/schema/toIdSchema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,QAAQ,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"toIdSchema.js","sourceRoot":"","sources":["../../src/schema/toIdSchema.ts"],"names":[],"mappings":"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"}
|