@lucas-barake/effect-form 0.25.0-beta.0 → 0.25.0-beta.2

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.
@@ -2,6 +2,7 @@ import type * as Option from "effect/Option";
2
2
  import type * as Schema from "effect/Schema";
3
3
  export type FieldValue<T> = T extends Schema.Top ? Schema.Codec.Encoded<T> : T;
4
4
  export interface FieldState<E> {
5
+ readonly path: string;
5
6
  readonly value: E;
6
7
  readonly onChange: (value: E) => void;
7
8
  readonly onBlur: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"FieldState.d.ts","sourceRoot":"","sources":["../src/FieldState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAK,CAAC,SAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE/E,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACjB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK;IACzC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACvD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD"}
1
+ {"version":3,"file":"FieldState.d.ts","sourceRoot":"","sources":["../src/FieldState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAK,CAAC,SAAS,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE/E,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACjB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK;IACzC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACvD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD"}
package/dist/Mode.d.ts CHANGED
@@ -9,7 +9,7 @@ export type FormMode = {
9
9
  readonly debounce?: never;
10
10
  } | {
11
11
  readonly validation: "onChange";
12
- readonly debounce?: Duration.DurationInput;
12
+ readonly debounce?: Duration.Input;
13
13
  readonly autoSubmit?: boolean;
14
14
  };
15
15
  export type FormModeWithoutAutoSubmit = {
@@ -22,7 +22,7 @@ export type FormModeWithoutAutoSubmit = {
22
22
  readonly debounce?: never;
23
23
  } | {
24
24
  readonly validation: "onChange";
25
- readonly debounce?: Duration.DurationInput;
25
+ readonly debounce?: Duration.Input;
26
26
  readonly autoSubmit?: false;
27
27
  };
28
28
  export interface ParsedMode {
@@ -1 +1 @@
1
- {"version":3,"file":"Mode.d.ts","sourceRoot":"","sources":["../src/Mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC3F;IAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAElH,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GACzF;IAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEhH,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,eAAO,MAAM,KAAK,GAAI,OAAO,QAAQ,KAAG,UAgBvC,CAAA"}
1
+ {"version":3,"file":"Mode.d.ts","sourceRoot":"","sources":["../src/Mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC3F;IAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE1G,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5F;IAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GACzF;IAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAExG,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,eAAO,MAAM,KAAK,GAAI,OAAO,QAAQ,KAAG,UAgBvC,CAAA"}
package/dist/Mode.js CHANGED
@@ -9,7 +9,7 @@ export const parse = mode => {
9
9
  };
10
10
  }
11
11
  if (validation === "onChange") {
12
- const debounceMs = mode?.debounce === undefined ? null : Duration.toMillis(Duration.fromDurationInputUnsafe(mode.debounce));
12
+ const debounceMs = mode?.debounce === undefined ? null : Duration.toMillis(Duration.fromInputUnsafe(mode.debounce));
13
13
  const autoSubmit = mode?.autoSubmit === true;
14
14
  return {
15
15
  validation: "onChange",
package/dist/Mode.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Mode.js","names":["Duration","parse","mode","validation","debounce","autoSubmit","debounceMs","undefined","toMillis","fromDurationInputUnsafe"],"sources":["../src/Mode.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAkB3C,OAAO,MAAMC,KAAK,GAAIC,IAAe,IAAgB;EACnD,MAAMC,UAAU,GAAGD,IAAI,EAAEC,UAAU,IAAI,UAAU;EAEjD,IAAIA,UAAU,KAAK,QAAQ,EAAE;IAC3B,OAAO;MAAEA,UAAU,EAAE,QAAQ;MAAEC,QAAQ,EAAE,IAAI;MAAEC,UAAU,EAAEH,IAAI,EAAEG,UAAU,KAAK;IAAI,CAAE;EACxF;EAEA,IAAIF,UAAU,KAAK,UAAU,EAAE;IAC7B,MAAMG,UAAU,GAAGJ,IAAI,EAAEE,QAAQ,KAAKG,SAAS,GAC3C,IAAI,GACJP,QAAQ,CAACQ,QAAQ,CAACR,QAAQ,CAACS,uBAAuB,CAACP,IAAI,CAACE,QAAQ,CAAC,CAAC;IACtE,MAAMC,UAAU,GAAGH,IAAI,EAAEG,UAAU,KAAK,IAAI;IAC5C,OAAO;MAAEF,UAAU,EAAE,UAAU;MAAEC,QAAQ,EAAEE,UAAU;MAAED;IAAU,CAAE;EACrE;EAEA,OAAO;IAAEF,UAAU,EAAE,UAAU;IAAEC,QAAQ,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAK,CAAE;AACtE,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Mode.js","names":["Duration","parse","mode","validation","debounce","autoSubmit","debounceMs","undefined","toMillis","fromInputUnsafe"],"sources":["../src/Mode.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAkB3C,OAAO,MAAMC,KAAK,GAAIC,IAAe,IAAgB;EACnD,MAAMC,UAAU,GAAGD,IAAI,EAAEC,UAAU,IAAI,UAAU;EAEjD,IAAIA,UAAU,KAAK,QAAQ,EAAE;IAC3B,OAAO;MAAEA,UAAU,EAAE,QAAQ;MAAEC,QAAQ,EAAE,IAAI;MAAEC,UAAU,EAAEH,IAAI,EAAEG,UAAU,KAAK;IAAI,CAAE;EACxF;EAEA,IAAIF,UAAU,KAAK,UAAU,EAAE;IAC7B,MAAMG,UAAU,GAAGJ,IAAI,EAAEE,QAAQ,KAAKG,SAAS,GAC3C,IAAI,GACJP,QAAQ,CAACQ,QAAQ,CAACR,QAAQ,CAACS,eAAe,CAACP,IAAI,CAACE,QAAQ,CAAC,CAAC;IAC9D,MAAMC,UAAU,GAAGH,IAAI,EAAEG,UAAU,KAAK,IAAI;IAC5C,OAAO;MAAEF,UAAU,EAAE,UAAU;MAAEC,QAAQ,EAAEE,UAAU;MAAED;IAAU,CAAE;EACrE;EAEA,OAAO;IAAEF,UAAU,EAAE,UAAU;IAAEC,QAAQ,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAK,CAAE;AACtE,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucas-barake/effect-form",
3
- "version": "0.25.0-beta.0",
3
+ "version": "0.25.0-beta.2",
4
4
  "description": "Type-safe form builder powered by Effect Schema",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -36,7 +36,7 @@
36
36
  "license": "MIT",
37
37
  "sideEffects": [],
38
38
  "peerDependencies": {
39
- "effect": "^4.0.0-beta.0"
39
+ "effect": "4.0.0-beta.14"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsc -b tsconfig.json && pnpm babel",
package/src/FieldState.ts CHANGED
@@ -4,6 +4,7 @@ import type * as Schema from "effect/Schema"
4
4
  export type FieldValue<T,> = T extends Schema.Top ? Schema.Codec.Encoded<T> : T
5
5
 
6
6
  export interface FieldState<E,> {
7
+ readonly path: string
7
8
  readonly value: E
8
9
  readonly onChange: (value: E) => void
9
10
  readonly onBlur: () => void
package/src/Mode.ts CHANGED
@@ -3,12 +3,12 @@ import * as Duration from "effect/Duration"
3
3
  export type FormMode =
4
4
  | { readonly validation?: "onSubmit"; readonly autoSubmit?: false; readonly debounce?: never }
5
5
  | { readonly validation: "onBlur"; readonly autoSubmit?: boolean; readonly debounce?: never }
6
- | { readonly validation: "onChange"; readonly debounce?: Duration.DurationInput; readonly autoSubmit?: boolean }
6
+ | { readonly validation: "onChange"; readonly debounce?: Duration.Input; readonly autoSubmit?: boolean }
7
7
 
8
8
  export type FormModeWithoutAutoSubmit =
9
9
  | { readonly validation?: "onSubmit"; readonly autoSubmit?: false; readonly debounce?: never }
10
10
  | { readonly validation: "onBlur"; readonly autoSubmit?: false; readonly debounce?: never }
11
- | { readonly validation: "onChange"; readonly debounce?: Duration.DurationInput; readonly autoSubmit?: false }
11
+ | { readonly validation: "onChange"; readonly debounce?: Duration.Input; readonly autoSubmit?: false }
12
12
 
13
13
  export interface ParsedMode {
14
14
  readonly validation: "onSubmit" | "onBlur" | "onChange"
@@ -26,7 +26,7 @@ export const parse = (mode?: FormMode): ParsedMode => {
26
26
  if (validation === "onChange") {
27
27
  const debounceMs = mode?.debounce === undefined
28
28
  ? null
29
- : Duration.toMillis(Duration.fromDurationInputUnsafe(mode.debounce))
29
+ : Duration.toMillis(Duration.fromInputUnsafe(mode.debounce))
30
30
  const autoSubmit = mode?.autoSubmit === true
31
31
  return { validation: "onChange", debounce: debounceMs, autoSubmit }
32
32
  }