@lucas-barake/effect-form 0.7.0 → 0.9.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/Path/package.json +6 -0
- package/dist/cjs/Field.js +0 -10
- package/dist/cjs/Field.js.map +1 -1
- package/dist/cjs/FormAtoms.js +23 -20
- package/dist/cjs/FormAtoms.js.map +1 -1
- package/dist/cjs/FormBuilder.js +0 -6
- package/dist/cjs/FormBuilder.js.map +1 -1
- package/dist/cjs/Mode.js +0 -3
- package/dist/cjs/Mode.js.map +1 -1
- package/dist/cjs/{internal/path.js → Path.js} +2 -4
- package/dist/cjs/Path.js.map +1 -0
- package/dist/cjs/Validation.js +2 -6
- package/dist/cjs/Validation.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/dirty.js +7 -7
- package/dist/cjs/internal/dirty.js.map +1 -1
- package/dist/dts/Field.d.ts +0 -17
- package/dist/dts/Field.d.ts.map +1 -1
- package/dist/dts/FormAtoms.d.ts +9 -11
- package/dist/dts/FormAtoms.d.ts.map +1 -1
- package/dist/dts/FormBuilder.d.ts +0 -12
- package/dist/dts/FormBuilder.d.ts.map +1 -1
- package/dist/dts/Mode.d.ts +12 -5
- package/dist/dts/Mode.d.ts.map +1 -1
- package/dist/dts/{internal/path.d.ts → Path.d.ts} +2 -4
- package/dist/dts/Path.d.ts.map +1 -0
- package/dist/dts/Validation.d.ts +0 -4
- package/dist/dts/Validation.d.ts.map +1 -1
- package/dist/dts/index.d.ts +5 -8
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Field.js +0 -10
- package/dist/esm/Field.js.map +1 -1
- package/dist/esm/FormAtoms.js +7 -4
- package/dist/esm/FormAtoms.js.map +1 -1
- package/dist/esm/FormBuilder.js +0 -6
- package/dist/esm/FormBuilder.js.map +1 -1
- package/dist/esm/Mode.js +0 -3
- package/dist/esm/Mode.js.map +1 -1
- package/dist/esm/{internal/path.js → Path.js} +2 -4
- package/dist/esm/Path.js.map +1 -0
- package/dist/esm/Validation.js +1 -5
- package/dist/esm/Validation.js.map +1 -1
- package/dist/esm/index.js +5 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/dirty.js +1 -1
- package/dist/esm/internal/dirty.js.map +1 -1
- package/package.json +9 -1
- package/src/Field.ts +0 -17
- package/src/FormAtoms.ts +19 -18
- package/src/FormBuilder.ts +0 -15
- package/src/Mode.ts +12 -5
- package/src/{internal/path.ts → Path.ts} +1 -3
- package/src/Validation.ts +1 -5
- package/src/index.ts +6 -8
- package/src/internal/dirty.ts +1 -1
- package/dist/cjs/internal/path.js.map +0 -1
- package/dist/dts/internal/path.d.ts.map +0 -1
- package/dist/esm/internal/path.js.map +0 -1
package/dist/dts/Field.d.ts
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Field definitions for type-safe forms.
|
|
3
|
-
*
|
|
4
|
-
* @since 1.0.0
|
|
5
3
|
*/
|
|
6
4
|
import * as Schema from "effect/Schema";
|
|
7
5
|
/**
|
|
8
6
|
* Unique identifier for Field instances.
|
|
9
7
|
*
|
|
10
|
-
* @since 1.0.0
|
|
11
8
|
* @category Symbols
|
|
12
9
|
*/
|
|
13
10
|
export declare const TypeId: unique symbol;
|
|
14
11
|
/**
|
|
15
|
-
* @since 1.0.0
|
|
16
12
|
* @category Symbols
|
|
17
13
|
*/
|
|
18
14
|
export type TypeId = typeof TypeId;
|
|
19
15
|
/**
|
|
20
16
|
* A scalar field definition containing the key and schema.
|
|
21
17
|
*
|
|
22
|
-
* @since 1.0.0
|
|
23
18
|
* @category Models
|
|
24
19
|
*/
|
|
25
20
|
export interface FieldDef<K extends string, S extends Schema.Schema.Any> {
|
|
@@ -30,7 +25,6 @@ export interface FieldDef<K extends string, S extends Schema.Schema.Any> {
|
|
|
30
25
|
/**
|
|
31
26
|
* An array field definition containing a schema for items.
|
|
32
27
|
*
|
|
33
|
-
* @since 1.0.0
|
|
34
28
|
* @category Models
|
|
35
29
|
*/
|
|
36
30
|
export interface ArrayFieldDef<K extends string, S extends Schema.Schema.Any> {
|
|
@@ -41,28 +35,24 @@ export interface ArrayFieldDef<K extends string, S extends Schema.Schema.Any> {
|
|
|
41
35
|
/**
|
|
42
36
|
* Union of all field definition types.
|
|
43
37
|
*
|
|
44
|
-
* @since 1.0.0
|
|
45
38
|
* @category Models
|
|
46
39
|
*/
|
|
47
40
|
export type AnyFieldDef = FieldDef<string, Schema.Schema.Any> | ArrayFieldDef<string, Schema.Schema.Any>;
|
|
48
41
|
/**
|
|
49
42
|
* A record of field definitions.
|
|
50
43
|
*
|
|
51
|
-
* @since 1.0.0
|
|
52
44
|
* @category Models
|
|
53
45
|
*/
|
|
54
46
|
export type FieldsRecord = Record<string, AnyFieldDef>;
|
|
55
47
|
/**
|
|
56
48
|
* Checks if a field definition is an array field.
|
|
57
49
|
*
|
|
58
|
-
* @since 1.0.0
|
|
59
50
|
* @category Guards
|
|
60
51
|
*/
|
|
61
52
|
export declare const isArrayFieldDef: (def: AnyFieldDef) => def is ArrayFieldDef<string, Schema.Schema.Any>;
|
|
62
53
|
/**
|
|
63
54
|
* Checks if a field definition is a scalar field.
|
|
64
55
|
*
|
|
65
|
-
* @since 1.0.0
|
|
66
56
|
* @category Guards
|
|
67
57
|
*/
|
|
68
58
|
export declare const isFieldDef: (def: AnyFieldDef) => def is FieldDef<string, Schema.Schema.Any>;
|
|
@@ -77,7 +67,6 @@ export declare const isFieldDef: (def: AnyFieldDef) => def is FieldDef<string, S
|
|
|
77
67
|
* const NameField = Field.makeField("name", Schema.String)
|
|
78
68
|
* ```
|
|
79
69
|
*
|
|
80
|
-
* @since 1.0.0
|
|
81
70
|
* @category Constructors
|
|
82
71
|
*/
|
|
83
72
|
export declare const makeField: <K extends string, S extends Schema.Schema.Any>(key: K, schema: S) => FieldDef<K, S>;
|
|
@@ -99,14 +88,12 @@ export declare const makeField: <K extends string, S extends Schema.Schema.Any>(
|
|
|
99
88
|
* }))
|
|
100
89
|
* ```
|
|
101
90
|
*
|
|
102
|
-
* @since 1.0.0
|
|
103
91
|
* @category Constructors
|
|
104
92
|
*/
|
|
105
93
|
export declare const makeArrayField: <K extends string, S extends Schema.Schema.Any>(key: K, itemSchema: S) => ArrayFieldDef<K, S>;
|
|
106
94
|
/**
|
|
107
95
|
* Extracts the encoded (input) type from a fields record.
|
|
108
96
|
*
|
|
109
|
-
* @since 1.0.0
|
|
110
97
|
* @category Type Helpers
|
|
111
98
|
*/
|
|
112
99
|
export type EncodedFromFields<T extends FieldsRecord> = {
|
|
@@ -115,7 +102,6 @@ export type EncodedFromFields<T extends FieldsRecord> = {
|
|
|
115
102
|
/**
|
|
116
103
|
* Extracts the decoded (output) type from a fields record.
|
|
117
104
|
*
|
|
118
|
-
* @since 1.0.0
|
|
119
105
|
* @category Type Helpers
|
|
120
106
|
*/
|
|
121
107
|
export type DecodedFromFields<T extends FieldsRecord> = {
|
|
@@ -124,21 +110,18 @@ export type DecodedFromFields<T extends FieldsRecord> = {
|
|
|
124
110
|
/**
|
|
125
111
|
* Gets a default encoded value from a schema.
|
|
126
112
|
*
|
|
127
|
-
* @since 1.0.0
|
|
128
113
|
* @category Helpers
|
|
129
114
|
*/
|
|
130
115
|
export declare const getDefaultFromSchema: (schema: Schema.Schema.Any) => unknown;
|
|
131
116
|
/**
|
|
132
117
|
* Gets default encoded values for a fields record.
|
|
133
118
|
*
|
|
134
|
-
* @since 1.0.0
|
|
135
119
|
* @category Helpers
|
|
136
120
|
*/
|
|
137
121
|
export declare const getDefaultEncodedValues: (fields: FieldsRecord) => Record<string, unknown>;
|
|
138
122
|
/**
|
|
139
123
|
* Creates a touched record with all fields set to the given value.
|
|
140
124
|
*
|
|
141
|
-
* @since 1.0.0
|
|
142
125
|
* @category Helpers
|
|
143
126
|
*/
|
|
144
127
|
export declare const createTouchedRecord: (fields: FieldsRecord, value: boolean) => Record<string, boolean>;
|
package/dist/dts/Field.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/Field.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/Field.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/FormAtoms.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ import { type WeakRegistry } from "./internal/weak-registry.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* Atoms for a single field.
|
|
11
11
|
*
|
|
12
|
-
* @since 1.0.0
|
|
13
12
|
* @category Models
|
|
14
13
|
*/
|
|
15
14
|
export interface FieldAtoms {
|
|
@@ -21,18 +20,20 @@ export interface FieldAtoms {
|
|
|
21
20
|
/**
|
|
22
21
|
* Configuration for creating form atoms.
|
|
23
22
|
*
|
|
24
|
-
* @since 1.0.0
|
|
25
23
|
* @category Models
|
|
26
24
|
*/
|
|
27
|
-
export interface FormAtomsConfig<TFields extends Field.FieldsRecord, R, A, E> {
|
|
25
|
+
export interface FormAtomsConfig<TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = void> {
|
|
28
26
|
readonly runtime: Atom.AtomRuntime<R, any>;
|
|
29
27
|
readonly formBuilder: FormBuilder.FormBuilder<TFields, R>;
|
|
30
|
-
readonly onSubmit: (
|
|
28
|
+
readonly onSubmit: (args: SubmitArgs, ctx: {
|
|
29
|
+
readonly decoded: Field.DecodedFromFields<TFields>;
|
|
30
|
+
readonly encoded: Field.EncodedFromFields<TFields>;
|
|
31
|
+
readonly get: Atom.FnContext;
|
|
32
|
+
}) => A | Effect.Effect<A, E, R>;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
35
|
* Maps field names to their type-safe Field references for setValue operations.
|
|
34
36
|
*
|
|
35
|
-
* @since 1.0.0
|
|
36
37
|
* @category Models
|
|
37
38
|
*/
|
|
38
39
|
export type FieldRefs<TFields extends Field.FieldsRecord> = {
|
|
@@ -41,10 +42,9 @@ export type FieldRefs<TFields extends Field.FieldsRecord> = {
|
|
|
41
42
|
/**
|
|
42
43
|
* The complete form atoms infrastructure.
|
|
43
44
|
*
|
|
44
|
-
* @since 1.0.0
|
|
45
45
|
* @category Models
|
|
46
46
|
*/
|
|
47
|
-
export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E = never> {
|
|
47
|
+
export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E = never, SubmitArgs = void> {
|
|
48
48
|
readonly stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<TFields>>, Option.Option<FormBuilder.FormState<TFields>>>;
|
|
49
49
|
readonly crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>;
|
|
50
50
|
readonly valuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
|
|
@@ -54,7 +54,7 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E =
|
|
|
54
54
|
readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields>>>;
|
|
55
55
|
readonly changedSinceSubmitFieldsAtom: Atom.Atom<ReadonlySet<string>>;
|
|
56
56
|
readonly hasChangedSinceSubmitAtom: Atom.Atom<boolean>;
|
|
57
|
-
readonly submitAtom: Atom.AtomResultFn<
|
|
57
|
+
readonly submitAtom: Atom.AtomResultFn<SubmitArgs, A, E | ParseResult.ParseError>;
|
|
58
58
|
readonly combinedSchema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>;
|
|
59
59
|
readonly fieldRefs: FieldRefs<TFields>;
|
|
60
60
|
readonly validationAtomsRegistry: WeakRegistry<Atom.AtomResultFn<unknown, void, ParseResult.ParseError>>;
|
|
@@ -73,7 +73,6 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E =
|
|
|
73
73
|
/**
|
|
74
74
|
* Pure state operations for form manipulation.
|
|
75
75
|
*
|
|
76
|
-
* @since 1.0.0
|
|
77
76
|
* @category Models
|
|
78
77
|
*/
|
|
79
78
|
export interface FormOperations<TFields extends Field.FieldsRecord> {
|
|
@@ -116,8 +115,7 @@ export interface FormOperations<TFields extends Field.FieldsRecord> {
|
|
|
116
115
|
* })
|
|
117
116
|
* ```
|
|
118
117
|
*
|
|
119
|
-
* @since 1.0.0
|
|
120
118
|
* @category Constructors
|
|
121
119
|
*/
|
|
122
|
-
export declare const make: <TFields extends Field.FieldsRecord, R, A, E>(config: FormAtomsConfig<TFields, R, A, E>) => FormAtoms<TFields, R, A, E>;
|
|
120
|
+
export declare const make: <TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = void>(config: FormAtomsConfig<TFields, R, A, E, SubmitArgs>) => FormAtoms<TFields, R, A, E, SubmitArgs>;
|
|
123
121
|
//# sourceMappingURL=FormAtoms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
1
|
import type * as Registry from "@effect-atom/atom/Registry";
|
|
5
2
|
import type * as Effect from "effect/Effect";
|
|
6
3
|
import type * as Option from "effect/Option";
|
|
7
4
|
import * as Schema from "effect/Schema";
|
|
8
5
|
import type { ArrayFieldDef, DecodedFromFields, EncodedFromFields, FieldDef, FieldsRecord } from "./Field.js";
|
|
9
6
|
/**
|
|
10
|
-
* @since 1.0.0
|
|
11
7
|
* @category Models
|
|
12
8
|
*/
|
|
13
9
|
export interface SubmittedValues<TFields extends FieldsRecord> {
|
|
@@ -17,7 +13,6 @@ export interface SubmittedValues<TFields extends FieldsRecord> {
|
|
|
17
13
|
/**
|
|
18
14
|
* A field reference carrying type and path info for type-safe setValue operations.
|
|
19
15
|
*
|
|
20
|
-
* @since 1.0.0
|
|
21
16
|
* @category Models
|
|
22
17
|
*/
|
|
23
18
|
export interface FieldRef<S> {
|
|
@@ -28,19 +23,16 @@ export interface FieldRef<S> {
|
|
|
28
23
|
/**
|
|
29
24
|
* Unique identifier for FormBuilder instances.
|
|
30
25
|
*
|
|
31
|
-
* @since 1.0.0
|
|
32
26
|
* @category Symbols
|
|
33
27
|
*/
|
|
34
28
|
export declare const TypeId: unique symbol;
|
|
35
29
|
/**
|
|
36
|
-
* @since 1.0.0
|
|
37
30
|
* @category Symbols
|
|
38
31
|
*/
|
|
39
32
|
export type TypeId = typeof TypeId;
|
|
40
33
|
/**
|
|
41
34
|
* The state of a form at runtime.
|
|
42
35
|
*
|
|
43
|
-
* @since 1.0.0
|
|
44
36
|
* @category Models
|
|
45
37
|
*/
|
|
46
38
|
export interface FormState<TFields extends FieldsRecord> {
|
|
@@ -71,7 +63,6 @@ type Refinement = SyncRefinement | AsyncRefinement;
|
|
|
71
63
|
* includes a Schema for validation. The builder accumulates field definitions
|
|
72
64
|
* and context requirements (`R`) from schemas that use Effect services.
|
|
73
65
|
*
|
|
74
|
-
* @since 1.0.0
|
|
75
66
|
* @category Models
|
|
76
67
|
*/
|
|
77
68
|
export interface FormBuilder<TFields extends FieldsRecord, R> {
|
|
@@ -168,7 +159,6 @@ export interface FormBuilder<TFields extends FieldsRecord, R> {
|
|
|
168
159
|
* // Output: false
|
|
169
160
|
* ```
|
|
170
161
|
*
|
|
171
|
-
* @since 1.0.0
|
|
172
162
|
* @category Guards
|
|
173
163
|
*/
|
|
174
164
|
export declare const isFormBuilder: (u: unknown) => u is FormBuilder<any, any>;
|
|
@@ -193,14 +183,12 @@ export declare const isFormBuilder: (u: unknown) => u is FormBuilder<any, any>;
|
|
|
193
183
|
* .addField(PasswordField)
|
|
194
184
|
* ```
|
|
195
185
|
*
|
|
196
|
-
* @since 1.0.0
|
|
197
186
|
* @category Constructors
|
|
198
187
|
*/
|
|
199
188
|
export declare const empty: FormBuilder<{}, never>;
|
|
200
189
|
/**
|
|
201
190
|
* Builds a combined Schema from a FormBuilder's field definitions.
|
|
202
191
|
*
|
|
203
|
-
* @since 1.0.0
|
|
204
192
|
* @category Schema
|
|
205
193
|
*/
|
|
206
194
|
export declare const buildSchema: <TFields extends FieldsRecord, R>(self: FormBuilder<TFields, R>) => Schema.Schema<DecodedFromFields<TFields>, EncodedFromFields<TFields>, R>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBuilder.d.ts","sourceRoot":"","sources":["../../src/FormBuilder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FormBuilder.d.ts","sourceRoot":"","sources":["../../src/FormBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/Mode.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Form validation mode configuration.
|
|
3
|
-
*
|
|
4
|
-
* @since 1.0.0
|
|
5
3
|
*/
|
|
6
4
|
import * as Duration from "effect/Duration";
|
|
7
5
|
/**
|
|
@@ -16,7 +14,6 @@ import * as Duration from "effect/Duration";
|
|
|
16
14
|
* - `{ onChange: { debounce, autoSubmit? } }`: Debounced validation, optional auto-submit
|
|
17
15
|
* - `{ onBlur: { autoSubmit: true } }`: Validate on blur, auto-submit when valid
|
|
18
16
|
*
|
|
19
|
-
* @since 1.0.0
|
|
20
17
|
* @category Models
|
|
21
18
|
*/
|
|
22
19
|
export type FormMode = "onSubmit" | "onBlur" | "onChange" | {
|
|
@@ -34,10 +31,21 @@ export type FormMode = "onSubmit" | "onBlur" | "onChange" | {
|
|
|
34
31
|
readonly autoSubmit: true;
|
|
35
32
|
};
|
|
36
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Form mode without auto-submit options.
|
|
36
|
+
* Used when SubmitArgs is not void, since auto-submit cannot provide custom arguments.
|
|
37
|
+
*
|
|
38
|
+
* @category Models
|
|
39
|
+
*/
|
|
40
|
+
export type FormModeWithoutAutoSubmit = "onSubmit" | "onBlur" | "onChange" | {
|
|
41
|
+
readonly onChange: {
|
|
42
|
+
readonly debounce: Duration.DurationInput;
|
|
43
|
+
readonly autoSubmit?: false;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
37
46
|
/**
|
|
38
47
|
* Parsed form mode with resolved values.
|
|
39
48
|
*
|
|
40
|
-
* @since 1.0.0
|
|
41
49
|
* @category Models
|
|
42
50
|
*/
|
|
43
51
|
export interface ParsedMode {
|
|
@@ -48,7 +56,6 @@ export interface ParsedMode {
|
|
|
48
56
|
/**
|
|
49
57
|
* Parses a FormMode into a normalized ParsedMode.
|
|
50
58
|
*
|
|
51
|
-
* @since 1.0.0
|
|
52
59
|
* @category Parsing
|
|
53
60
|
*/
|
|
54
61
|
export declare const parse: (mode?: FormMode) => ParsedMode;
|
package/dist/dts/Mode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mode.d.ts","sourceRoot":"","sources":["../../src/Mode.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Mode.d.ts","sourceRoot":"","sources":["../../src/Mode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,QAAQ,GACR,UAAU,GACV;IAAE,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,CAAA;CAAE,GACjG;IAAE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,CAAA;AAEnG;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC,UAAU,GACV,QAAQ,GACR,UAAU,GACV;IAAE,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,CAAA;CAAE,CAAA;AAErG;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,OAAM,QAAqB,KAAG,UAUnD,CAAA"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* @internal
|
|
2
|
+
* Path utilities for form field operations.
|
|
5
3
|
*/
|
|
6
4
|
/**
|
|
7
5
|
* Converts a schema path array to a dot/bracket notation string.
|
|
@@ -39,4 +37,4 @@ export declare const getNestedValue: (obj: unknown, path: string) => unknown;
|
|
|
39
37
|
* // { items: [{ name: "B" }] }
|
|
40
38
|
*/
|
|
41
39
|
export declare const setNestedValue: <T>(obj: T, path: string, value: unknown) => T;
|
|
42
|
-
//# sourceMappingURL=
|
|
40
|
+
//# sourceMappingURL=Path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Path.d.ts","sourceRoot":"","sources":["../../src/Path.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,aAAa,CAAC,WAAW,CAAC,KAAG,MAaxE,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,OACwB,CAAA;AAEzF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,aAAa,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,KAAG,OAgBpF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,EAAE,MAAM,MAAM,KAAG,OAS3D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,CAkBxE,CAAA"}
|
package/dist/dts/Validation.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Validation utilities for form error handling.
|
|
3
|
-
*
|
|
4
|
-
* @since 1.0.0
|
|
5
3
|
*/
|
|
6
4
|
import * as Option from "effect/Option";
|
|
7
5
|
import * as ParseResult from "effect/ParseResult";
|
|
8
6
|
/**
|
|
9
7
|
* Extracts the first error message from a ParseError.
|
|
10
8
|
*
|
|
11
|
-
* @since 1.0.0
|
|
12
9
|
* @category Error Handling
|
|
13
10
|
*/
|
|
14
11
|
export declare const extractFirstError: (error: ParseResult.ParseError) => Option.Option<string>;
|
|
@@ -16,7 +13,6 @@ export declare const extractFirstError: (error: ParseResult.ParseError) => Optio
|
|
|
16
13
|
* Routes validation errors from a ParseError to a map of field paths to error messages.
|
|
17
14
|
* Used for cross-field validation where schema errors need to be displayed on specific fields.
|
|
18
15
|
*
|
|
19
|
-
* @since 1.0.0
|
|
20
16
|
* @category Error Handling
|
|
21
17
|
*/
|
|
22
18
|
export declare const routeErrors: (error: ParseResult.ParseError) => Map<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../../src/Validation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../../src/Validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAGjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAMrF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,CAAC,UAAU,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAY7E,CAAA"}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Field definitions for type-safe forms.
|
|
3
|
-
*
|
|
4
|
-
* @since 1.0.0
|
|
5
3
|
*/
|
|
6
4
|
export * as Field from "./Field.js";
|
|
7
5
|
/**
|
|
8
6
|
* Atoms for a single field.
|
|
9
7
|
*
|
|
10
|
-
* @since 1.0.0
|
|
11
8
|
* @category Models
|
|
12
9
|
*/
|
|
13
10
|
export * as FormAtoms from "./FormAtoms.js";
|
|
14
11
|
/**
|
|
15
|
-
* @
|
|
12
|
+
* @category Models
|
|
16
13
|
*/
|
|
17
14
|
export * as FormBuilder from "./FormBuilder.js";
|
|
18
15
|
/**
|
|
19
16
|
* Form validation mode configuration.
|
|
20
|
-
*
|
|
21
|
-
* @since 1.0.0
|
|
22
17
|
*/
|
|
23
18
|
export * as Mode from "./Mode.js";
|
|
19
|
+
/**
|
|
20
|
+
* Path utilities for form field operations.
|
|
21
|
+
*/
|
|
22
|
+
export * as Path from "./Path.js";
|
|
24
23
|
/**
|
|
25
24
|
* Validation utilities for form error handling.
|
|
26
|
-
*
|
|
27
|
-
* @since 1.0.0
|
|
28
25
|
*/
|
|
29
26
|
export * as Validation from "./Validation.js";
|
|
30
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
|
package/dist/esm/Field.js
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Field definitions for type-safe forms.
|
|
3
|
-
*
|
|
4
|
-
* @since 1.0.0
|
|
5
3
|
*/
|
|
6
4
|
import * as Schema from "effect/Schema";
|
|
7
5
|
/**
|
|
8
6
|
* Unique identifier for Field instances.
|
|
9
7
|
*
|
|
10
|
-
* @since 1.0.0
|
|
11
8
|
* @category Symbols
|
|
12
9
|
*/
|
|
13
10
|
export const TypeId = /*#__PURE__*/Symbol.for("@lucas-barake/effect-form/Field");
|
|
14
11
|
/**
|
|
15
12
|
* Checks if a field definition is an array field.
|
|
16
13
|
*
|
|
17
|
-
* @since 1.0.0
|
|
18
14
|
* @category Guards
|
|
19
15
|
*/
|
|
20
16
|
export const isArrayFieldDef = def => def._tag === "array";
|
|
21
17
|
/**
|
|
22
18
|
* Checks if a field definition is a scalar field.
|
|
23
19
|
*
|
|
24
|
-
* @since 1.0.0
|
|
25
20
|
* @category Guards
|
|
26
21
|
*/
|
|
27
22
|
export const isFieldDef = def => def._tag === "field";
|
|
@@ -36,7 +31,6 @@ export const isFieldDef = def => def._tag === "field";
|
|
|
36
31
|
* const NameField = Field.makeField("name", Schema.String)
|
|
37
32
|
* ```
|
|
38
33
|
*
|
|
39
|
-
* @since 1.0.0
|
|
40
34
|
* @category Constructors
|
|
41
35
|
*/
|
|
42
36
|
export const makeField = (key, schema) => ({
|
|
@@ -62,7 +56,6 @@ export const makeField = (key, schema) => ({
|
|
|
62
56
|
* }))
|
|
63
57
|
* ```
|
|
64
58
|
*
|
|
65
|
-
* @since 1.0.0
|
|
66
59
|
* @category Constructors
|
|
67
60
|
*/
|
|
68
61
|
export const makeArrayField = (key, itemSchema) => ({
|
|
@@ -73,7 +66,6 @@ export const makeArrayField = (key, itemSchema) => ({
|
|
|
73
66
|
/**
|
|
74
67
|
* Gets a default encoded value from a schema.
|
|
75
68
|
*
|
|
76
|
-
* @since 1.0.0
|
|
77
69
|
* @category Helpers
|
|
78
70
|
*/
|
|
79
71
|
export const getDefaultFromSchema = schema => {
|
|
@@ -107,7 +99,6 @@ export const getDefaultFromSchema = schema => {
|
|
|
107
99
|
/**
|
|
108
100
|
* Gets default encoded values for a fields record.
|
|
109
101
|
*
|
|
110
|
-
* @since 1.0.0
|
|
111
102
|
* @category Helpers
|
|
112
103
|
*/
|
|
113
104
|
export const getDefaultEncodedValues = fields => {
|
|
@@ -124,7 +115,6 @@ export const getDefaultEncodedValues = fields => {
|
|
|
124
115
|
/**
|
|
125
116
|
* Creates a touched record with all fields set to the given value.
|
|
126
117
|
*
|
|
127
|
-
* @since 1.0.0
|
|
128
118
|
* @category Helpers
|
|
129
119
|
*/
|
|
130
120
|
export const createTouchedRecord = (fields, value) => {
|
package/dist/esm/Field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.js","names":["Schema","TypeId","Symbol","for","isArrayFieldDef","def","_tag","isFieldDef","makeField","key","schema","makeArrayField","itemSchema","getDefaultFromSchema","ast","result","prop","propertySignatures","name","make","type","from","f","getDefaultEncodedValues","fields","Object","entries","createTouchedRecord","value","keys"],"sources":["../../src/Field.ts"],"sourcesContent":[null],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Field.js","names":["Schema","TypeId","Symbol","for","isArrayFieldDef","def","_tag","isFieldDef","makeField","key","schema","makeArrayField","itemSchema","getDefaultFromSchema","ast","result","prop","propertySignatures","name","make","type","from","f","getDefaultEncodedValues","fields","Object","entries","createTouchedRecord","value","keys"],"sources":["../../src/Field.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;;AAKA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,iCAAiC,CAAC;AA2ClF;;;;;AAKA,OAAO,MAAMC,eAAe,GAAIC,GAAgB,IAC9CA,GAAG,CAACC,IAAI,KAAK,OAAO;AAEtB;;;;;AAKA,OAAO,MAAMC,UAAU,GAAIF,GAAgB,IAAiDA,GAAG,CAACC,IAAI,KAAK,OAAO;AAEhH;;;;;;;;;;;;;AAaA,OAAO,MAAME,SAAS,GAAGA,CACvBC,GAAM,EACNC,MAAS,MACW;EACpBJ,IAAI,EAAE,OAAO;EACbG,GAAG;EACHC;CACD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMC,cAAc,GAAGA,CAC5BF,GAAM,EACNG,UAAa,MACY;EACzBN,IAAI,EAAE,OAAO;EACbG,GAAG;EACHG;CACD,CAAC;AAwBF;;;;;AAKA,OAAO,MAAMC,oBAAoB,GAAIH,MAAyB,IAAa;EACzE,MAAMI,GAAG,GAAGJ,MAAM,CAACI,GAAG;EACtB,QAAQA,GAAG,CAACR,IAAI;IACd,KAAK,eAAe;IACpB,KAAK,iBAAiB;MACpB,OAAO,EAAE;IACX,KAAK,eAAe;MAClB,OAAO,CAAC;IACV,KAAK,gBAAgB;MACnB,OAAO,KAAK;IACd,KAAK,aAAa;MAAE;QAClB,MAAMS,MAAM,GAA4B,EAAE;QAC1C,KAAK,MAAMC,IAAI,IAAIF,GAAG,CAACG,kBAAkB,EAAE;UACzCF,MAAM,CAACC,IAAI,CAACE,IAAc,CAAC,GAAGL,oBAAoB,CAACb,MAAM,CAACmB,IAAI,CAACH,IAAI,CAACI,IAAI,CAAC,CAAC;QAC5E;QACA,OAAOL,MAAM;MACf;IACA,KAAK,gBAAgB;MACnB,OAAOF,oBAAoB,CAACb,MAAM,CAACmB,IAAI,CAACL,GAAG,CAACO,IAAI,CAAC,CAAC;IACpD,KAAK,YAAY;MACf,OAAOR,oBAAoB,CAACb,MAAM,CAACmB,IAAI,CAACL,GAAG,CAACO,IAAI,CAAC,CAAC;IACpD,KAAK,SAAS;MACZ,OAAOR,oBAAoB,CAACb,MAAM,CAACmB,IAAI,CAACL,GAAG,CAACQ,CAAC,EAAE,CAAC,CAAC;IACnD;MACE,OAAO,EAAE;EACb;AACF,CAAC;AAED;;;;;AAKA,OAAO,MAAMC,uBAAuB,GAAIC,MAAoB,IAA6B;EACvF,MAAMT,MAAM,GAA4B,EAAE;EAC1C,KAAK,MAAM,CAACN,GAAG,EAAEJ,GAAG,CAAC,IAAIoB,MAAM,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IAC/C,IAAIpB,eAAe,CAACC,GAAG,CAAC,EAAE;MACxBU,MAAM,CAACN,GAAG,CAAC,GAAG,EAAE;IAClB,CAAC,MAAM;MACLM,MAAM,CAACN,GAAG,CAAC,GAAG,EAAE;IAClB;EACF;EACA,OAAOM,MAAM;AACf,CAAC;AAED;;;;;AAKA,OAAO,MAAMY,mBAAmB,GAAGA,CAACH,MAAoB,EAAEI,KAAc,KAA6B;EACnG,MAAMb,MAAM,GAA4B,EAAE;EAC1C,KAAK,MAAMN,GAAG,IAAIgB,MAAM,CAACI,IAAI,CAACL,MAAM,CAAC,EAAE;IACrCT,MAAM,CAACN,GAAG,CAAC,GAAGmB,KAAK;EACrB;EACA,OAAOb,MAAM;AACf,CAAC","ignoreList":[]}
|
package/dist/esm/FormAtoms.js
CHANGED
|
@@ -6,8 +6,8 @@ import * as Schema from "effect/Schema";
|
|
|
6
6
|
import * as Field from "./Field.js";
|
|
7
7
|
import * as FormBuilder from "./FormBuilder.js";
|
|
8
8
|
import { recalculateDirtyFieldsForArray, recalculateDirtySubtree } from "./internal/dirty.js";
|
|
9
|
-
import { getNestedValue, isPathUnderRoot, setNestedValue } from "./internal/path.js";
|
|
10
9
|
import { createWeakRegistry } from "./internal/weak-registry.js";
|
|
10
|
+
import { getNestedValue, isPathUnderRoot, setNestedValue } from "./Path.js";
|
|
11
11
|
import * as Validation from "./Validation.js";
|
|
12
12
|
/**
|
|
13
13
|
* Creates the complete form atoms infrastructure.
|
|
@@ -32,7 +32,6 @@ import * as Validation from "./Validation.js";
|
|
|
32
32
|
* })
|
|
33
33
|
* ```
|
|
34
34
|
*
|
|
35
|
-
* @since 1.0.0
|
|
36
35
|
* @category Constructors
|
|
37
36
|
*/
|
|
38
37
|
export const make = config => {
|
|
@@ -109,7 +108,7 @@ export const make = config => {
|
|
|
109
108
|
validationAtomsRegistry.clear();
|
|
110
109
|
fieldAtomsRegistry.clear();
|
|
111
110
|
};
|
|
112
|
-
const submitAtom = runtime.fn()((
|
|
111
|
+
const submitAtom = runtime.fn()((args, get) => Effect.gen(function* () {
|
|
113
112
|
const state = get(stateAtom);
|
|
114
113
|
if (Option.isNone(state)) return yield* Effect.die("Form not initialized");
|
|
115
114
|
const values = state.value.values;
|
|
@@ -127,7 +126,11 @@ export const make = config => {
|
|
|
127
126
|
decoded
|
|
128
127
|
})
|
|
129
128
|
}));
|
|
130
|
-
const result = config.onSubmit(
|
|
129
|
+
const result = config.onSubmit(args, {
|
|
130
|
+
decoded,
|
|
131
|
+
encoded: values,
|
|
132
|
+
get
|
|
133
|
+
});
|
|
131
134
|
if (Effect.isEffect(result)) {
|
|
132
135
|
return yield* result;
|
|
133
136
|
}
|