@effect-app/infra 1.0.4 → 1.0.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 1.0.6
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [156664e]
8
+ - @effect-app/schema@1.0.2
9
+ - @effect-app/infra-adapters@1.0.2
10
+ - effect-app@1.0.2
11
+
12
+ ## 1.0.5
13
+
14
+ ### Patch Changes
15
+
16
+ - 9c1763c: fix: exit drain when a network error occurs.
17
+
3
18
  ## 1.0.4
4
19
 
5
20
  ### Patch Changes
@@ -40,6 +40,9 @@ function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSchema) {
40
40
  name: "ServiceBusQueue.drain." + queueDrainName
41
41
  });
42
42
  const rcc = yield* $(_RequestContextContainer.RequestContextContainer);
43
+ // TODO: or do async?
44
+ // This will make sure that the host receives the error (MainFiberSet.join), who will then interrupt everything and commence a shutdown and restart of app
45
+ const deferred = yield* $(_effectApp.Deferred.make());
43
46
  return {
44
47
  drain: (handleEvent, sessionId) => _effectApp.Effect.gen(function* ($) {
45
48
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -77,13 +80,13 @@ function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSchema) {
77
80
  }
78
81
  return yield* $((0, _ServiceBus.subscribe)({
79
82
  processMessage: x => processMessage(x.body).pipe(_effectApp.Effect.uninterruptible),
80
- processError: err => _effectApp.Effect.sync(() => (0, _errorReporter.captureException)(err.error))
83
+ processError: err => _effectApp.Deferred.completeWith(deferred, _effectApp.Effect.sync(() => (0, _errorReporter.captureException)(err.error)).pipe(_effectApp.Effect.andThen(_effectApp.Effect.fail(err.error))))
81
84
  }, sessionId).pipe(_effectApp.Effect.provideService(_ServiceBus.ServiceBusReceiverFactory, receiver)));
82
- }).pipe(_effectApp.Effect.andThen(_effectApp.Effect.never)),
85
+ }).pipe(_effectApp.Effect.andThen(_effectApp.Deferred.await(deferred).pipe(_effectApp.Effect.orDie))),
83
86
  publish: (...messages) => _effectApp.Effect.gen(function* ($) {
84
87
  const requestContext = yield* $(rcc.requestContext);
85
88
  const span = yield* $(_effectApp.Effect.serviceOption(_effect.Tracer.ParentSpan));
86
- return yield* $(_effectApp.Effect.promise(() => s.sendMessages(messages.map(m => ({
89
+ return yield* $(_effectApp.Effect.promise(abortSignal => s.sendMessages(messages.map(m => ({
87
90
  body: JSON.stringify(_effectApp.S.encodeSync(wireSchema)({
88
91
  body: m,
89
92
  meta: {
@@ -95,7 +98,9 @@ function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSchema) {
95
98
  /* correllationid: requestId */
96
99
  contentType: "application/json",
97
100
  sessionId: "sessionId" in m ? m.sessionId : undefined
98
- })))));
101
+ })), {
102
+ abortSignal
103
+ })));
99
104
  })
100
105
  };
101
106
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sbqueue.cjs","names":["_ServiceBus","require","_errorReporter","_RequestContext","_effect","_effectApp","_ids","_schema","_utils","_setupRequest","_RequestContextContainer","_errors","_service","makeServiceBusQueue","_queueName","queueDrainName","schema","drainSchema","wireSchema","S","Struct","body","meta","QueueMeta","drainW","parseDrain","flow","decodeUnknown","Effect","orDie","gen","$","s","Sender","receiver","ServiceBusReceiverFactory","silenceAndReportError","reportNonInterruptedFailure","name","reportError","reportNonInterruptedFailureCause","rcc","RequestContextContainer","drain","handleEvent","sessionId","processMessage","messageBody","sync","JSON","parse","pipe","flatMap","x","effect","logDebug","annotateLogs","pretty","zipRight","_","setupRequestContext","RequestContext","inherit","requestContext","id","RequestId","locale","NonEmptyString255","_tag","withSpan","attributes","Object","entries","reduce","prev","key","value","length","substring","Array","isArray","undefined","keys","span","withParentSpan","Tracer","externalSpan","tapErrorCause","subscribe","uninterruptible","processError","err","captureException","error","provideService","andThen","never","publish","messages","serviceOption","ParentSpan","promise","sendMessages","map","m","stringify","encodeSync","Option","getOrUndefined","messageId","contentType","makeServiceBusLayers","url","queueName","Layer","merge","Live","LiveSender","provide","LiveServiceBusClient"],"sources":["../../../src/services/QueueMaker/sbqueue.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sbqueue.cjs","names":["_ServiceBus","require","_errorReporter","_RequestContext","_effect","_effectApp","_ids","_schema","_utils","_setupRequest","_RequestContextContainer","_errors","_service","makeServiceBusQueue","_queueName","queueDrainName","schema","drainSchema","wireSchema","S","Struct","body","meta","QueueMeta","drainW","parseDrain","flow","decodeUnknown","Effect","orDie","gen","$","s","Sender","receiver","ServiceBusReceiverFactory","silenceAndReportError","reportNonInterruptedFailure","name","reportError","reportNonInterruptedFailureCause","rcc","RequestContextContainer","deferred","Deferred","make","drain","handleEvent","sessionId","processMessage","messageBody","sync","JSON","parse","pipe","flatMap","x","effect","logDebug","annotateLogs","pretty","zipRight","_","setupRequestContext","RequestContext","inherit","requestContext","id","RequestId","locale","NonEmptyString255","_tag","withSpan","attributes","Object","entries","reduce","prev","key","value","length","substring","Array","isArray","undefined","keys","span","withParentSpan","Tracer","externalSpan","tapErrorCause","subscribe","uninterruptible","processError","err","completeWith","captureException","error","andThen","fail","provideService","await","publish","messages","serviceOption","ParentSpan","promise","abortSignal","sendMessages","map","m","stringify","encodeSync","Option","getOrUndefined","messageId","contentType","makeServiceBusLayers","url","queueName","Layer","merge","Live","LiveSender","provide","LiveServiceBusClient"],"sources":["../../../src/services/QueueMaker/sbqueue.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -46,7 +46,7 @@ declare const Operations_base: (abstract new (service: {
46
46
  all: Effect.Effect<Operation[], never, never>;
47
47
  find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
48
48
  update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
49
- }) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, Operations | R_5> : Effect<X, never, Operations>;
49
+ }) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, R_5 | Operations> : Effect<X, never, Operations>;
50
50
  };
51
51
  export declare class Operations extends Operations_base {
52
52
  private static readonly CleanupLive;
@@ -1 +1 @@
1
- {"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yBAAyB,EAE1B,MAAM,uCAAuC,CAAA;AAI9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAU,CAAC,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAIvE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,EACJ,SAAS,EAET,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;yCAkBvB,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM;;+GA4GzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wGAI1F"}
1
+ {"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,yBAAyB,EAE1B,MAAM,uCAAuC,CAAA;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAY,MAAM,EAAQ,KAAK,EAAU,CAAC,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAIvE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,EACJ,SAAS,EAET,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;yCAsBvB,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM;;+GAmHzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wGAI1F"}
@@ -2,7 +2,7 @@ import { LiveSender, LiveServiceBusClient, Sender, ServiceBusReceiverFactory, su
2
2
  import { captureException } from "@effect-app/infra/errorReporter";
3
3
  import { RequestContext } from "@effect-app/infra/RequestContext";
4
4
  import { Tracer } from "effect";
5
- import { Effect, flow, Layer, Option, S } from "effect-app";
5
+ import { Deferred, Effect, flow, Layer, Option, S } from "effect-app";
6
6
  import { RequestId } from "effect-app/ids";
7
7
  import { NonEmptyString255 } from "effect-app/schema";
8
8
  import { pretty } from "effect-app/utils";
@@ -26,6 +26,9 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
26
26
  const silenceAndReportError = reportNonInterruptedFailure({ name: "ServiceBusQueue.drain." + queueDrainName });
27
27
  const reportError = reportNonInterruptedFailureCause({ name: "ServiceBusQueue.drain." + queueDrainName });
28
28
  const rcc = yield* $(RequestContextContainer);
29
+ // TODO: or do async?
30
+ // This will make sure that the host receives the error (MainFiberSet.join), who will then interrupt everything and commence a shutdown and restart of app
31
+ const deferred = yield* $(Deferred.make());
29
32
  return {
30
33
  drain: (handleEvent, sessionId) => Effect
31
34
  .gen(function* ($) {
@@ -81,17 +84,19 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
81
84
  }
82
85
  return yield* $(subscribe({
83
86
  processMessage: (x) => processMessage(x.body).pipe(Effect.uninterruptible),
84
- processError: (err) => Effect.sync(() => captureException(err.error))
87
+ processError: (err) => Deferred.completeWith(deferred, Effect
88
+ .sync(() => captureException(err.error))
89
+ .pipe(Effect.andThen(Effect.fail(err.error))))
85
90
  }, sessionId)
86
91
  .pipe(Effect.provideService(ServiceBusReceiverFactory, receiver)));
87
92
  })
88
- .pipe(Effect.andThen(Effect.never)),
93
+ .pipe(Effect.andThen(Deferred.await(deferred).pipe(Effect.orDie))),
89
94
  publish: (...messages) => Effect
90
95
  .gen(function* ($) {
91
96
  const requestContext = yield* $(rcc.requestContext);
92
97
  const span = yield* $(Effect.serviceOption(Tracer.ParentSpan));
93
98
  return yield* $(Effect
94
- .promise(() => s.sendMessages(messages.map((m) => ({
99
+ .promise((abortSignal) => s.sendMessages(messages.map((m) => ({
95
100
  body: JSON.stringify(S.encodeSync(wireSchema)({
96
101
  body: m,
97
102
  meta: { requestContext, span: Option.getOrUndefined(span) }
@@ -99,7 +104,7 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
99
104
  messageId: m.id, /* correllationid: requestId */
100
105
  contentType: "application/json",
101
106
  sessionId: "sessionId" in m ? m.sessionId : undefined
102
- })))));
107
+ })), { abortSignal })));
103
108
  })
104
109
  };
105
110
  });
@@ -110,4 +115,4 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
110
115
  export function makeServiceBusLayers(url, queueName, queueDrainName) {
111
116
  return Layer.merge(ServiceBusReceiverFactory.Live(queueDrainName), LiveSender(queueName)).pipe(Layer.provide(LiveServiceBusClient(url)));
112
117
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NicXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLHlCQUF5QixFQUN6QixTQUFTLEVBQ1YsTUFBTSx1Q0FBdUMsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzRixPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FNakMsVUFBa0IsRUFDbEIsY0FBc0IsRUFDdEIsTUFBMkIsRUFDM0IsV0FBMEM7SUFFMUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUks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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NicXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLHlCQUF5QixFQUN6QixTQUFTLEVBQ1YsTUFBTSx1Q0FBdUMsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0YsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBTWpDLFVBQWtCLEVBQ2xCLGNBQXNCLEVBQ3RCLE1BQTJCLEVBQzNCLFdBQTBDO0lBRTFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxFQUFFLE1BQU07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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -18,10 +18,10 @@
18
18
  "proper-lockfile": "^4.1.2",
19
19
  "pure-rand": "6.1.0",
20
20
  "redlock": "^4.2.0",
21
+ "@effect-app/infra-adapters": "1.0.2",
22
+ "effect-app": "1.0.2",
21
23
  "@effect-app/core": "1.0.0",
22
- "@effect-app/schema": "1.0.1",
23
- "@effect-app/infra-adapters": "1.0.1",
24
- "effect-app": "1.0.1"
24
+ "@effect-app/schema": "1.0.2"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@babel/cli": "^7.24.1",
@@ -1,3 +1,4 @@
1
+ import type { ServiceBusError } from "@azure/service-bus"
1
2
  import {
2
3
  LiveSender,
3
4
  LiveServiceBusClient,
@@ -5,11 +6,10 @@ import {
5
6
  ServiceBusReceiverFactory,
6
7
  subscribe
7
8
  } from "@effect-app/infra-adapters/ServiceBus"
8
- import type {} from "@azure/service-bus"
9
9
  import { captureException } from "@effect-app/infra/errorReporter"
10
10
  import { RequestContext } from "@effect-app/infra/RequestContext"
11
11
  import { Tracer } from "effect"
12
- import { Effect, flow, Layer, Option, S } from "effect-app"
12
+ import { Deferred, Effect, flow, Layer, Option, S } from "effect-app"
13
13
  import { RequestId } from "effect-app/ids"
14
14
  import type { StringId } from "effect-app/schema"
15
15
  import { NonEmptyString255 } from "effect-app/schema"
@@ -47,6 +47,10 @@ export function makeServiceBusQueue<
47
47
  const reportError = reportNonInterruptedFailureCause({ name: "ServiceBusQueue.drain." + queueDrainName })
48
48
  const rcc = yield* $(RequestContextContainer)
49
49
 
50
+ // TODO: or do async?
51
+ // This will make sure that the host receives the error (MainFiberSet.join), who will then interrupt everything and commence a shutdown and restart of app
52
+ const deferred = yield* $(Deferred.make<never, ServiceBusError | Error>())
53
+
50
54
  return {
51
55
  drain: <DrainE, DrainR>(
52
56
  handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>,
@@ -125,12 +129,18 @@ export function makeServiceBusQueue<
125
129
  return yield* $(
126
130
  subscribe({
127
131
  processMessage: (x) => processMessage(x.body).pipe(Effect.uninterruptible),
128
- processError: (err) => Effect.sync(() => captureException(err.error))
132
+ processError: (err) =>
133
+ Deferred.completeWith(
134
+ deferred,
135
+ Effect
136
+ .sync(() => captureException(err.error))
137
+ .pipe(Effect.andThen(Effect.fail(err.error)))
138
+ )
129
139
  }, sessionId)
130
140
  .pipe(Effect.provideService(ServiceBusReceiverFactory, receiver))
131
141
  )
132
142
  })
133
- .pipe(Effect.andThen(Effect.never)),
143
+ .pipe(Effect.andThen(Deferred.await(deferred).pipe(Effect.orDie))),
134
144
 
135
145
  publish: (...messages) =>
136
146
  Effect
@@ -139,7 +149,7 @@ export function makeServiceBusQueue<
139
149
  const span = yield* $(Effect.serviceOption(Tracer.ParentSpan))
140
150
  return yield* $(
141
151
  Effect
142
- .promise(() =>
152
+ .promise((abortSignal) =>
143
153
  s.sendMessages(
144
154
  messages.map((m) => ({
145
155
  body: JSON.stringify(
@@ -151,7 +161,8 @@ export function makeServiceBusQueue<
151
161
  messageId: m.id, /* correllationid: requestId */
152
162
  contentType: "application/json",
153
163
  sessionId: "sessionId" in m ? m.sessionId : undefined
154
- }))
164
+ })),
165
+ { abortSignal }
155
166
  )
156
167
  )
157
168
  )