@lucas-barake/effect-form 0.4.0 → 0.6.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.
@@ -5,12 +5,10 @@
5
5
  */
6
6
  export * as Field from "./Field.js";
7
7
  /**
8
- * Atom infrastructure for form state management.
9
- *
10
- * This module provides the core atom infrastructure that framework adapters
11
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
8
+ * Atoms for a single field.
12
9
  *
13
10
  * @since 1.0.0
11
+ * @category Models
14
12
  */
15
13
  export * as FormAtoms from "./FormAtoms.js";
16
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;;;GAOG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;GAKG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internal/dirty.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,OAAO,EACtB,WAAW,MAAM,EACjB,UAAU,aAAa,CAAC,OAAO,CAAC,KAC/B,WAAW,CAAC,MAAM,CA4BpB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,YAAY,OAAO,EACnB,WAAW,OAAO,EAClB,WAAU,MAAW,KACpB,WAAW,CAAC,MAAM,CAoCpB,CAAA"}
1
+ {"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internal/dirty.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,OAAO,EACtB,WAAW,MAAM,EACjB,UAAU,aAAa,CAAC,OAAO,CAAC,KAC/B,WAAW,CAAC,MAAM,CAgCpB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,YAAY,OAAO,EACnB,WAAW,OAAO,EAClB,WAAU,MAAW,KACpB,WAAW,CAAC,MAAM,CA0DpB,CAAA"}
@@ -10,6 +10,16 @@
10
10
  * schemaPathToFieldPath(["items", 0, "name"]) // "items[0].name"
11
11
  */
12
12
  export declare const schemaPathToFieldPath: (path: ReadonlyArray<PropertyKey>) => string;
13
+ /**
14
+ * Checks if a path matches a root path or is a descendant of it.
15
+ * Handles both dot notation (root.child) and bracket notation (root[0]).
16
+ *
17
+ * @example
18
+ * isPathUnderRoot("items[0].name", "items[0]") // true
19
+ * isPathUnderRoot("items[0].name", "items") // true
20
+ * isPathUnderRoot("other", "items") // false
21
+ */
22
+ export declare const isPathUnderRoot: (path: string, rootPath: string) => boolean;
13
23
  /**
14
24
  * Checks if a field path or any of its parent paths are in the dirty set.
15
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/internal/path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,aAAa,CAAC,WAAW,CAAC,KAAG,MAaxE,CAAA;AAED;;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"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/internal/path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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"}
@@ -1,11 +1,3 @@
1
- /**
2
- * Atom infrastructure for form state management.
3
- *
4
- * This module provides the core atom infrastructure that framework adapters
5
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
6
- *
7
- * @since 1.0.0
8
- */
9
1
  import * as Atom from "@effect-atom/atom/Atom";
10
2
  import * as Effect from "effect/Effect";
11
3
  import { pipe } from "effect/Function";
@@ -14,8 +6,9 @@ import * as Schema from "effect/Schema";
14
6
  import * as Field from "./Field.js";
15
7
  import * as FormBuilder from "./FormBuilder.js";
16
8
  import { recalculateDirtyFieldsForArray, recalculateDirtySubtree } from "./internal/dirty.js";
17
- import { getNestedValue, setNestedValue } from "./internal/path.js";
9
+ import { getNestedValue, isPathUnderRoot, setNestedValue } from "./internal/path.js";
18
10
  import { createWeakRegistry } from "./internal/weak-registry.js";
11
+ import * as Validation from "./Validation.js";
19
12
  /**
20
13
  * Creates the complete form atoms infrastructure.
21
14
  *
@@ -61,16 +54,15 @@ export const make = config => {
61
54
  const state = Option.getOrThrow(get(stateAtom));
62
55
  return Option.match(state.lastSubmittedValues, {
63
56
  onNone: () => new Set(),
64
- onSome: lastSubmitted => recalculateDirtySubtree(new Set(), lastSubmitted, state.values, "")
57
+ onSome: lastSubmitted => recalculateDirtySubtree(new Set(), lastSubmitted.encoded, state.values, "")
65
58
  });
66
59
  }).pipe(Atom.setIdleTTL(0));
67
60
  const hasChangedSinceSubmitAtom = Atom.readable(get => {
68
61
  const state = Option.getOrThrow(get(stateAtom));
69
62
  if (Option.isNone(state.lastSubmittedValues)) return false;
70
- if (state.values === state.lastSubmittedValues.value) return false;
63
+ if (state.values === state.lastSubmittedValues.value.encoded) return false;
71
64
  return get(changedSinceSubmitFieldsAtom).size > 0;
72
65
  }).pipe(Atom.setIdleTTL(0));
73
- const onSubmitAtom = Atom.make(null).pipe(Atom.setIdleTTL(0));
74
66
  const validationAtomsRegistry = createWeakRegistry();
75
67
  const fieldAtomsRegistry = createWeakRegistry();
76
68
  const getOrCreateValidationAtom = (fieldPath, schema) => {
@@ -85,12 +77,7 @@ export const make = config => {
85
77
  if (existing) return existing;
86
78
  const valueAtom = Atom.writable(get => getNestedValue(Option.getOrThrow(get(stateAtom)).values, fieldPath), (ctx, value) => {
87
79
  const currentState = Option.getOrThrow(ctx.get(stateAtom));
88
- const newValues = setNestedValue(currentState.values, fieldPath, value);
89
- ctx.set(stateAtom, Option.some({
90
- ...currentState,
91
- values: newValues,
92
- dirtyFields: recalculateDirtySubtree(currentState.dirtyFields, currentState.initialValues, newValues, fieldPath)
93
- }));
80
+ ctx.set(stateAtom, Option.some(operations.setFieldValue(currentState, fieldPath, value)));
94
81
  }).pipe(Atom.setIdleTTL(0));
95
82
  const initialValueAtom = Atom.readable(get => getNestedValue(Option.getOrThrow(get(stateAtom)).initialValues, fieldPath)).pipe(Atom.setIdleTTL(0));
96
83
  const touchedAtom = Atom.writable(get => getNestedValue(Option.getOrThrow(get(stateAtom)).touched, fieldPath) ?? false, (ctx, value) => {
@@ -114,20 +101,36 @@ export const make = config => {
114
101
  fieldAtomsRegistry.set(fieldPath, atoms);
115
102
  return atoms;
116
103
  };
117
- const resetValidationAtoms = registry => {
104
+ const resetValidationAtoms = ctx => {
118
105
  for (const validationAtom of validationAtomsRegistry.values()) {
119
- registry.set(validationAtom, Atom.Reset);
106
+ ctx.set(validationAtom, Atom.Reset);
120
107
  }
121
108
  validationAtomsRegistry.clear();
122
109
  fieldAtomsRegistry.clear();
123
110
  };
124
- const decodeAndSubmit = runtime.fn()((values, get) => Effect.gen(function* () {
125
- const decoded = yield* Schema.decodeUnknown(combinedSchema)(values);
126
- const onSubmit = get(onSubmitAtom);
127
- get.set(onSubmit, decoded);
128
- return yield* get.result(onSubmit, {
129
- suspendOnWaiting: true
130
- });
111
+ const submitAtom = runtime.fn()((_void, get) => Effect.gen(function* () {
112
+ const state = get(stateAtom);
113
+ if (Option.isNone(state)) return yield* Effect.die("Form not initialized");
114
+ const values = state.value.values;
115
+ get.set(crossFieldErrorsAtom, new Map());
116
+ const decoded = yield* pipe(Schema.decodeUnknown(combinedSchema)(values), Effect.tapError(parseError => Effect.sync(() => {
117
+ const routedErrors = Validation.routeErrors(parseError);
118
+ get.set(crossFieldErrorsAtom, routedErrors);
119
+ get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
120
+ })));
121
+ const submitState = operations.createSubmitState(state.value);
122
+ get.set(stateAtom, Option.some({
123
+ ...submitState,
124
+ lastSubmittedValues: Option.some({
125
+ encoded: values,
126
+ decoded
127
+ })
128
+ }));
129
+ const result = config.onSubmit(decoded, get);
130
+ if (Effect.isEffect(result)) {
131
+ return yield* result;
132
+ }
133
+ return result;
131
134
  })).pipe(Atom.setIdleTTL(0));
132
135
  const fieldRefs = Object.fromEntries(Object.keys(fields).map(key => [key, FormBuilder.makeFieldRef(key)]));
133
136
  const operations = {
@@ -149,7 +152,6 @@ export const make = config => {
149
152
  }),
150
153
  createSubmitState: state => ({
151
154
  ...state,
152
- lastSubmittedValues: Option.some(state.values),
153
155
  touched: Field.createTouchedRecord(fields, true),
154
156
  submitCount: state.submitCount + 1
155
157
  }),
@@ -226,17 +228,70 @@ export const make = config => {
226
228
  if (Option.isNone(state.lastSubmittedValues)) {
227
229
  return state;
228
230
  }
229
- if (state.values === state.lastSubmittedValues.value) {
231
+ const lastEncoded = state.lastSubmittedValues.value.encoded;
232
+ if (state.values === lastEncoded) {
230
233
  return state;
231
234
  }
232
- const newDirtyFields = recalculateDirtySubtree(state.dirtyFields, state.initialValues, state.lastSubmittedValues.value, "");
235
+ const newDirtyFields = recalculateDirtySubtree(state.dirtyFields, state.initialValues, lastEncoded, "");
233
236
  return {
234
237
  ...state,
235
- values: state.lastSubmittedValues.value,
238
+ values: lastEncoded,
236
239
  dirtyFields: newDirtyFields
237
240
  };
238
241
  }
239
242
  };
243
+ const resetAtom = Atom.fnSync()((_, get) => {
244
+ const state = get(stateAtom);
245
+ if (Option.isNone(state)) return;
246
+ get.set(stateAtom, Option.some(operations.createResetState(state.value)));
247
+ get.set(crossFieldErrorsAtom, new Map());
248
+ resetValidationAtoms(get);
249
+ get.set(submitAtom, Atom.Reset);
250
+ }, {
251
+ initialValue: undefined
252
+ }).pipe(Atom.setIdleTTL(0));
253
+ const revertToLastSubmitAtom = Atom.fnSync()((_, get) => {
254
+ const state = get(stateAtom);
255
+ if (Option.isNone(state)) return;
256
+ get.set(stateAtom, Option.some(operations.revertToLastSubmit(state.value)));
257
+ get.set(crossFieldErrorsAtom, new Map());
258
+ }, {
259
+ initialValue: undefined
260
+ }).pipe(Atom.setIdleTTL(0));
261
+ const setValuesAtom = Atom.fnSync()((_values, get) => {
262
+ const state = get(stateAtom);
263
+ if (Option.isNone(state)) return;
264
+ get.set(stateAtom, Option.some(operations.setFormValues(state.value, _values)));
265
+ get.set(crossFieldErrorsAtom, new Map());
266
+ }, {
267
+ initialValue: undefined
268
+ }).pipe(Atom.setIdleTTL(0));
269
+ const setValueAtomsRegistry = createWeakRegistry();
270
+ const setValue = field => {
271
+ const cached = setValueAtomsRegistry.get(field.key);
272
+ if (cached) return cached;
273
+ const atom = Atom.fnSync()((update, get) => {
274
+ const state = get(stateAtom);
275
+ if (Option.isNone(state)) return;
276
+ const currentValue = getNestedValue(state.value.values, field.key);
277
+ const newValue = typeof update === "function" ? update(currentValue) : update;
278
+ get.set(stateAtom, Option.some(operations.setFieldValue(state.value, field.key, newValue)));
279
+ const currentErrors = get(crossFieldErrorsAtom);
280
+ const nextErrors = new Map();
281
+ for (const [errorPath, message] of currentErrors) {
282
+ if (!isPathUnderRoot(errorPath, field.key)) {
283
+ nextErrors.set(errorPath, message);
284
+ }
285
+ }
286
+ if (nextErrors.size !== currentErrors.size) {
287
+ get.set(crossFieldErrorsAtom, nextErrors);
288
+ }
289
+ }, {
290
+ initialValue: undefined
291
+ }).pipe(Atom.setIdleTTL(0));
292
+ setValueAtomsRegistry.set(field.key, atom);
293
+ return atom;
294
+ };
240
295
  return {
241
296
  stateAtom,
242
297
  crossFieldErrorsAtom,
@@ -246,8 +301,7 @@ export const make = config => {
246
301
  lastSubmittedValuesAtom,
247
302
  changedSinceSubmitFieldsAtom,
248
303
  hasChangedSinceSubmitAtom,
249
- onSubmitAtom,
250
- decodeAndSubmit,
304
+ submitAtom,
251
305
  combinedSchema,
252
306
  fieldRefs,
253
307
  validationAtomsRegistry,
@@ -255,7 +309,11 @@ export const make = config => {
255
309
  getOrCreateValidationAtom,
256
310
  getOrCreateFieldAtoms,
257
311
  resetValidationAtoms,
258
- operations
312
+ operations,
313
+ resetAtom,
314
+ revertToLastSubmitAtom,
315
+ setValuesAtom,
316
+ setValue
259
317
  };
260
318
  };
261
319
  //# sourceMappingURL=FormAtoms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","getNestedValue","setNestedValue","createWeakRegistry","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","get","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","values","hasChangedSinceSubmitAtom","isNone","value","onSubmitAtom","validationAtomsRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","ctx","currentState","newValues","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","registry","Reset","clear","decodeAndSubmit","gen","decoded","onSubmit","result","suspendOnWaiting","fieldRefs","Object","fromEntries","keys","map","key","makeFieldRef","operations","createInitialState","defaultValues","createTouchedRecord","createResetState","createSubmitState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","removeArrayItem","index","filter","_","i","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","getNestedValue","isPathUnderRoot","setNestedValue","createWeakRegistry","Validation","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","get","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","encoded","values","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","ctx","currentState","some","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","Object","fromEntries","keys","map","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","removeArrayItem","index","filter","_","i","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","lastEncoded","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormBuilder.js","names":["Predicate","Schema","isArrayFieldDef","isFieldDef","FieldTypeId","Symbol","for","makeFieldRef","key","_S","undefined","TypeId","FormBuilderProto","addField","field","newSelf","Object","create","fields","refinements","merge","other","refine","predicate","_tag","fn","values","refineEffect","isFormBuilder","u","hasProperty","empty","self","buildSchema","schemaFields","def","entries","Array","itemSchema","schema","Struct","refinement","pipe","filter","filterEffect"],"sources":["../../src/FormBuilder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormBuilder.js","names":["Predicate","Schema","isArrayFieldDef","isFieldDef","FieldTypeId","Symbol","for","makeFieldRef","key","_S","undefined","TypeId","FormBuilderProto","addField","field","newSelf","Object","create","fields","refinements","merge","other","refine","predicate","_tag","fn","values","refineEffect","isFormBuilder","u","hasProperty","empty","self","buildSchema","schemaFields","def","entries","Array","itemSchema","schema","Struct","refinement","pipe","filter","filterEffect"],"sources":["../../src/FormBuilder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -5,12 +5,10 @@
5
5
  */
6
6
  export * as Field from "./Field.js";
7
7
  /**
8
- * Atom infrastructure for form state management.
9
- *
10
- * This module provides the core atom infrastructure that framework adapters
11
- * (React, Vue, Svelte, Solid) can use to build reactive form components.
8
+ * Atoms for a single field.
12
9
  *
13
10
  * @since 1.0.0
11
+ * @category Models
14
12
  */
15
13
  export * as FormAtoms from "./FormAtoms.js";
16
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Field","FormAtoms","FormBuilder","Mode","Validation"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnC;;;;;;;;AAQA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;;AAKA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;;;AAKA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Field","FormAtoms","FormBuilder","Mode","Validation"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnC;;;;;;AAMA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;;AAKA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;;;AAKA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
@@ -5,19 +5,23 @@
5
5
  */
6
6
  import * as Equal from "effect/Equal";
7
7
  import * as Utils from "effect/Utils";
8
- import { getNestedValue } from "./path.js";
8
+ import { getNestedValue, isPathUnderRoot } from "./path.js";
9
9
  /**
10
10
  * Recalculates dirty fields for an array after mutation.
11
11
  * Clears all paths under the array and re-evaluates each item.
12
12
  */
13
13
  export const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, arrayPath, newItems) => {
14
- const nextDirty = new Set(Array.from(dirtyFields).filter(path => path !== arrayPath && !path.startsWith(arrayPath + ".") && !path.startsWith(arrayPath + "[")));
15
14
  const initialItems = getNestedValue(initialValues, arrayPath) ?? [];
15
+ if (newItems === initialItems) {
16
+ return dirtyFields;
17
+ }
18
+ const nextDirty = new Set(Array.from(dirtyFields).filter(path => !isPathUnderRoot(path, arrayPath)));
16
19
  const loopLength = Math.max(newItems.length, initialItems.length);
17
20
  for (let i = 0; i < loopLength; i++) {
18
21
  const itemPath = `${arrayPath}[${i}]`;
19
22
  const newItem = newItems[i];
20
23
  const initialItem = initialItems[i];
24
+ if (newItem === initialItem) continue;
21
25
  const isEqual = Utils.structuralRegion(() => Equal.equals(newItem, initialItem));
22
26
  if (!isEqual) {
23
27
  nextDirty.add(itemPath);
@@ -37,19 +41,34 @@ export const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, array
37
41
  * @param rootPath - Empty string for full form, or a specific path for targeted update
38
42
  */
39
43
  export const recalculateDirtySubtree = (currentDirty, allInitial, allValues, rootPath = "") => {
44
+ const targetValue = rootPath ? getNestedValue(allValues, rootPath) : allValues;
45
+ const targetInitial = rootPath ? getNestedValue(allInitial, rootPath) : allInitial;
46
+ if (targetValue === targetInitial) {
47
+ if (rootPath === "") {
48
+ return new Set();
49
+ }
50
+ let changed = false;
51
+ const nextDirty = new Set(currentDirty);
52
+ for (const path of currentDirty) {
53
+ if (isPathUnderRoot(path, rootPath)) {
54
+ nextDirty.delete(path);
55
+ changed = true;
56
+ }
57
+ }
58
+ return changed ? nextDirty : currentDirty;
59
+ }
40
60
  const nextDirty = new Set(currentDirty);
41
61
  if (rootPath === "") {
42
62
  nextDirty.clear();
43
63
  } else {
44
64
  for (const path of nextDirty) {
45
- if (path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[")) {
65
+ if (isPathUnderRoot(path, rootPath)) {
46
66
  nextDirty.delete(path);
47
67
  }
48
68
  }
49
69
  }
50
- const targetValue = rootPath ? getNestedValue(allValues, rootPath) : allValues;
51
- const targetInitial = rootPath ? getNestedValue(allInitial, rootPath) : allInitial;
52
70
  const recurse = (current, initial, path) => {
71
+ if (current === initial) return;
53
72
  if (Array.isArray(current)) {
54
73
  const initialArr = initial ?? [];
55
74
  for (let i = 0; i < Math.max(current.length, initialArr.length); i++) {
@@ -57,10 +76,14 @@ export const recalculateDirtySubtree = (currentDirty, allInitial, allValues, roo
57
76
  }
58
77
  } else if (current !== null && typeof current === "object") {
59
78
  const initialObj = initial ?? {};
60
- const allKeys = new Set([...Object.keys(current), ...Object.keys(initialObj)]);
61
- for (const key of allKeys) {
79
+ for (const key in current) {
62
80
  recurse(current[key], initialObj[key], path ? `${path}.${key}` : key);
63
81
  }
82
+ for (const key in initialObj) {
83
+ if (!(key in current)) {
84
+ recurse(undefined, initialObj[key], path ? `${path}.${key}` : key);
85
+ }
86
+ }
64
87
  } else {
65
88
  const isEqual = Utils.structuralRegion(() => Equal.equals(current, initial));
66
89
  if (!isEqual && path) nextDirty.add(path);
@@ -1 +1 @@
1
- {"version":3,"file":"dirty.js","names":["Equal","Utils","getNestedValue","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","startsWith","initialItems","loopLength","Math","max","length","i","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","clear","targetValue","targetInitial","recurse","current","initial","isArray","initialArr","initialObj","allKeys","Object","keys","key"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dirty.js","names":["Equal","Utils","getNestedValue","isPathUnderRoot","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","initialItems","nextDirty","Set","Array","from","filter","path","loopLength","Math","max","length","i","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","targetValue","targetInitial","changed","clear","recurse","current","initial","isArray","initialArr","initialObj","key","undefined"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,cAAc,EAAEC,eAAe,QAAQ,WAAW;AAE3D;;;;AAIA,OAAO,MAAMC,8BAA8B,GAAGA,CAC5CC,WAAgC,EAChCC,aAAsB,EACtBC,SAAiB,EACjBC,QAAgC,KACT;EACvB,MAAMC,YAAY,GAAIP,cAAc,CAACI,aAAa,EAAEC,SAAS,CAAC,IAAI,EAA6B;EAE/F,IAAIC,QAAQ,KAAKC,YAAY,EAAE;IAC7B,OAAOJ,WAAW;EACpB;EAEA,MAAMK,SAAS,GAAG,IAAIC,GAAG,CACvBC,KAAK,CAACC,IAAI,CAACR,WAAW,CAAC,CAACS,MAAM,CAAEC,IAAI,IAAK,CAACZ,eAAe,CAACY,IAAI,EAAER,SAAS,CAAC,CAAC,CAC5E;EAED,MAAMS,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACV,QAAQ,CAACW,MAAM,EAAEV,YAAY,CAACU,MAAM,CAAC;EACjE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,UAAU,EAAEI,CAAC,EAAE,EAAE;IACnC,MAAMC,QAAQ,GAAG,GAAGd,SAAS,IAAIa,CAAC,GAAG;IACrC,MAAME,OAAO,GAAGd,QAAQ,CAACY,CAAC,CAAC;IAC3B,MAAMG,WAAW,GAAGd,YAAY,CAACW,CAAC,CAAC;IAEnC,IAAIE,OAAO,KAAKC,WAAW,EAAE;IAE7B,MAAMC,OAAO,GAAGvB,KAAK,CAACwB,gBAAgB,CAAC,MAAMzB,KAAK,CAAC0B,MAAM,CAACJ,OAAO,EAAEC,WAAW,CAAC,CAAC;IAChF,IAAI,CAACC,OAAO,EAAE;MACZd,SAAS,CAACiB,GAAG,CAACN,QAAQ,CAAC;IACzB;EACF;EAEA,IAAIb,QAAQ,CAACW,MAAM,KAAKV,YAAY,CAACU,MAAM,EAAE;IAC3CT,SAAS,CAACiB,GAAG,CAACpB,SAAS,CAAC;EAC1B,CAAC,MAAM;IACLG,SAAS,CAACkB,MAAM,CAACrB,SAAS,CAAC;EAC7B;EAEA,OAAOG,SAAS;AAClB,CAAC;AAED;;;;;;AAMA,OAAO,MAAMmB,uBAAuB,GAAGA,CACrCC,YAAiC,EACjCC,UAAmB,EACnBC,SAAkB,EAClBC,QAAA,GAAmB,EAAE,KACE;EACvB,MAAMC,WAAW,GAAGD,QAAQ,GAAG/B,cAAc,CAAC8B,SAAS,EAAEC,QAAQ,CAAC,GAAGD,SAAS;EAC9E,MAAMG,aAAa,GAAGF,QAAQ,GAAG/B,cAAc,CAAC6B,UAAU,EAAEE,QAAQ,CAAC,GAAGF,UAAU;EAElF,IAAIG,WAAW,KAAKC,aAAa,EAAE;IACjC,IAAIF,QAAQ,KAAK,EAAE,EAAE;MACnB,OAAO,IAAItB,GAAG,EAAE;IAClB;IAEA,IAAIyB,OAAO,GAAG,KAAK;IACnB,MAAM1B,SAAS,GAAG,IAAIC,GAAG,CAACmB,YAAY,CAAC;IACvC,KAAK,MAAMf,IAAI,IAAIe,YAAY,EAAE;MAC/B,IAAI3B,eAAe,CAACY,IAAI,EAAEkB,QAAQ,CAAC,EAAE;QACnCvB,SAAS,CAACkB,MAAM,CAACb,IAAI,CAAC;QACtBqB,OAAO,GAAG,IAAI;MAChB;IACF;IACA,OAAOA,OAAO,GAAG1B,SAAS,GAAGoB,YAAY;EAC3C;EAEA,MAAMpB,SAAS,GAAG,IAAIC,GAAG,CAACmB,YAAY,CAAC;EAEvC,IAAIG,QAAQ,KAAK,EAAE,EAAE;IACnBvB,SAAS,CAAC2B,KAAK,EAAE;EACnB,CAAC,MAAM;IACL,KAAK,MAAMtB,IAAI,IAAIL,SAAS,EAAE;MAC5B,IAAIP,eAAe,CAACY,IAAI,EAAEkB,QAAQ,CAAC,EAAE;QACnCvB,SAAS,CAACkB,MAAM,CAACb,IAAI,CAAC;MACxB;IACF;EACF;EAEA,MAAMuB,OAAO,GAAGA,CAACC,OAAgB,EAAEC,OAAgB,EAAEzB,IAAY,KAAU;IACzE,IAAIwB,OAAO,KAAKC,OAAO,EAAE;IAEzB,IAAI5B,KAAK,CAAC6B,OAAO,CAACF,OAAO,CAAC,EAAE;MAC1B,MAAMG,UAAU,GAAIF,OAAO,IAAI,EAA6B;MAC5D,KAAK,IAAIpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACC,GAAG,CAACqB,OAAO,CAACpB,MAAM,EAAEuB,UAAU,CAACvB,MAAM,CAAC,EAAEC,CAAC,EAAE,EAAE;QACpEkB,OAAO,CAACC,OAAO,CAACnB,CAAC,CAAC,EAAEsB,UAAU,CAACtB,CAAC,CAAC,EAAEL,IAAI,GAAG,GAAGA,IAAI,IAAIK,CAAC,GAAG,GAAG,IAAIA,CAAC,GAAG,CAAC;MACvE;IACF,CAAC,MAAM,IAAImB,OAAO,KAAK,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC1D,MAAMI,UAAU,GAAIH,OAAO,IAAI,EAA8B;MAC7D,KAAK,MAAMI,GAAG,IAAIL,OAAiB,EAAE;QACnCD,OAAO,CAAEC,OAAmC,CAACK,GAAG,CAAC,EAAED,UAAU,CAACC,GAAG,CAAC,EAAE7B,IAAI,GAAG,GAAGA,IAAI,IAAI6B,GAAG,EAAE,GAAGA,GAAG,CAAC;MACpG;MACA,KAAK,MAAMA,GAAG,IAAID,UAAU,EAAE;QAC5B,IAAI,EAAEC,GAAG,IAAKL,OAAkB,CAAC,EAAE;UACjCD,OAAO,CAACO,SAAS,EAAEF,UAAU,CAACC,GAAG,CAAC,EAAE7B,IAAI,GAAG,GAAGA,IAAI,IAAI6B,GAAG,EAAE,GAAGA,GAAG,CAAC;QACpE;MACF;IACF,CAAC,MAAM;MACL,MAAMpB,OAAO,GAAGvB,KAAK,CAACwB,gBAAgB,CAAC,MAAMzB,KAAK,CAAC0B,MAAM,CAACa,OAAO,EAAEC,OAAO,CAAC,CAAC;MAC5E,IAAI,CAAChB,OAAO,IAAIT,IAAI,EAAEL,SAAS,CAACiB,GAAG,CAACZ,IAAI,CAAC;IAC3C;EACF,CAAC;EAEDuB,OAAO,CAACJ,WAAW,EAAEC,aAAa,EAAEF,QAAQ,CAAC;EAC7C,OAAOvB,SAAS;AAClB,CAAC","ignoreList":[]}
@@ -23,6 +23,16 @@ export const schemaPathToFieldPath = path => {
23
23
  }
24
24
  return result;
25
25
  };
26
+ /**
27
+ * Checks if a path matches a root path or is a descendant of it.
28
+ * Handles both dot notation (root.child) and bracket notation (root[0]).
29
+ *
30
+ * @example
31
+ * isPathUnderRoot("items[0].name", "items[0]") // true
32
+ * isPathUnderRoot("items[0].name", "items") // true
33
+ * isPathUnderRoot("other", "items") // false
34
+ */
35
+ export const isPathUnderRoot = (path, rootPath) => path === rootPath || path.startsWith(rootPath + ".") || path.startsWith(rootPath + "[");
26
36
  /**
27
37
  * Checks if a field path or any of its parent paths are in the dirty set.
28
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","names":["BRACKET_NOTATION_REGEX","schemaPathToFieldPath","path","length","result","String","i","segment","isPathOrParentDirty","dirtyFields","has","parent","lastDot","lastIndexOf","lastBracket","splitIndex","Math","max","substring","getNestedValue","obj","parts","replace","split","current","part","undefined","setNestedValue","value","Array","isArray"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"path.js","names":["BRACKET_NOTATION_REGEX","schemaPathToFieldPath","path","length","result","String","i","segment","isPathUnderRoot","rootPath","startsWith","isPathOrParentDirty","dirtyFields","has","parent","lastDot","lastIndexOf","lastBracket","splitIndex","Math","max","substring","getNestedValue","obj","parts","replace","split","current","part","undefined","setNestedValue","value","Array","isArray"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucas-barake/effect-form",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Type-safe form builder powered by Effect Schema",
5
5
  "license": "MIT",
6
6
  "repository": {