@effect-app/vue 4.0.0-beta.185 → 4.0.0-beta.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/commander.js CHANGED
@@ -284,6 +284,7 @@ export const CommanderStatic = {
284
284
  *
285
285
  * Unlike `withDefaultToast` (which only wraps the initial `Effect`), this combinator:
286
286
  * - Shows the "waiting" toast **before** the stream starts
287
+ * - Updates the waiting toast with progress text when `progress` is set and a new element arrives
287
288
  * - Shows the "success" toast only **after** the stream drains fully without error
288
289
  * - Shows the "failure" toast if the stream errors or fails
289
290
  *
@@ -294,7 +295,12 @@ export const CommanderStatic = {
294
295
  * ```ts
295
296
  * Command.streamFn("exportData")(
296
297
  * function*(arg, ctx) { return makeExportStream(arg.id) },
297
- * Command.withDefaultToastStream()
298
+ * Command.withDefaultToastStream({
299
+ * progress: (r) =>
300
+ * AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
301
+ * ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
302
+ * : undefined
303
+ * })
298
304
  * )
299
305
  * ```
300
306
  */
@@ -344,8 +350,20 @@ export const CommanderStatic = {
344
350
  const failureHandler = defaultFailureMessageHandler(hasCustomFailure ? intl.formatMessage({ id: customFailure }, cc.state) : cc.action, options?.errorRenderer);
345
351
  let lastValue = undefined;
346
352
  let didFail = false;
347
- const composed = rawStream.pipe(Stream.tap((v) => Effect.sync(() => {
353
+ const composed = rawStream.pipe(Stream.tap((v) => Effect.gen(function* () {
348
354
  lastValue = v;
355
+ if (options?.progress !== undefined) {
356
+ const p = options.progress(AsyncResult.success(v, { waiting: true }));
357
+ if (p !== undefined) {
358
+ // Update CommandProgress so CommandButton progress indicator is also driven
359
+ yield* CommandProgress.use((s) => s.update(p));
360
+ if (toastId !== undefined) {
361
+ const progressText = typeof p === "string" ? p : p.text;
362
+ const msg = waitingMsg ? `${waitingMsg}\n${progressText}` : progressText;
363
+ yield* toast.info(msg, { id: toastId });
364
+ }
365
+ }
366
+ }
349
367
  })), Stream.tapCause(Effect.fnUntraced(function* (cause) {
350
368
  didFail = true;
351
369
  if (Cause.hasInterruptsOnly(cause)) {
@@ -1108,4 +1126,4 @@ export class Commander extends Context.Service()("Commander", {
1108
1126
  static DefaultWithoutDependencies = Layer.effect(this, this.make);
1109
1127
  static Default = this.DefaultWithoutDependencies;
1110
1128
  }
1111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUE0QixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQXlCLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWxFLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxXQUFXLE1BQU0sd0NBQXdDLENBQUE7QUFFckUsT0FBTyxFQUFFLFFBQVEsRUFBb0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQXdDMUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFVLEVBQTBELEVBQUUsQ0FDN0YsT0FB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
1129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUE0QixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQXlCLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWxFLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxXQUFXLE1BQU0sd0NBQXdDLENBQUE7QUFFckUsT0FBTyxFQUFFLFFBQVEsRUFBb0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQXdDMUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFVLEVBQTBELEVBQUUsQ0FDN0YsT0FB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "4.0.0-beta.185",
3
+ "version": "4.0.0-beta.187",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
@@ -11,7 +11,7 @@
11
11
  "@vueuse/core": "^14.2.1",
12
12
  "change-case": "^5.4.4",
13
13
  "query-string": "^9.3.1",
14
- "effect-app": "4.0.0-beta.185"
14
+ "effect-app": "4.0.0-beta.187"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@effect/atom-vue": "^4.0.0-beta.59",
package/src/commander.ts CHANGED
@@ -2204,6 +2204,7 @@ export const CommanderStatic = {
2204
2204
  *
2205
2205
  * Unlike `withDefaultToast` (which only wraps the initial `Effect`), this combinator:
2206
2206
  * - Shows the "waiting" toast **before** the stream starts
2207
+ * - Updates the waiting toast with progress text when `progress` is set and a new element arrives
2207
2208
  * - Shows the "success" toast only **after** the stream drains fully without error
2208
2209
  * - Shows the "failure" toast if the stream errors or fails
2209
2210
  *
@@ -2214,7 +2215,12 @@ export const CommanderStatic = {
2214
2215
  * ```ts
2215
2216
  * Command.streamFn("exportData")(
2216
2217
  * function*(arg, ctx) { return makeExportStream(arg.id) },
2217
- * Command.withDefaultToastStream()
2218
+ * Command.withDefaultToastStream({
2219
+ * progress: (r) =>
2220
+ * AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
2221
+ * ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
2222
+ * : undefined
2223
+ * })
2218
2224
  * )
2219
2225
  * ```
2220
2226
  */
@@ -2237,6 +2243,8 @@ export const CommanderStatic = {
2237
2243
  | undefined
2238
2244
  | string
2239
2245
  | ((a: A, action: string, arg: NoInfer<Args>[0], ctx: NoInfer<Args>[1]) => string | null | undefined)
2246
+ /** Map each stream element to a progress label. When non-`undefined`, updates both the active waiting toast and the `CommandProgress` service (for CommandButton progress display). */
2247
+ progress?: (result: AsyncResult.AsyncResult<A, E>) => Progress | undefined
2240
2248
  }
2241
2249
  ) =>
2242
2250
  (
@@ -2300,8 +2308,20 @@ export const CommanderStatic = {
2300
2308
 
2301
2309
  const composed = rawStream.pipe(
2302
2310
  Stream.tap((v) =>
2303
- Effect.sync(() => {
2311
+ Effect.gen(function*() {
2304
2312
  lastValue = v
2313
+ if (options?.progress !== undefined) {
2314
+ const p = options.progress(AsyncResult.success(v, { waiting: true }))
2315
+ if (p !== undefined) {
2316
+ // Update CommandProgress so CommandButton progress indicator is also driven
2317
+ yield* CommandProgress.use((s) => s.update(p))
2318
+ if (toastId !== undefined) {
2319
+ const progressText = typeof p === "string" ? p : p.text
2320
+ const msg = waitingMsg ? `${waitingMsg}\n${progressText}` : progressText
2321
+ yield* toast.info(msg, { id: toastId })
2322
+ }
2323
+ }
2324
+ }
2305
2325
  })
2306
2326
  ),
2307
2327
  Stream.tapCause(Effect.fnUntraced(function*(cause) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamFn.test.d.ts","sourceRoot":"","sources":["../streamFn.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,218 @@
1
+ import { expect, it } from "@effect/vitest"
2
+ import { Effect, Fiber } from "effect-app"
3
+ import * as Stream from "effect/Stream"
4
+ import { AsyncResult } from "../src/lib.js"
5
+ import { useExperimental } from "./stubs.js"
6
+
7
+ // ---------------------------------------------------------------------------
8
+ // Helpers
9
+ // ---------------------------------------------------------------------------
10
+
11
+ /** Wait for the fiber spawned by `cmd.handle()` to finish. */
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ const join = (fiber: Fiber.Fiber<any, any>) => Fiber.join(fiber)
14
+
15
+ // ---------------------------------------------------------------------------
16
+ // Non-generator form — (arg) => Stream
17
+ // ---------------------------------------------------------------------------
18
+
19
+ it.live("streamFn: non-generator returning Stream runs stream and updates result", () =>
20
+ Effect.gen(function*() {
21
+ const Command = useExperimental({ toasts: [] })
22
+
23
+ const cmd = Command.streamFn("test-stream-plain")(
24
+ (_arg: number) => Stream.make(10, 20, 30)
25
+ )
26
+
27
+ expect(cmd.waiting).toBe(false)
28
+ yield* join(cmd.handle(1))
29
+
30
+ expect(cmd.result._tag).toBe("Success")
31
+ if (cmd.result._tag === "Success") {
32
+ expect(cmd.result.value).toBe(30)
33
+ expect(cmd.result.waiting).toBe(false)
34
+ }
35
+ }))
36
+
37
+ // ---------------------------------------------------------------------------
38
+ // Generator form — function*(arg) { yield* effect; return Stream }
39
+ // ---------------------------------------------------------------------------
40
+
41
+ it.live("streamFn: generator form executes yielded effects and subscribes to returned stream", () =>
42
+ Effect.gen(function*() {
43
+ const Command = useExperimental({ toasts: [] })
44
+
45
+ let generatorBodyExecuted = false
46
+
47
+ const cmd = Command.streamFn("test-stream-gen")(
48
+ function*(arg: number) {
49
+ generatorBodyExecuted = true
50
+ const doubled = yield* Effect.succeed(arg * 2)
51
+ return Stream.make(doubled, doubled + 1, doubled + 2)
52
+ }
53
+ )
54
+
55
+ yield* join(cmd.handle(5))
56
+
57
+ // Generator body MUST have run
58
+ expect(generatorBodyExecuted).toBe(true)
59
+
60
+ // Stream emitted three values: 10, 11, 12; last one should be in result
61
+ expect(cmd.result._tag).toBe("Success")
62
+ if (cmd.result._tag === "Success") {
63
+ expect(cmd.result.value).toBe(12)
64
+ expect(cmd.result.waiting).toBe(false)
65
+ }
66
+ }))
67
+
68
+ // ---------------------------------------------------------------------------
69
+ // Generator form with async effect (Effect.promise)
70
+ // ---------------------------------------------------------------------------
71
+
72
+ it.live("streamFn: generator form with async Effect.promise works", () =>
73
+ Effect.gen(function*() {
74
+ const Command = useExperimental({ toasts: [] })
75
+
76
+ let asyncValueReceived: string | undefined
77
+
78
+ const cmd = Command.streamFn("test-stream-gen-async")(
79
+ function*(arg: string) {
80
+ // Simulate the pattern from the bug report: yield* Effect.promise(...)
81
+ const result = yield* Effect.promise(() => Promise.resolve(`processed:${arg}`))
82
+ asyncValueReceived = result
83
+ return Stream.make(result, result + "!")
84
+ }
85
+ )
86
+
87
+ yield* join(cmd.handle("hello"))
88
+
89
+ expect(asyncValueReceived).toBe("processed:hello")
90
+ expect(cmd.result._tag).toBe("Success")
91
+ if (cmd.result._tag === "Success") {
92
+ expect(cmd.result.value).toBe("processed:hello!")
93
+ }
94
+ }))
95
+
96
+ // ---------------------------------------------------------------------------
97
+ // Non-generator returning Effect<Stream>
98
+ // ---------------------------------------------------------------------------
99
+
100
+ it.live("streamFn: non-generator returning Effect<Stream> runs stream", () =>
101
+ Effect.gen(function*() {
102
+ const Command = useExperimental({ toasts: [] })
103
+
104
+ const cmd = Command.streamFn("test-stream-effect-stream")(
105
+ (arg: number) => Effect.succeed(Stream.make(arg * 3, arg * 3 + 1))
106
+ )
107
+
108
+ yield* join(cmd.handle(4))
109
+
110
+ expect(cmd.result._tag).toBe("Success")
111
+ if (cmd.result._tag === "Success") {
112
+ expect(cmd.result.value).toBe(13) // 4*3+1 = 13
113
+ }
114
+ }))
115
+
116
+ // ---------------------------------------------------------------------------
117
+ // Generator form — waiting state flips correctly
118
+ // ---------------------------------------------------------------------------
119
+
120
+ it.live("streamFn: generator form sets waiting=true during execution then false after", () =>
121
+ Effect.gen(function*() {
122
+ const Command = useExperimental({ toasts: [] })
123
+
124
+ const cmd = Command.streamFn("test-stream-gen-waiting")(
125
+ function*(_arg: void) {
126
+ return Stream.make(1, 2, 3)
127
+ }
128
+ )
129
+
130
+ expect(cmd.waiting).toBe(false)
131
+ const fiber = cmd.handle()
132
+
133
+ // result transitions to initial(true) = waiting synchronously inside runStream
134
+ // after the fiber runs, waiting should settle to false
135
+ yield* join(fiber)
136
+ expect(cmd.waiting).toBe(false)
137
+
138
+ expect(AsyncResult.isSuccess(cmd.result)).toBe(true)
139
+ }))
140
+
141
+ // ---------------------------------------------------------------------------
142
+ // Generator form with a stream-transformer combinator
143
+ // ---------------------------------------------------------------------------
144
+
145
+ it.live("streamFn: generator form with combinator — combinator transforms the stream", () =>
146
+ Effect.gen(function*() {
147
+ const Command = useExperimental({ toasts: [] })
148
+
149
+ const emittedByCombinator: number[] = []
150
+
151
+ // A combinator that records each element it sees.
152
+ // The first argument may be a Stream or an Effect<Stream> (for generator-form handlers),
153
+ // matching how withDefaultToastStream handles it.
154
+ const spyCombinator = (
155
+ input: Stream.Stream<number, never, never> | Effect.Effect<Stream.Stream<number, never, never>>
156
+ ) => {
157
+ const stream: Stream.Stream<number, never, never> = Stream.isStream(input)
158
+ ? input
159
+ : Stream.unwrap(input as Effect.Effect<Stream.Stream<number, never, never>>)
160
+ return stream.pipe(
161
+ Stream.tap((v) =>
162
+ Effect.sync(() => {
163
+ emittedByCombinator.push(v)
164
+ })
165
+ )
166
+ )
167
+ }
168
+
169
+ const cmd = Command.streamFn("test-stream-gen-combinator")(
170
+ function*(arg: number) {
171
+ const base = yield* Effect.succeed(arg * 10)
172
+ return Stream.make(base, base + 1, base + 2)
173
+ },
174
+ // combinator receives (input, arg, ctx) — input is Stream or Effect<Stream> depending on handler form
175
+ (input: Stream.Stream<number, never, never> | Effect.Effect<Stream.Stream<number, never, never>>) =>
176
+ spyCombinator(input)
177
+ )
178
+
179
+ yield* join(cmd.handle(3))
180
+
181
+ // combinator must have seen all elements: 30, 31, 32
182
+ expect(emittedByCombinator).toEqual([30, 31, 32])
183
+
184
+ expect(cmd.result._tag).toBe("Success")
185
+ if (cmd.result._tag === "Success") {
186
+ expect(cmd.result.value).toBe(32)
187
+ }
188
+ }))
189
+
190
+ // ---------------------------------------------------------------------------
191
+ // Generator form — Stream.ensuring runs after stream completes
192
+ // ---------------------------------------------------------------------------
193
+
194
+ it.live("streamFn: generator form Stream.ensuring cleanup runs after stream ends", () =>
195
+ Effect.gen(function*() {
196
+ const Command = useExperimental({ toasts: [] })
197
+
198
+ let cleanupRan = false
199
+
200
+ const cmd = Command.streamFn("test-stream-gen-ensuring")(
201
+ function*(arg: number) {
202
+ const value = yield* Effect.succeed(arg + 100)
203
+ return Stream.make(value).pipe(
204
+ Stream.ensuring(Effect.sync(() => {
205
+ cleanupRan = true
206
+ }))
207
+ )
208
+ }
209
+ )
210
+
211
+ yield* join(cmd.handle(7))
212
+
213
+ expect(cleanupRan).toBe(true)
214
+ expect(cmd.result._tag).toBe("Success")
215
+ if (cmd.result._tag === "Success") {
216
+ expect(cmd.result.value).toBe(107)
217
+ }
218
+ }))