@matheuspuel/state-machine 0.5.0 → 0.7.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.
Files changed (62) hide show
  1. package/dist/definition.js +5 -2
  2. package/dist/definition.js.map +1 -1
  3. package/dist/dts/definition.d.ts +4 -1
  4. package/dist/dts/definition.d.ts.map +1 -1
  5. package/dist/dts/machines/Form/Error.d.ts +9 -0
  6. package/dist/dts/machines/Form/Error.d.ts.map +1 -0
  7. package/dist/dts/machines/Form/Field/index.d.ts +56 -0
  8. package/dist/dts/machines/Form/Field/index.d.ts.map +1 -0
  9. package/dist/dts/machines/{Form.d.ts → Form/index.d.ts} +6 -42
  10. package/dist/dts/machines/Form/index.d.ts.map +1 -0
  11. package/dist/dts/machines/QueryState.d.ts +39 -0
  12. package/dist/dts/machines/QueryState.d.ts.map +1 -0
  13. package/dist/dts/machines/basic.d.ts +8 -0
  14. package/dist/dts/machines/basic.d.ts.map +1 -0
  15. package/dist/dts/machines/index copy.d.ts +10 -0
  16. package/dist/dts/machines/index copy.d.ts.map +1 -0
  17. package/dist/dts/machines/index.d.ts +3 -3
  18. package/dist/dts/machines/index.d.ts.map +1 -1
  19. package/dist/dts/machines/index.test copy.d.ts +2 -0
  20. package/dist/dts/machines/index.test copy.d.ts.map +1 -0
  21. package/dist/machines/Form/Error.js +4 -0
  22. package/dist/machines/Form/Error.js.map +1 -0
  23. package/dist/machines/Form/Field/index.js +102 -0
  24. package/dist/machines/Form/Field/index.js.map +1 -0
  25. package/dist/machines/{Form.js → Form/index.js} +10 -55
  26. package/dist/machines/Form/index.js.map +1 -0
  27. package/dist/machines/QueryState.js +28 -0
  28. package/dist/machines/QueryState.js.map +1 -0
  29. package/dist/machines/basic.js +37 -0
  30. package/dist/machines/basic.js.map +1 -0
  31. package/dist/machines/index copy.js +39 -0
  32. package/dist/machines/index copy.js.map +1 -0
  33. package/dist/machines/index.js +3 -3
  34. package/dist/machines/index.js.map +1 -1
  35. package/dist/machines/index.test copy.js +37 -0
  36. package/dist/machines/index.test copy.js.map +1 -0
  37. package/package.json +25 -32
  38. package/src/definition.ts +9 -5
  39. package/src/machines/Form/Error.ts +5 -0
  40. package/src/machines/Form/Field/index.ts +234 -0
  41. package/src/machines/{Form.test.ts → Form/index.test.ts} +10 -11
  42. package/src/machines/{Form.ts → Form/index.ts} +11 -146
  43. package/src/machines/QueryState.ts +89 -0
  44. package/src/machines/{Struct.ts → basic.ts} +23 -7
  45. package/src/machines/{Struct.test.ts → index.test.ts} +13 -1
  46. package/src/machines/index.ts +3 -3
  47. package/dist/dts/form/definition.d.ts +0 -20
  48. package/dist/dts/form/definition.d.ts.map +0 -1
  49. package/dist/dts/form/index.d.ts +0 -2
  50. package/dist/dts/form/index.d.ts.map +0 -1
  51. package/dist/dts/machines/Form.d.ts.map +0 -1
  52. package/dist/dts/machines/FormValue.d.ts +0 -12
  53. package/dist/dts/machines/FormValue.d.ts.map +0 -1
  54. package/dist/form/definition.js +0 -14
  55. package/dist/form/definition.js.map +0 -1
  56. package/dist/form/index.js +0 -2
  57. package/dist/form/index.js.map +0 -1
  58. package/dist/machines/Form.js.map +0 -1
  59. package/dist/machines/FormValue.js +0 -12
  60. package/dist/machines/FormValue.js.map +0 -1
  61. package/src/machines/of.test.ts +0 -15
  62. package/src/machines/of.ts +0 -11
@@ -1,139 +1,17 @@
1
- import {
2
- Data,
3
- Effect,
4
- Either,
5
- flow,
6
- Option,
7
- pipe,
8
- Record,
9
- Schema,
10
- } from 'effect'
11
- import { ParseError } from 'effect/ParseResult'
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+
3
+ import { Effect, Either, Option, pipe, Record } from 'effect'
12
4
  import {
13
5
  AnyStateMachineWithActions,
14
- make,
15
6
  mapActions,
16
7
  StateMachine,
17
- } from '../definition.js'
18
- import { Struct as StateMachineStruct } from '../machines/Struct.js'
19
-
20
- export class ValidationError<E> extends Data.TaggedError(
21
- 'FormValidationError',
22
- )<{
23
- error: E
24
- }> {}
25
-
26
- export type FormField<A, I, E> = StateMachine<
27
- { value: I; error: E | null },
28
- {
29
- set: (value: I) => void
30
- update: (f: (previous: I) => I) => void
31
- error: { set: (error: E | null) => void }
32
- validate: () => Effect.Effect<A, ValidationError<E>>
33
- check: () => Promise<Either.Either<A, ValidationError<E>>>
34
- setStateFromData: (data: A) => void
35
- }
36
- >
37
-
38
- export type AnyFormField = FormField<any, any, any>
39
-
40
- export const makeField = <A, I, E>(args: {
41
- initial: I
42
- validate: (value: I) => Effect.Effect<A, E>
43
- fromData: (data: A) => I
44
- }): FormField<A, I, E> =>
45
- make<{ value: I; error: E | null }>()({
46
- initialState: { value: args.initial, error: null },
47
- actions: ({ Store }) => {
48
- const validate = () =>
49
- pipe(
50
- Store.get().value,
51
- args.validate,
52
- Effect.tap(() =>
53
- Effect.sync(() =>
54
- Store.update(_ => ({ value: _.value, error: null })),
55
- ),
56
- ),
57
- Effect.tapError(error =>
58
- Effect.sync(() => Store.update(_ => ({ value: _.value, error }))),
59
- ),
60
- Effect.mapError(error => new ValidationError({ error })),
61
- )
62
- return {
63
- set: value => Store.update(() => ({ value, error: null })),
64
- update: f => Store.update(_ => ({ value: f(_.value), error: null })),
65
- error: { set: error => Store.update(_ => ({ value: _.value, error })) },
66
- validate,
67
- check: () => validate().pipe(Effect.either, Effect.runPromise),
68
- setStateFromData: data =>
69
- Store.update(_ => ({
70
- ..._,
71
- value: args.fromData(data),
72
- error: null,
73
- })),
74
- }
75
- },
76
- })
8
+ withState,
9
+ } from '../../definition.js'
10
+ import { Struct as StateMachineStruct } from '../../machines/basic.js'
11
+ import { ValidationError } from './Error.js'
77
12
 
78
- export const field = <A>(initial: A): FormField<A, A, never> =>
79
- makeField<A, A, never>({
80
- initial: initial,
81
- validate: _ => Effect.succeed(_),
82
- fromData: _ => _,
83
- })
84
-
85
- export const fieldWithError =
86
- <E>() =>
87
- <A, I, E1>(self: FormField<A, I, E1>): FormField<A, I, E | E1> =>
88
- self as FormField<A, I, E | E1>
89
-
90
- export const transformField = <A, A1, I, E, E1>(
91
- self: FormField<A1, I, E1>,
92
- args: {
93
- validate: (value: NoInfer<A1>) => Effect.Effect<A, E>
94
- fromData: (data: A) => NoInfer<A1>
95
- },
96
- ): FormField<A, I, E | E1> =>
97
- mapActions(fieldWithError<E>()(self), (actions, { Store }) => {
98
- const validate = (): Effect.Effect<A, ValidationError<E | E1>, never> =>
99
- actions.validate().pipe(
100
- Effect.flatMap(
101
- flow(
102
- args.validate,
103
- Effect.tap(() =>
104
- Effect.sync(() =>
105
- Store.update(_ => ({ value: _.value, error: null })),
106
- ),
107
- ),
108
- Effect.tapError(error =>
109
- Effect.sync(() => Store.update(_ => ({ value: _.value, error }))),
110
- ),
111
- Effect.mapError(error => new ValidationError({ error })),
112
- ),
113
- ),
114
- )
115
- return {
116
- ...actions,
117
- validate,
118
- check: () => validate().pipe(Effect.either, Effect.runPromise),
119
- setStateFromData: data => actions.setStateFromData(args.fromData(data)),
120
- }
121
- })
122
-
123
- export const transformFieldSchema = <A, A1, I, E1>(
124
- self: FormField<A1, I, E1>,
125
- schema: Schema.Schema<A, A1>,
126
- ): FormField<A, I, E1 | ParseError> =>
127
- transformField(self, {
128
- validate: Schema.decode(schema),
129
- fromData: Schema.encodeSync(schema),
130
- })
131
-
132
- export const validateField = <A1, A extends A1, I, E, E1>(
133
- self: FormField<A1, I, E1>,
134
- validate: (value: NoInfer<A1>) => Effect.Effect<A, E>,
135
- ): FormField<A, I, E | E1> =>
136
- transformField(self, { validate, fromData: _ => _ })
13
+ export * from './Error.js'
14
+ export * as Field from './Field/index.js'
137
15
 
138
16
  export const Struct = <
139
17
  Fields extends Record<
@@ -294,7 +172,7 @@ export const TaggedUnion = <
294
172
  }
295
173
 
296
174
  return mapActions(
297
- make<InternalState>()({
175
+ withState<InternalState>().make({
298
176
  initialState: {
299
177
  [tagKey]: { value: initialTag, error: null },
300
178
  ...Object.fromEntries(
@@ -408,7 +286,7 @@ export const Array = <
408
286
  Item extends StateMachine<infer State, infer Actions> ? State : never
409
287
  type ItemActions =
410
288
  Item extends StateMachine<infer State, infer Actions> ? Actions : never
411
- return make<ReadonlyArray<ItemState>>()({
289
+ return withState<ReadonlyArray<ItemState>>().make({
412
290
  initialState: [],
413
291
  actions: ({ Store }) => {
414
292
  const getItemActions = (index: number): ItemActions =>
@@ -450,16 +328,3 @@ export const Array = <
450
328
  },
451
329
  }) as any
452
330
  }
453
-
454
- export const String = field('')
455
-
456
- export const NonEmptyString = transformField(String, {
457
- validate: _ => Schema.decodeOption(Schema.NonEmptyString)(_),
458
- fromData: _ => _,
459
- })
460
-
461
- export const TrimNonEmptyString = transformField(String, {
462
- validate: _ =>
463
- Schema.decodeOption(Schema.compose(Schema.Trim, Schema.NonEmptyString))(_),
464
- fromData: _ => _,
465
- })
@@ -0,0 +1,89 @@
1
+ import { QueryState as QueryState_ } from '@matheuspuel/query-state'
2
+ import { DateTime, Effect, pipe, Schedule } from 'effect'
3
+ import { make, mapActions, StateMachine } from '../definition.js'
4
+ import { of } from './basic.js'
5
+
6
+ export const QueryState = <A, E, P = undefined>() =>
7
+ mapActions(of(QueryState_.initial<A, E, P>()), actions => ({
8
+ ...actions,
9
+ start: (loading: { progress: P }) =>
10
+ actions.update(_ =>
11
+ _.start({
12
+ time: DateTime.unsafeNow(),
13
+ progress: loading.progress,
14
+ } as any),
15
+ ),
16
+ succeed: (success: { data: A }) =>
17
+ actions.update(_ =>
18
+ _.succeed({ time: DateTime.unsafeNow(), data: success.data }),
19
+ ),
20
+ fail: (failure: { error: E }) =>
21
+ actions.update(_ =>
22
+ _.fail({ time: DateTime.unsafeNow(), error: failure.error }),
23
+ ),
24
+ invalidate: () => actions.update(_ => _.invalidate()),
25
+ }))
26
+
27
+ export const trackEffect: {
28
+ <A, E, P, I = void>(
29
+ effect: (input: I) => Effect.Effect<A, E>,
30
+ options: {
31
+ initialProgress: P
32
+ runOnStart?: { input: I } | (I extends void ? true : never)
33
+ retry?: Schedule.Schedule<any, E>
34
+ },
35
+ ): StateMachine<
36
+ QueryState_<A, E, P>,
37
+ ReturnType<ReturnType<typeof QueryState<A, E, P>>['actions']> & {
38
+ submit: (input: I) => Effect.Effect<A, E>
39
+ }
40
+ >
41
+ <A, E, I = void>(
42
+ effect: (input: I) => Effect.Effect<A, E>,
43
+ options?: {
44
+ initialProgress?: undefined
45
+ runOnStart?: { input: I } | (I extends void ? true : never)
46
+ retry?: Schedule.Schedule<any, E>
47
+ },
48
+ ): StateMachine<
49
+ QueryState_<A, E, undefined>,
50
+ ReturnType<ReturnType<typeof QueryState<A, E, undefined>>['actions']> & {
51
+ submit: (input: I) => Effect.Effect<A, E>
52
+ }
53
+ >
54
+ } = <A, E, P, I = void>(
55
+ effect: (input: I) => Effect.Effect<A, E>,
56
+ options?: {
57
+ initialProgress?: P
58
+ runOnStart?: { input: I } | (I extends void ? true : never)
59
+ retry?: Schedule.Schedule<any, E>
60
+ },
61
+ ): StateMachine<
62
+ QueryState_<A, E, P>,
63
+ ReturnType<ReturnType<typeof QueryState<A, E, P>>['actions']> & {
64
+ submit: (input: I) => Effect.Effect<A, E>
65
+ }
66
+ > =>
67
+ pipe(
68
+ mapActions(QueryState<A, E, P>(), actions => ({
69
+ ...actions,
70
+ submit: (input: I) =>
71
+ QueryState_.trackEffect(actions.update, effect, {
72
+ initialProgress: options?.initialProgress as P,
73
+ })(input).pipe(_ =>
74
+ options?.retry ? Effect.retry(_, options.retry) : _,
75
+ ),
76
+ })),
77
+ _ =>
78
+ options?.runOnStart
79
+ ? pipe(options.runOnStart, options =>
80
+ make({
81
+ ..._,
82
+ start: machine =>
83
+ _.actions(machine)
84
+ .submit(options === true ? (undefined as I) : options.input)
85
+ .pipe(Effect.runPromiseExit),
86
+ }),
87
+ )
88
+ : _,
89
+ )
@@ -4,20 +4,36 @@ import {
4
4
  make,
5
5
  makeStore,
6
6
  StateMachine,
7
+ withState,
7
8
  } from '../definition.js'
8
9
 
10
+ export const of = <A>(initialState: A) =>
11
+ withState<A>().make({
12
+ initialState,
13
+ actions: ({ Store }) => ({
14
+ get: Store.get,
15
+ update: (f: (previous: A) => A) => Store.update(f),
16
+ set: (value: A) => Store.update(() => value),
17
+ }),
18
+ })
19
+
9
20
  export const Struct = <
10
21
  A extends Record<string, StateMachine<any, AnyStateActions>>,
11
22
  >(
12
23
  fields: A,
13
24
  ) =>
14
- make<{
15
- [K in keyof A]: A[K] extends StateMachine<infer State, any> ? State : never
16
- }>()<{
17
- [K in keyof A]: A[K] extends StateMachine<any, infer Actions>
18
- ? Actions
19
- : never
20
- }>({
25
+ make<
26
+ {
27
+ [K in keyof A]: A[K] extends StateMachine<infer State, any>
28
+ ? State
29
+ : never
30
+ },
31
+ {
32
+ [K in keyof A]: A[K] extends StateMachine<any, infer Actions>
33
+ ? Actions
34
+ : never
35
+ }
36
+ >({
21
37
  initialState: Record.map(fields, _ => _.initialState) as any,
22
38
  actions: ({ Store }) => ({
23
39
  ...(Record.map(fields, (_, key) =>
@@ -2,6 +2,18 @@ import { describe, expect, it } from '@effect/vitest'
2
2
  import { StateMachine } from '@matheuspuel/state-machine'
3
3
  import { Effect, pipe } from 'effect'
4
4
 
5
+ describe('of', () => {
6
+ it('should work', () => {
7
+ const machine = StateMachine.of('')
8
+ const instance = StateMachine.run(machine)
9
+ instance.actions.set('a')
10
+ const state = instance.ref.get.pipe(Effect.runSync)
11
+ expect(state).toStrictEqual('a')
12
+ const data = instance.actions.get()
13
+ expect(data).toStrictEqual('a')
14
+ })
15
+ })
16
+
5
17
  describe('Struct', () => {
6
18
  it('should work', () => {
7
19
  const machine = pipe(
@@ -10,7 +22,7 @@ describe('Struct', () => {
10
22
  b: StateMachine.of(''),
11
23
  }),
12
24
  base =>
13
- StateMachine.make<(typeof base)['initialState']>()({
25
+ StateMachine.make({
14
26
  ...base,
15
27
  actions: ({ Store }) => ({
16
28
  ...base.actions({ Store }),
@@ -1,3 +1,3 @@
1
- export * as Form from './Form.js'
2
- export { of } from './of.js'
3
- export { Struct } from './Struct.js'
1
+ export * from './basic.js'
2
+ export * as Form from './Form/index.js'
3
+ export { QueryState, trackEffect } from './QueryState.js'
@@ -1,20 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { ParseError } from 'effect/ParseResult';
3
- export type AnyForm = {
4
- [key: string]: AnyForm | FormField<any, any, any>;
5
- };
6
- export type FormField<A, I, E> = {
7
- initial: I;
8
- validate: (value: I) => Effect.Effect<A, E>;
9
- fromData: (data: A) => I;
10
- };
11
- export declare const field: <A, I, E>(args: FormField<A, I, E>) => FormField<A, I, E>;
12
- export declare const fieldSchema: <A, I>(args: {
13
- initial: I;
14
- schema: Schema.Schema<A, I>;
15
- }) => FormField<A, I, ParseError>;
16
- export declare const fieldSuccess: <A>(args: {
17
- initial: A;
18
- }) => FormField<A, A, never>;
19
- export declare const Struct: <Fields extends AnyForm>(fields: Fields) => Fields;
20
- //# sourceMappingURL=definition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/form/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI;IAC/B,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uBAAS,CAAA;AAEhE,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,EAAE,MAAM;IACtC,OAAO,EAAE,CAAC,CAAA;IACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAC5B,gCAKG,CAAA;AAEJ,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,MAAM;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,2BAKhD,CAAA;AAEJ,eAAO,MAAM,MAAM,GAAI,MAAM,SAAS,OAAO,EAAE,QAAQ,MAAM,WAAW,CAAA"}
@@ -1,2 +0,0 @@
1
- export * as Form from './definition.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/machines/Form.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,MAAM,EAEN,MAAM,EAGN,MAAM,EACP,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EACL,0BAA0B,EAG1B,YAAY,EACb,MAAM,kBAAkB,CAAA;;;;AAGzB,qBAAa,eAAe,CAAC,CAAC,CAAE,SAAQ,qBAEtC;IACA,KAAK,EAAE,CAAC,CAAA;CACT,CAAC;CAAG;AAEL,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,YAAY,CAC3C;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,EAC7B;IACE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IACvB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;IACvC,KAAK,EAAE;QAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;KAAE,CAAA;IACzC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;CACpC,CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEnD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;IACvC,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;CACzB,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAgCjB,CAAA;AAEJ,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,SAAS,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAKvD,CAAA;AAEJ,eAAO,MAAM,cAAc,GACxB,CAAC,QACD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAC5B,CAAA;AAEnC,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAC5C,MAAM,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAC1B,MAAM;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,CAAA;CACnC,KACA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAyBrB,CAAA;AAEJ,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAC/C,MAAM,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAC1B,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAC3B,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,CAI9B,CAAA;AAEJ,eAAO,MAAM,aAAa,GAAI,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EACtD,MAAM,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAC1B,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KACpD,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAC6B,CAAA;AAEtD,eAAO,MAAM,MAAM,GACjB,MAAM,SAAS,MAAM,CACnB,MAAM,EACN,0BAA0B,CAAC;IACzB,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;CACzD,CAAC,CACH,EAED,QAAQ,MAAM,KACb,YAAY,CACb,GACG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,YAAY,CACjD,MAAM,KAAK,EACX,MAAM,OAAO,CACd,GACG,KAAK,GACL,KAAK,GACV,EACD,GACG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,YAAY,CACjD,MAAM,KAAK,EACX,MAAM,SAAO,CACd,GACG,SAAO,GACP,KAAK,GACV,GAAG;IACF,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAC3B,GACG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,YAAY,CACjD,MAAM,KAAK,EACX;QACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACjE,CACF,GACG,CAAC,GACD,KAAK,GACV,EACD,eAAe,CAAC,GACb,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,YAAY,CACjD,MAAM,KAAK,EACX;QACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,GAAC,EAAE,eAAe,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;KACjE,CACF,GACG,MAAM,CAAC,MAAM,CAAC,GAAC,CAAC,GAChB,KAAK,GACV,CAAC,CACH,CAAA;IACD,gBAAgB,EAAE,CAAC,IAAI,EAAE,GACtB,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,YAAY,CACjD,MAAM,KAAK,EACX;QAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAC,KAAK,IAAI,CAAA;KAAE,CAC9C,GACG,GAAC,GACD,KAAK,GACV,KAAK,IAAI,CAAA;CACX,CAqBS,CAAA;AAEZ,eAAO,MAAM,WAAW,GACtB,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,CACrB,MAAM,EACN,0BAA0B,CAAC;IACzB,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;CACzD,CAAC,CACH,EAED,QAAQ,MAAM,EACd,UAAU,QAAQ,KACjB,YAAY,CACb,GACG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,YAAY,CACrD,MAAM,KAAK,EACX,MAAM,OAAO,CACd,GACG,KAAK,GACL,KAAK,GACV,GAAG,GACD,CAAC,IAAI,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACtD,EACD,GACG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,YAAY,CACrD,MAAM,KAAK,EACX,MAAM,SAAO,CACd,GACG,SAAO,GACP,KAAK,GACV,GAAG,GACD,CAAC,IAAI,MAAM,GAAG;IACb,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,KAAK,EAAE,MAAM,OAAO,CAClB,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CACtD,CAAA;CACF,GACF,GAAG;IACF,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAC3B,GACG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,YAAY,CACrD,MAAM,KAAK,EACX;QACE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KACjE,CACF,GACG,CAAC,GAAG,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC,GAAE,GACzB,KAAK,GACV,CAAC,MAAM,QAAQ,CAAC,EACjB,eAAe,CAAC,GAAG,CAAC,CACrB,CAAA;IACD,gBAAgB,EAAE,CAChB,IAAI,EAAE,GACH,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,YAAY,CACrD,MAAM,KAAK,EACX;QAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAC,KAAK,IAAI,CAAA;KAAE,CAC9C,GACG,GAAC,GAAG,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC,GAAE,GACzB,KAAK,GACV,CAAC,MAAM,QAAQ,CAAC,KACd,IAAI,CAAA;CACV,CAyFF,CAAA;AAED,eAAO,MAAM,KAAK,GAChB,IAAI,SAAS,0BAA0B,CAAC;IACtC,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;CACzD,CAAC,EAEF,MAAM,IAAI,KACT,YAAY,CACb,IAAI,SAAS,YAAY,CAAC,MAAM,KAAK,EAAE,MAAM,OAAO,CAAC,GACjD,aAAa,CAAC,KAAK,CAAC,GACpB,KAAK,EACT;IACE,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,KAAK,EAAE,CACL,KAAK,EAAE,MAAM,KACV,IAAI,SAAS,YAAY,CAAC,MAAM,KAAK,EAAE,MAAM,SAAO,CAAC,GAAG,SAAO,GAAG,KAAK,CAAA;IAC5E,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAC3B,IAAI,SAAS,YAAY,CACvB,MAAM,KAAK,EACX;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;KAAE,CACrE,GACG,aAAa,CAAC,CAAC,CAAC,GAChB,KAAK,EACT,eAAe,CAAC,GAAG,CAAC,CACrB,CAAA;IACD,gBAAgB,EAAE,CAChB,IAAI,EAAE,IAAI,SAAS,YAAY,CAC7B,MAAM,KAAK,EACX;QAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAC,KAAK,IAAI,CAAA;KAAE,CAC9C,GACG,aAAa,CAAC,GAAC,CAAC,GAChB,KAAK,KACN,IAAI,CAAA;CACV,CA+CF,CAAA;AAED,eAAO,MAAM,MAAM,kCAAY,CAAA;AAE/B,eAAO,MAAM,cAAc,0EAGzB,CAAA;AAEF,eAAO,MAAM,kBAAkB,0EAI7B,CAAA"}
@@ -1,12 +0,0 @@
1
- export type FormValue<A, E> = {
2
- value: A;
3
- error: E | null;
4
- };
5
- export declare const FormValue: <A, E>(initialValue: A) => import("../definition.js").StateMachine<FormValue<A, E>, {
6
- update: (f: (previous: A) => A) => void;
7
- set: (value: A) => void;
8
- error: {
9
- set: (error: E | null) => void;
10
- };
11
- }>;
12
- //# sourceMappingURL=FormValue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormValue.d.ts","sourceRoot":"","sources":["../../../src/machines/FormValue.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,CAAA;AAE3D,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;gBAI7B,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;iBAEjB,CAAC;;qBAEC,CAAC,GAAG,IAAI;;EAIzB,CAAA"}
@@ -1,14 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- export const field = (args) => args;
3
- export const fieldSchema = (args) => field({
4
- initial: args.initial,
5
- validate: Schema.decode(args.schema),
6
- fromData: Schema.encodeSync(args.schema),
7
- });
8
- export const fieldSuccess = (args) => field({
9
- initial: args.initial,
10
- validate: Effect.succeed,
11
- fromData: _ => _,
12
- });
13
- export const Struct = (fields) => fields;
14
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/form/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAavC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAU,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAA;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAO,IAGjC,EAAE,EAAE,CACH,KAAK,CAAmB;IACtB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;CACzC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,IAAoB,EAAE,EAAE,CACtD,KAAK,CAAc;IACjB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,QAAQ,EAAE,MAAM,CAAC,OAAO;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAyB,MAAc,EAAE,EAAE,CAAC,MAAM,CAAA"}
@@ -1,2 +0,0 @@
1
- export * as Form from './definition.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../src/machines/Form.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { make } from '../definition.js';
2
- export const FormValue = (initialValue) => make()({
3
- initialState: { value: initialValue, error: null },
4
- actions: ({ Store }) => ({
5
- update: (f) => Store.update(_ => ({ value: f(_.value), error: null })),
6
- set: (value) => Store.update(() => ({ value, error: null })),
7
- error: {
8
- set: (error) => Store.update(_ => ({ value: _.value, error })),
9
- },
10
- }),
11
- });
12
- //# sourceMappingURL=FormValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormValue.js","sourceRoot":"","sources":["../../src/machines/FormValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAIvC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAO,YAAe,EAAE,EAAE,CACjD,IAAI,EAAmB,CAAC;IACtB,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;IAClD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,MAAM,EAAE,CAAC,CAAqB,EAAE,EAAE,CAChC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,GAAG,EAAE,CAAC,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,KAAe,EAAE,EAAE,CACvB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SACjD;KACF,CAAC;CACH,CAAC,CAAA"}
@@ -1,15 +0,0 @@
1
- import { describe, expect, it } from '@effect/vitest'
2
- import { StateMachine } from '@matheuspuel/state-machine'
3
- import { Effect } from 'effect'
4
-
5
- describe('of', () => {
6
- it('should work', () => {
7
- const machine = StateMachine.of('')
8
- const instance = StateMachine.run(machine)
9
- instance.actions.set('a')
10
- const state = instance.ref.get.pipe(Effect.runSync)
11
- expect(state).toStrictEqual('a')
12
- const data = instance.actions.get()
13
- expect(data).toStrictEqual('a')
14
- })
15
- })
@@ -1,11 +0,0 @@
1
- import { make } from '../definition.js'
2
-
3
- export const of = <A>(initialState: A) =>
4
- make<A>()({
5
- initialState,
6
- actions: ({ Store }) => ({
7
- get: Store.get,
8
- update: (f: (previous: A) => A) => Store.update(f),
9
- set: (value: A) => Store.update(() => value),
10
- }),
11
- })