|
1 | | -import { Effect, Schema } from 'effect'; |
| 1 | +import { Effect, pipe, Schema } from 'effect'; |
2 | 2 | import { |
3 | 3 | onDocumentCreated, |
4 | 4 | onDocumentCreatedWithAuthContext, |
@@ -47,15 +47,21 @@ export function onDocumentCreatedEffect< |
47 | 47 | const schema = options.schema ?? Schema.Unknown; |
48 | 48 |
|
49 | 49 | return onDocumentCreated(options, async (event) => { |
50 | | - const effect = Effect.gen(function* () { |
51 | | - const data = yield* decodeDocumentData( |
| 50 | + const effect = pipe( |
| 51 | + decodeDocumentData( |
52 | 52 | event.data?.data(), |
53 | 53 | event.data?.id, |
54 | 54 | schema, |
55 | 55 | options.idField |
56 | | - ); |
57 | | - return yield* handler(data as Schema.Schema.Type<S>, event); |
58 | | - }).pipe(Effect.withSpan('onDocumentCreatedEffect')); |
| 56 | + ), |
| 57 | + Effect.tap(() => |
| 58 | + Effect.annotateCurrentSpan({ |
| 59 | + document: event.data?.ref.path ?? 'unknown', |
| 60 | + }) |
| 61 | + ), |
| 62 | + Effect.flatMap((data) => handler(data as Schema.Schema.Type<S>, event)), |
| 63 | + Effect.withSpan('onDocumentCreatedEffect') |
| 64 | + ); |
59 | 65 |
|
60 | 66 | await run( |
61 | 67 | options.runtime, |
@@ -97,6 +103,9 @@ export function onDocumentCreatedWithAuthContextEffect< |
97 | 103 |
|
98 | 104 | return onDocumentCreatedWithAuthContext(options, async (event) => { |
99 | 105 | const effect = Effect.gen(function* () { |
| 106 | + yield* Effect.annotateCurrentSpan({ |
| 107 | + document: event.data?.ref.path ?? 'unknown', |
| 108 | + }); |
100 | 109 | const data = yield* decodeDocumentData( |
101 | 110 | event.data?.data(), |
102 | 111 | event.data?.id, |
|
0 commit comments