@effect-app/vue 4.0.0-beta.22 → 4.0.0-beta.220

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 (103) hide show
  1. package/CHANGELOG.md +1605 -0
  2. package/dist/commander.d.ts +628 -0
  3. package/dist/commander.d.ts.map +1 -0
  4. package/dist/commander.js +1060 -0
  5. package/dist/confirm.d.ts +19 -0
  6. package/dist/confirm.d.ts.map +1 -0
  7. package/dist/confirm.js +24 -0
  8. package/dist/errorReporter.d.ts +4 -4
  9. package/dist/errorReporter.d.ts.map +1 -1
  10. package/dist/errorReporter.js +12 -18
  11. package/dist/form.d.ts +14 -5
  12. package/dist/form.d.ts.map +1 -1
  13. package/dist/form.js +41 -12
  14. package/dist/index.d.ts +1 -1
  15. package/dist/intl.d.ts +15 -0
  16. package/dist/intl.d.ts.map +1 -0
  17. package/dist/intl.js +9 -0
  18. package/dist/lib.d.ts +6 -9
  19. package/dist/lib.d.ts.map +1 -1
  20. package/dist/lib.js +35 -10
  21. package/dist/makeClient.d.ts +152 -339
  22. package/dist/makeClient.d.ts.map +1 -1
  23. package/dist/makeClient.js +221 -376
  24. package/dist/makeContext.d.ts +1 -1
  25. package/dist/makeContext.d.ts.map +1 -1
  26. package/dist/makeIntl.d.ts +1 -1
  27. package/dist/makeIntl.d.ts.map +1 -1
  28. package/dist/makeUseCommand.d.ts +8 -0
  29. package/dist/makeUseCommand.d.ts.map +1 -0
  30. package/dist/makeUseCommand.js +13 -0
  31. package/dist/mutate.d.ts +52 -34
  32. package/dist/mutate.d.ts.map +1 -1
  33. package/dist/mutate.js +137 -46
  34. package/dist/query.d.ts +19 -39
  35. package/dist/query.d.ts.map +1 -1
  36. package/dist/query.js +128 -72
  37. package/dist/routeParams.d.ts +1 -1
  38. package/dist/runtime.d.ts +7 -4
  39. package/dist/runtime.d.ts.map +1 -1
  40. package/dist/runtime.js +27 -17
  41. package/dist/toast.d.ts +50 -0
  42. package/dist/toast.d.ts.map +1 -0
  43. package/dist/toast.js +32 -0
  44. package/dist/withToast.d.ts +27 -0
  45. package/dist/withToast.d.ts.map +1 -0
  46. package/dist/withToast.js +59 -0
  47. package/examples/streamMutation.ts +70 -0
  48. package/package.json +48 -50
  49. package/src/commander.ts +3393 -0
  50. package/src/{experimental/confirm.ts → confirm.ts} +10 -14
  51. package/src/errorReporter.ts +62 -74
  52. package/src/form.ts +56 -17
  53. package/src/intl.ts +12 -0
  54. package/src/lib.ts +47 -20
  55. package/src/makeClient.ts +568 -1134
  56. package/src/{experimental/makeUseCommand.ts → makeUseCommand.ts} +6 -4
  57. package/src/mutate.ts +265 -127
  58. package/src/query.ts +197 -183
  59. package/src/runtime.ts +41 -20
  60. package/src/{experimental/toast.ts → toast.ts} +13 -27
  61. package/src/{experimental/withToast.ts → withToast.ts} +40 -12
  62. package/test/Mutation.test.ts +176 -23
  63. package/test/dist/form.test.d.ts.map +1 -1
  64. package/test/dist/lib.test.d.ts.map +1 -0
  65. package/test/dist/streamFinal.test.d.ts.map +1 -0
  66. package/test/dist/streamFn.test.d.ts.map +1 -0
  67. package/test/dist/stubs.d.ts +3529 -122
  68. package/test/dist/stubs.d.ts.map +1 -1
  69. package/test/dist/stubs.js +182 -31
  70. package/test/form-validation-errors.test.ts +23 -19
  71. package/test/form.test.ts +20 -2
  72. package/test/lib.test.ts +240 -0
  73. package/test/makeClient.test.ts +292 -38
  74. package/test/streamFinal.test.ts +63 -0
  75. package/test/streamFn.test.ts +455 -0
  76. package/test/stubs.ts +218 -42
  77. package/tsconfig.examples.json +20 -0
  78. package/tsconfig.json +0 -1
  79. package/tsconfig.json.bak +5 -2
  80. package/tsconfig.src.json +34 -34
  81. package/tsconfig.test.json +2 -2
  82. package/vitest.config.ts +5 -5
  83. package/dist/experimental/commander.d.ts +0 -359
  84. package/dist/experimental/commander.d.ts.map +0 -1
  85. package/dist/experimental/commander.js +0 -557
  86. package/dist/experimental/confirm.d.ts +0 -19
  87. package/dist/experimental/confirm.d.ts.map +0 -1
  88. package/dist/experimental/confirm.js +0 -28
  89. package/dist/experimental/intl.d.ts +0 -16
  90. package/dist/experimental/intl.d.ts.map +0 -1
  91. package/dist/experimental/intl.js +0 -5
  92. package/dist/experimental/makeUseCommand.d.ts +0 -8
  93. package/dist/experimental/makeUseCommand.d.ts.map +0 -1
  94. package/dist/experimental/makeUseCommand.js +0 -13
  95. package/dist/experimental/toast.d.ts +0 -47
  96. package/dist/experimental/toast.d.ts.map +0 -1
  97. package/dist/experimental/toast.js +0 -41
  98. package/dist/experimental/withToast.d.ts +0 -25
  99. package/dist/experimental/withToast.d.ts.map +0 -1
  100. package/dist/experimental/withToast.js +0 -45
  101. package/eslint.config.mjs +0 -24
  102. package/src/experimental/commander.ts +0 -1835
  103. package/src/experimental/intl.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"stubs.d.ts","sourceRoot":"","sources":["../stubs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAE9E,OAAO,EAAU,KAAK,EAA0B,CAAC,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAElD,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAc,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA8CxD,eAAO,MAAM,YAAY,GAAI,WAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAM,KAepG,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAClD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,WAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAM,oCACpC,CAAA;AAExE,eAAO,MAAM,eAAe,GAC1B,UAAU;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE,6GASxG,CAAA;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAAyB;CAAG;AACnE,eAAO,MAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAqC,CAAA;;;;;;;;;;;;;;;;;;AACtE,qBAAa,aAAc,SAAQ,kBAEA;CAAG;;;;;;;;;;;;;;iBAML,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;;;;;AAJjE,qBAAa,6BAA8B,SAAQ,kCAMjD;CAAG;AAEL,eAAO,MAAM,SAAS;;;;;;CAA+F,CAAA;AAErH,eAAO,MAAM,SAAS,GACpB,UAAU;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE;;;;;;;;;CAcxG,CAAA"}
1
+ {"version":3,"file":"stubs.d.ts","sourceRoot":"","sources":["../stubs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAG9E,OAAO,EAAE,MAAM,EAAE,KAAK,EAA0B,CAAC,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAI9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAqD/C,eAAO,MAAM,YAAY,cAAc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,KAe/F,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAClD,CAAA;AAED,eAAO,MAAM,aAAa,cAAc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,oCAC/B,CAAA;AAExE,eAAO,MAAM,eAAe,aAChB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE,gGASxG,CAAA;AAKD,eAAO,MAAM,gBAAgB,aACjB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE,6HASxG,CAAA;;;;;;;;AAED,qBAAa,iBAAkB,SAAQ,sBAAyB;CAAG;AAKnE,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAFA,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAE6B,CAAA;AAEjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAJM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAAL,KAAK;;;;;;;;;;;;;;;;;;;;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"}
@@ -1,15 +1,17 @@
1
1
  import * as Intl from "@formatjs/intl";
2
+ import { QueryClient, VueQueryPlugin } from "@tanstack/vue-query";
2
3
  import { Effect, Layer, ManagedRuntime, Option, S } from "effect-app";
3
4
  import { ApiClientFactory, makeRpcClient } from "effect-app/client";
4
5
  import { RpcContextMap } from "effect-app/rpc";
6
+ import * as Exit from "effect/Exit";
5
7
  import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
6
- import { ref } from "vue";
7
- import { Commander } from "../src/experimental/commander.js";
8
- import { I18n } from "../src/experimental/intl.js";
9
- import { makeUseCommand } from "../src/experimental/makeUseCommand.js";
10
- import * as Toast from "../src/experimental/toast.js";
11
- import { WithToast } from "../src/experimental/withToast.js";
12
- import { LegacyMutation, makeClient } from "../src/makeClient.js";
8
+ import { createApp, ref } from "vue";
9
+ import { Commander } from "../src/commander.js";
10
+ import { I18n } from "../src/intl.js";
11
+ import { makeClient } from "../src/makeClient.js";
12
+ import { makeUseCommand } from "../src/makeUseCommand.js";
13
+ import * as Toast from "../src/toast.js";
14
+ import { WithToast } from "../src/withToast.js";
13
15
  const fakeToastLayer = (toasts = []) => Layer.effect(Toast.Toast, Effect.sync(() => {
14
16
  const dismiss = (id) => {
15
17
  const idx = toasts.findIndex((_) => _.id === id);
@@ -19,33 +21,41 @@ const fakeToastLayer = (toasts = []) => Layer.effect(Toast.Toast, Effect.sync(()
19
21
  toasts.splice(idx, 1);
20
22
  }
21
23
  };
22
- const fakeToast = (message, options) => {
24
+ const scheduleAutoDismiss = (toast, timeout) => {
25
+ // Treat Infinity / undefined as "stays until explicitly replaced/dismissed".
26
+ // Node's setTimeout silently clamps Infinity to 1ms which would otherwise
27
+ // cause the toast to disappear before assertions can observe it.
28
+ if (timeout === undefined || !Number.isFinite(timeout))
29
+ return;
30
+ toast.timeoutId = setTimeout(() => {
31
+ const i = toasts.indexOf(toast);
32
+ if (i > -1)
33
+ toasts.splice(i, 1);
34
+ }, timeout);
35
+ };
36
+ const fakeToast = (type) => (message, options) => {
23
37
  const id = options?.id ?? Math.random().toString(36).substring(2, 15);
24
- console.log(`Toast [${id}]: ${message}`, options);
38
+ console.log(`Toast [${type}][${id}]: ${message}`, options);
25
39
  options = { ...options, id };
26
40
  const idx = toasts.findIndex((_) => _.id === id);
27
41
  if (idx > -1) {
28
42
  const toast = toasts[idx];
29
43
  clearTimeout(toast.timeoutId);
30
- Object.assign(toast, { message, options });
31
- toast.timeoutId = setTimeout(() => {
32
- toasts.splice(idx, 1);
33
- }, options?.timeout ?? 3000);
44
+ Object.assign(toast, { type, message, options });
45
+ scheduleAutoDismiss(toast, options?.timeout ?? 3000);
34
46
  }
35
47
  else {
36
- const toast = { id, message, options };
37
- toast.timeoutId = setTimeout(() => {
38
- toasts.splice(idx, 1);
39
- }, options?.timeout ?? 3000);
48
+ const toast = { id, type, message, options };
40
49
  toasts.push(toast);
50
+ scheduleAutoDismiss(toast, options?.timeout ?? 3000);
41
51
  }
42
52
  return id;
43
53
  };
44
54
  return Toast.Toast.of(Toast.wrap({
45
- error: fakeToast,
46
- warning: fakeToast,
47
- success: fakeToast,
48
- info: fakeToast,
55
+ error: fakeToast("error"),
56
+ warning: fakeToast("warning"),
57
+ success: fakeToast("success"),
58
+ info: fakeToast("info"),
49
59
  dismiss
50
60
  }));
51
61
  }));
@@ -74,31 +84,172 @@ export const useExperimental = (options) => {
74
84
  const layers = Layer.mergeAll(CommanderLayer, WithToastLayer, FakeToastLayer, FakeIntlLayer);
75
85
  return Effect.runSync(makeUseCommand(Layer.empty).pipe(Effect.provide(layers)));
76
86
  };
87
+ // Effect-returning variant: keeps the caller's runtime context (e.g. a TestClock
88
+ // provided by `it.effect`) so virtual-time advances reach the runtime captured
89
+ // inside Commander.
90
+ export const useExperimentalE = (options) => {
91
+ const FakeIntlLayer = fakeIntlLayer(options?.messages);
92
+ const FakeToastLayer = fakeToastLayer(options?.toasts);
93
+ const CommanderLayer = Commander.Default.pipe(Layer.provide([FakeIntlLayer, FakeToastLayer]));
94
+ const WithToastLayer = WithToast.Default.pipe(Layer.provide(FakeToastLayer));
95
+ const layers = Layer.mergeAll(CommanderLayer, WithToastLayer, FakeToastLayer, FakeIntlLayer);
96
+ return makeUseCommand(Layer.empty).pipe(Effect.provide(layers));
97
+ };
77
98
  export class RequestContextMap extends RpcContextMap.makeMap({}) {
78
99
  }
79
- export const { TaggedRequest: Req } = makeRpcClient(RequestContextMap);
80
- export class GetSomething2 extends Req()("GetSomething2", {
100
+ const stubMiddleware = {
101
+ requestContextMap: RequestContextMap.config,
102
+ requestContext: undefined
103
+ };
104
+ export const { TaggedRequestFor } = makeRpcClient(stubMiddleware);
105
+ export const SomethingReq = TaggedRequestFor("Something");
106
+ const SomethingQuery = SomethingReq.Query;
107
+ const SomethingCommand = SomethingReq.Command;
108
+ class SomethingGetSomething2 extends SomethingQuery()("GetSomething2", {
81
109
  id: S.String
82
- }, { success: S.NumberFromString }) {
110
+ }, { success: S.FiniteFromString }) {
111
+ }
112
+ class SomethingGetSomething3 extends SomethingQuery()("GetSomething3", {
113
+ id: S.NullOr(S.String).withConstructorDefault
114
+ }, { success: S.FiniteFromString }) {
83
115
  }
84
- export class GetSomething2WithDependencies extends Req()("GetSomething2", {
116
+ class SomethingGetSomething4 extends SomethingQuery()("GetSomething4", {}, { success: S.FiniteFromString }) {
117
+ }
118
+ class SomethingGetSomething2WithDependencies extends SomethingQuery()("GetSomething2", {
85
119
  id: S.String
86
120
  }, {
87
121
  // this is intentilally fake, to simulate a codec that requires a dependency
88
- success: S.NumberFromString,
122
+ success: S.FiniteFromString,
123
+ error: S.String
124
+ }) {
125
+ }
126
+ // command stubs covering the input-shape matrix
127
+ class SomethingDoNoProps extends SomethingCommand()("DoNoProps", {}) {
128
+ }
129
+ class SomethingDoOptionalOnly extends SomethingCommand()("DoOptionalOnly", {
130
+ name: S.optional(S.String)
131
+ }) {
132
+ }
133
+ class SomethingDoRequiredOnly extends SomethingCommand()("DoRequiredOnly", {
134
+ id: S.String
135
+ }) {
136
+ }
137
+ class SomethingDoMixed extends SomethingCommand()("DoMixed", {
138
+ id: S.String,
139
+ name: S.optional(S.String)
140
+ }) {
141
+ }
142
+ class SomethingDoSomething extends SomethingCommand()("DoSomething", {
143
+ id: S.String
144
+ }, {
145
+ success: S.FiniteFromString
146
+ }, (queryKey, { Something }, input, output) => {
147
+ return [
148
+ { filters: { queryKey } },
149
+ {
150
+ filters: {
151
+ queryKey: [
152
+ Something["GetSomething2"].id,
153
+ input.id,
154
+ Exit.isSuccess(output) ? output.value.toString() : "failed"
155
+ ]
156
+ }
157
+ }
158
+ ];
159
+ }) {
160
+ }
161
+ // success schema has encoded shape { a: string | null } — used to test projection constraints
162
+ class SomethingGetStructNullable extends SomethingQuery()("GetStructNullable", {}, {
163
+ success: S.Struct({ a: S.NullOr(S.String) })
164
+ }) {
165
+ }
166
+ /** Stream event: intermediate progress update. */
167
+ export class OperationProgress extends S.TaggedClass()("OperationProgress", {
168
+ completed: S.NonNegativeInt,
169
+ total: S.NonNegativeInt
170
+ }) {
171
+ }
172
+ /** Stream event: final completion result. */
173
+ export class ExportComplete extends S.TaggedClass()("ExportComplete", {
174
+ fileUrl: S.NonEmptyString
175
+ }) {
176
+ }
177
+ /** Stream with no `final` schema — execute resolves with `void`. */
178
+ class SomethingStreamWithoutFinal extends SomethingCommand()("StreamWithoutFinal", {
179
+ id: S.String
180
+ }, {
181
+ stream: true,
182
+ success: S.Union([OperationProgress, ExportComplete])
183
+ }) {
184
+ }
185
+ /** Stream with a `final` schema — execute resolves with `ExportComplete`. */
186
+ class SomethingStreamWithFinal extends SomethingCommand()("StreamWithFinal", {
187
+ id: S.String
188
+ }, {
189
+ stream: true,
190
+ success: S.Union([OperationProgress, ExportComplete]),
191
+ final: ExportComplete
192
+ }) {
193
+ }
194
+ export const Something = {
195
+ GetSomething2: SomethingGetSomething2,
196
+ GetSomething2WithDependencies: SomethingGetSomething2WithDependencies,
197
+ GetSomething3: SomethingGetSomething3,
198
+ GetSomething4: SomethingGetSomething4,
199
+ DoNoProps: SomethingDoNoProps,
200
+ DoOptionalOnly: SomethingDoOptionalOnly,
201
+ DoRequiredOnly: SomethingDoRequiredOnly,
202
+ DoMixed: SomethingDoMixed,
203
+ DoSomething: SomethingDoSomething,
204
+ GetStructNullable: SomethingGetStructNullable,
205
+ StreamWithoutFinal: SomethingStreamWithoutFinal,
206
+ StreamWithFinal: SomethingStreamWithFinal
207
+ };
208
+ export const SomethingElseReq = TaggedRequestFor("SomethingElse");
209
+ const SomethingElseQuery = SomethingElseReq.Query;
210
+ class SomethingElseGetSomething2 extends SomethingElseQuery()("GetSomething2", {
211
+ id: S.String
212
+ }, { success: S.FiniteFromString }) {
213
+ }
214
+ class SomethingElseGetSomething2WithDependencies extends SomethingElseQuery()("GetSomething2", {
215
+ id: S.String
216
+ }, {
217
+ success: S.FiniteFromString,
89
218
  error: S.String
90
219
  }) {
91
220
  }
92
- export const Something = { GetSomething2, GetSomething2WithDependencies, meta: { moduleName: "Something" } };
221
+ export const SomethingElse = {
222
+ GetSomething2: SomethingElseGetSomething2,
223
+ GetSomething2WithDependencies: SomethingElseGetSomething2WithDependencies
224
+ };
93
225
  export const useClient = (options) => {
94
226
  const FakeIntlLayer = fakeIntlLayer(options?.messages);
95
227
  const FakeToastLayer = fakeToastLayer(options?.toasts);
96
228
  const CommanderLayer = Commander.Default.pipe(Layer.provide([FakeIntlLayer, FakeToastLayer]));
97
229
  const WithToastLayer = WithToast.Default.pipe(Layer.provide(FakeToastLayer));
98
230
  const api = ApiClientFactory.layer({ url: "bogus", headers: Option.none() }).pipe(Layer.provide(FetchHttpClient.layer));
99
- const lm = LegacyMutation.Default.pipe(Layer.provide([FakeIntlLayer, FakeToastLayer]));
100
- const layers = Layer.mergeAll(CommanderLayer, WithToastLayer, FakeToastLayer, FakeIntlLayer, api, lm);
231
+ const layers = Layer.mergeAll(CommanderLayer, WithToastLayer, FakeToastLayer, FakeIntlLayer, api);
101
232
  const clientFor_ = ApiClientFactory.makeFor(Layer.empty);
102
- return makeClient(() => ManagedRuntime.make(layers), clientFor_, Layer.empty);
233
+ const rawClient = makeClient(() => ManagedRuntime.make(layers), clientFor_, Layer.empty);
234
+ // Provide a Vue injection context so that composition-API hooks (e.g. useQueryClient)
235
+ // called during client initialisation work outside a component setup() function.
236
+ const vueApp = createApp({});
237
+ const testQueryClientConfig = { defaultOptions: { queries: { retry: false }, mutations: { retry: false } } };
238
+ vueApp.use(VueQueryPlugin, { queryClient: new QueryClient(testQueryClientConfig) });
239
+ const origClientFor = rawClient.clientFor;
240
+ const clientFor = function (m, ...args) {
241
+ const proxy = origClientFor(m, ...args);
242
+ // Warm up lazy mutation-hook initialisation inside the Vue injection context.
243
+ // After the first property access, useMutation() is cached and subsequent
244
+ // accesses outside the context succeed.
245
+ const firstPropertyName = Object.keys(m)[0];
246
+ if (firstPropertyName !== undefined) {
247
+ vueApp.runWithContext(() => {
248
+ void proxy[firstPropertyName];
249
+ });
250
+ }
251
+ return proxy;
252
+ };
253
+ return { ...rawClient, clientFor };
103
254
  };
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zdHVicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUMsT0FBTyxLQUFLLGVBQWUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3pCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQ3RFLE9BQU8sS0FBSyxLQUFLLE1BQU0sOEJBQThCLENBQUE7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHakUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFnQixFQUFFLEVBQUUsRUFBRSxDQUM1QyxLQUFLLENBQUMsTUFBTSxDQUNWLEtBQUssQ0FBQyxLQUFLLEVBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDZixNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQWlCLEVBQUUsRUFBRTtRQUNwQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxL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
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zdHVicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5QyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssZUFBZSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN6RCxPQUFPLEtBQUssS0FBSyxNQUFNLGlCQUFpQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUUvQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sR0FBVSxFQUFFLEVBQUUsRUFBRSxDQUM1QyxLQUFLLENBQUMsTUFBTSxDQUNWLEtBQUssQ0FBQyxLQUFLLEVBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDZixNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQWlC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
@@ -4,7 +4,7 @@ import { buildFieldInfoFromFieldsRoot, translate } from "../src/form.js"
4
4
  // test schema with integer field
5
5
  class TestSchema extends S.Class<TestSchema>("TestSchema")({
6
6
  integerField: S.Int,
7
- numberField: S.Number,
7
+ numberField: S.Finite,
8
8
  stringField: S.String
9
9
  }) {}
10
10
 
@@ -137,22 +137,26 @@ it("validates integer field with valid integer", () =>
137
137
  .pipe(Effect.runPromise))
138
138
 
139
139
  it("error message format matches regex pattern", () => {
140
- // test the actual error message format from Effect Schema
141
- const errorMessage = `Int
142
- └─ From side refinement failure
143
- └─ Int
144
- └─ Predicate refinement failure
145
- └─ Expected an integer, actual 59.5`
146
-
147
- const integerMatch = errorMessage.match(/Expected.*integer.*actual\s+(.+)/i)
148
- expect(integerMatch).toBeTruthy()
149
- expect(integerMatch![1]).toBe("59.5")
150
-
151
- const numberErrorMessage = `Number
152
- └─ Type side transformation failure
153
- └─ Expected a number, actual "not-a-number"`
154
-
155
- const numberMatch = numberErrorMessage.match(/Expected.*number.*actual\s+(.+)/i)
156
- expect(numberMatch).toBeTruthy()
157
- expect(numberMatch![1]).toBe("\"not-a-number\"")
140
+ // test the actual error message format from Effect Schema (both old "actual" and new "got" formats)
141
+ const errorMessageOld = `Expected an integer, actual 59.5`
142
+ const errorMessageNew = `SchemaError(Expected an integer, got 59.5)`
143
+
144
+ const oldMatch = errorMessageOld.match(/Expected.*integer.*(?:actual|got)\s+([^)]+)/i)
145
+ expect(oldMatch).toBeTruthy()
146
+ expect(oldMatch![1]).toBe("59.5")
147
+
148
+ const newMatch = errorMessageNew.match(/Expected.*integer.*(?:actual|got)\s+([^)]+)/i)
149
+ expect(newMatch).toBeTruthy()
150
+ expect(newMatch![1]).toBe("59.5")
151
+
152
+ const numberErrorOld = `Expected a number, actual "not-a-number"`
153
+ const numberErrorNew = `SchemaError(Expected a finite number, got "not-a-number")`
154
+
155
+ const numOldMatch = numberErrorOld.match(/Expected.*number.*(?:actual|got)\s+([^)]+)/i)
156
+ expect(numOldMatch).toBeTruthy()
157
+ expect(numOldMatch![1]).toBe("\"not-a-number\"")
158
+
159
+ const numNewMatch = numberErrorNew.match(/Expected.*number.*(?:actual|got)\s+([^)]+)/i)
160
+ expect(numNewMatch).toBeTruthy()
161
+ expect(numNewMatch![1]).toBe("\"not-a-number\"")
158
162
  })
package/test/form.test.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Effect, S } from "effect-app"
2
- import { buildFieldInfoFromFieldsRoot, type DiscriminatedUnionFieldInfo, type FieldInfo, type NestedFieldInfo, type UnionFieldInfo } from "../src/form.js"
2
+ import { buildFieldInfoFromFieldsRoot, type DiscriminatedUnionFieldInfo, type FieldInfo, getMetadataFromSchema, type NestedFieldInfo, type UnionFieldInfo } from "../src/form.js"
3
3
 
4
4
  export class NestedSchema extends S.Class<NestedSchema>("NestedSchema")({
5
5
  shallow: S.String,
@@ -9,7 +9,11 @@ export class NestedSchema extends S.Class<NestedSchema>("NestedSchema")({
9
9
  deepest: S.Number
10
10
  })
11
11
  }),
12
- age: S.Struct({ nfs: S.NumberFromString.pipe(S.decodeTo(S.PositiveInt)) })
12
+ age: S.Struct({ nfs: S.NumberFromString.pipe(S.decodeTo(S.PositiveInt)) }),
13
+ testNumber: S.Number,
14
+ testFinite: S.Finite,
15
+ testNullableNummber: S.NullOr(S.Number),
16
+ testOptionalNumber: S.optional(S.Number)
13
17
  }) {}
14
18
 
15
19
  export class SchemaContainsClass extends S.Class<SchemaContainsClass>("SchemaContainsClass")({
@@ -156,6 +160,15 @@ function testDiscriminatedUnionFieldInfo<T extends Record<PropertyKey, any>>(duf
156
160
  )
157
161
  }
158
162
 
163
+ it("getMetadataFromSchema handles composed numeric schemas", () => {
164
+ expect(getMetadataFromSchema(S.Number.ast).type).toBe("float")
165
+ expect(getMetadataFromSchema(S.Finite.ast).type).toBe("float")
166
+ expect(getMetadataFromSchema(S.PositiveNumber.ast).type).toBe("float")
167
+ expect(getMetadataFromSchema(S.Int.ast).type).toBe("int")
168
+ expect(getMetadataFromSchema(S.PositiveInt.ast).type).toBe("int")
169
+ expect(getMetadataFromSchema(S.NullOr(S.Number).ast).type).toBe("float")
170
+ })
171
+
159
172
  it("buildFieldInfo", () =>
160
173
  Effect
161
174
  .gen(function*() {
@@ -176,6 +189,11 @@ it("buildFieldInfo", () =>
176
189
  testNestedFieldInfo(nestedFieldinfo)
177
190
  testNestedFieldInfo(nestedFieldinfo.fields.nested)
178
191
  testNestedFieldInfo(nestedFieldinfo.fields.age)
192
+
193
+ expect(nestedFieldinfo.fields.testNumber.type).toBe("float")
194
+ expect(nestedFieldinfo.fields.testFinite.type).toBe("float")
195
+ expect(nestedFieldinfo.fields.testNullableNummber.type).toBe("float")
196
+ expect(nestedFieldinfo.fields.testOptionalNumber.type).toBe("float")
179
197
  })
180
198
  .pipe(Effect.runPromise))
181
199