Skip to content

Commit 0bcf9c6

Browse files
committed
[form] Add options parameter to createFormMerger factory
1 parent 1516c2d commit 0bcf9c6

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

.changeset/tough-ravens-raise.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@sjsf/form": minor
3+
---
4+
5+
Add options parameter to `createFormMerger` factory

packages/form/src/form/merger.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
defaultMerger,
33
getDefaultFormState,
4+
type Experimental_DefaultFormStateBehavior,
45
type Merger,
56
type Schema,
67
type SchemaValue,
@@ -17,7 +18,15 @@ export interface FormMerger extends Merger {
1718
): SchemaValue | undefined;
1819
}
1920

20-
export function createFormMerger(validator: Validator, rootSchema: Schema) {
21+
export type FormMergerOptions = Experimental_DefaultFormStateBehavior & {
22+
includeUndefinedValues?: boolean | "excludeObjectChildren";
23+
};
24+
25+
export function createFormMerger(
26+
validator: Validator,
27+
rootSchema: Schema,
28+
options: FormMergerOptions = {}
29+
) {
2130
const merger: FormMerger = {
2231
mergeAllOf(schema) {
2332
return defaultMerger.mergeAllOf(schema);
@@ -28,7 +37,9 @@ export function createFormMerger(validator: Validator, rootSchema: Schema) {
2837
merger,
2938
schema,
3039
formData,
31-
rootSchema
40+
rootSchema,
41+
options.includeUndefinedValues,
42+
options
3243
);
3344
},
3445
};

0 commit comments

Comments
 (0)