@effect-app/infra 2.54.3 → 2.54.4
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
|
@@ -9,7 +9,7 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
9
9
|
id: StringId;
|
|
10
10
|
_tag: string;
|
|
11
11
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
12
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, import("../RequestContext.js").LocaleRef | import("../Store/
|
|
12
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, import("../RequestContext.js").LocaleRef | import("../Store/Memory.js").storeId | import("../Store/ContextMapContainer.js").ContextMapContainer>, ServiceBusReceiverFactory>>;
|
|
13
13
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
14
14
|
}, never, import("@azure/service-bus").ServiceBusSender | ServiceBusReceiverFactory>;
|
|
15
15
|
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): Layer.Layer<import("@azure/service-bus").ServiceBusSender | ServiceBusReceiverFactory, never, never>;
|
|
@@ -23,7 +23,7 @@ declare const ServiceBusReceiverFactory_base: (abstract new (service: {
|
|
|
23
23
|
use: <X>(body: (_: {
|
|
24
24
|
make: (waitTillEmpty: Effect<void>) => Effect<ServiceBusReceiver, never, Scope>;
|
|
25
25
|
makeSession: (sessionId: string, waitTillEmpty: Effect<void>) => Effect<ServiceBusReceiver, never, Scope>;
|
|
26
|
-
}) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1,
|
|
26
|
+
}) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1, ServiceBusReceiverFactory | R_3> : Effect.Effect<X, never, ServiceBusReceiverFactory>;
|
|
27
27
|
};
|
|
28
28
|
export declare class ServiceBusReceiverFactory extends ServiceBusReceiverFactory_base {
|
|
29
29
|
static readonly Live: (queueName: string) => Layer.Layer<ServiceBusReceiverFactory, never, ServiceBusClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceBus.d.ts","sourceRoot":"","sources":["../../src/adapters/ServiceBus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC5O,OAAO,EAAS,OAAO,EAAE,MAAM,EAAkB,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ServiceBus.d.ts","sourceRoot":"","sources":["../../src/adapters/ServiceBus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC5O,OAAO,EAAS,OAAO,EAAE,MAAM,EAAkB,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AActF,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,gDAA0C,CAAA;AAc1F,eAAO,MAAM,MAAM,iDAA2D,CAAA;AAE9E,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,0DAG3C;;UA0BO,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;UADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;UADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;;;;;;;;;cADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;qBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;;AAJ3G,qBAAa,yBAA0B,SAAQ,8BAK3C;IACF,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAI,WAAW,MAAM,qEAMlC;CACR;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,EAC1E,OAAO,CAAC,EAAE,oBAAoB,gDAM/B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,qFAmD3F;AAED,MAAM,WAAW,eAAe,CAAC,IAAI,EAAE,IAAI;IACzC;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7E;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAChE"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
|
|
2
2
|
import { ServiceBusClient } from "@azure/service-bus";
|
|
3
3
|
import { Cause, Context, Effect, Exit, FiberSet, Layer } from "effect-app";
|
|
4
|
-
import { InfraLogger } from "
|
|
4
|
+
import { InfraLogger } from "../logger.js";
|
|
5
|
+
const withSpanAndLog = (name) => (self) => self.pipe(Effect.withLogSpan(name), Effect.withSpan(name));
|
|
5
6
|
function makeClient(url) {
|
|
6
|
-
return Effect.acquireRelease(Effect.sync(() => new ServiceBusClient(url)).pipe(
|
|
7
|
+
return Effect.acquireRelease(Effect.sync(() => new ServiceBusClient(url)).pipe(withSpanAndLog("ServiceBus.client.create")), (client) => Effect.promise(() => client.close()).pipe(withSpanAndLog("ServiceBus.client.close")));
|
|
7
8
|
}
|
|
8
9
|
const Client = Context.GenericTag("@services/Client");
|
|
9
10
|
export const LiveServiceBusClient = (url) => Layer.scoped(Client)(makeClient(url));
|
|
10
11
|
function makeSender(queueName) {
|
|
11
12
|
return Effect.gen(function* () {
|
|
12
13
|
const serviceBusClient = yield* Client;
|
|
13
|
-
return yield* Effect.acquireRelease(Effect.sync(() => serviceBusClient.createSender(queueName)).pipe(
|
|
14
|
+
return yield* Effect.acquireRelease(Effect.sync(() => serviceBusClient.createSender(queueName)).pipe(withSpanAndLog(`ServiceBus.sender.create ${queueName}`)), (sender) => Effect.promise(() => sender.close()).pipe(withSpanAndLog(`ServiceBus.sender.close ${queueName}`)));
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
17
|
export const Sender = Context.GenericTag("@services/Sender");
|
|
@@ -24,7 +25,7 @@ function makeReceiver(queueName, waitTillEmpty, sessionId) {
|
|
|
24
25
|
return yield* Effect.acquireRelease((sessionId
|
|
25
26
|
? Effect.promise(() => serviceBusClient.acceptSession(queueName, sessionId))
|
|
26
27
|
: Effect.sync(() => serviceBusClient.createReceiver(queueName)))
|
|
27
|
-
.pipe(
|
|
28
|
+
.pipe(withSpanAndLog(`ServiceBus.receiver.create ${queueName}.${sessionId}`)), (r) => waitTillEmpty.pipe(withSpanAndLog(`ServiceBus.receiver.waitTillEmpty ${queueName}.${sessionId}`), Effect.andThen(Effect.promise(() => r.close()).pipe(withSpanAndLog(`ServiceBus.receiver.close ${queueName}.${sessionId}`))), withSpanAndLog(`ServiceBus.receiver.release ${queueName}.${sessionId}`)));
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
31
|
export class ServiceBusReceiverFactory extends Context.TagId("ServiceBusReceiverFactory")() {
|
|
@@ -74,7 +75,7 @@ export function subscribe(hndlr, sessionId) {
|
|
|
74
75
|
processMessage: (msg) => runEffect(hndlr.processMessage(msg))
|
|
75
76
|
// DO NOT CATCH ERRORS here as they should return to the queue!
|
|
76
77
|
}))
|
|
77
|
-
.pipe(
|
|
78
|
+
.pipe(withSpanAndLog(`ServiceBus.subscription.create ${sessionId}`)), (subscription) => Effect.promise(() => subscription.close()).pipe(withSpanAndLog(`ServiceBus.subscription.close ${sessionId}`)));
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9TZXJ2aWNlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxPQUFPLEVBQW9ELGdCQUFnQixFQUF1SSxNQUFNLG9CQUFvQixDQUFBO0FBQzVPLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxNQUFNLFlBQVksQ0FBQTtBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFVLElBQXFCLEVBQUUsRUFBRSxDQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBRTVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUMsRUFDN0YsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQ2pHLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBbUIsa0JBQWtCLENBQUMsQ0FBQTtBQUN2RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdB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
|
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
|
|
2
2
|
import { type OperationOptionsBase, type ProcessErrorArgs, ServiceBusClient, type ServiceBusMessage, type ServiceBusMessageBatch, type ServiceBusReceivedMessage, type ServiceBusReceiver, type ServiceBusSender } from "@azure/service-bus"
|
|
3
3
|
import { Cause, Context, Effect, Exit, FiberSet, Layer, type Scope } from "effect-app"
|
|
4
|
-
import { InfraLogger } from "
|
|
4
|
+
import { InfraLogger } from "../logger.js"
|
|
5
|
+
|
|
6
|
+
const withSpanAndLog = (name: string) => <A, E, R>(self: Effect<A, E, R>) =>
|
|
7
|
+
self.pipe(Effect.withLogSpan(name), Effect.withSpan(name))
|
|
5
8
|
|
|
6
9
|
function makeClient(url: string) {
|
|
7
10
|
return Effect.acquireRelease(
|
|
8
|
-
Effect.sync(() => new ServiceBusClient(url)).pipe(
|
|
9
|
-
(client) => Effect.promise(() => client.close()).pipe(
|
|
11
|
+
Effect.sync(() => new ServiceBusClient(url)).pipe(withSpanAndLog("ServiceBus.client.create")),
|
|
12
|
+
(client) => Effect.promise(() => client.close()).pipe(withSpanAndLog("ServiceBus.client.close"))
|
|
10
13
|
)
|
|
11
14
|
}
|
|
12
15
|
|
|
@@ -19,9 +22,9 @@ function makeSender(queueName: string) {
|
|
|
19
22
|
|
|
20
23
|
return yield* Effect.acquireRelease(
|
|
21
24
|
Effect.sync(() => serviceBusClient.createSender(queueName)).pipe(
|
|
22
|
-
|
|
25
|
+
withSpanAndLog(`ServiceBus.sender.create ${queueName}`)
|
|
23
26
|
),
|
|
24
|
-
(sender) => Effect.promise(() => sender.close()).pipe(
|
|
27
|
+
(sender) => Effect.promise(() => sender.close()).pipe(withSpanAndLog(`ServiceBus.sender.close ${queueName}`))
|
|
25
28
|
)
|
|
26
29
|
})
|
|
27
30
|
}
|
|
@@ -40,14 +43,14 @@ function makeReceiver(queueName: string, waitTillEmpty: Effect<void>, sessionId?
|
|
|
40
43
|
(sessionId
|
|
41
44
|
? Effect.promise(() => serviceBusClient.acceptSession(queueName, sessionId))
|
|
42
45
|
: Effect.sync(() => serviceBusClient.createReceiver(queueName)))
|
|
43
|
-
.pipe(
|
|
46
|
+
.pipe(withSpanAndLog(`ServiceBus.receiver.create ${queueName}.${sessionId}`)),
|
|
44
47
|
(r) =>
|
|
45
48
|
waitTillEmpty.pipe(
|
|
46
|
-
|
|
49
|
+
withSpanAndLog(`ServiceBus.receiver.waitTillEmpty ${queueName}.${sessionId}`),
|
|
47
50
|
Effect.andThen(
|
|
48
|
-
Effect.promise(() => r.close()).pipe(
|
|
51
|
+
Effect.promise(() => r.close()).pipe(withSpanAndLog(`ServiceBus.receiver.close ${queueName}.${sessionId}`))
|
|
49
52
|
),
|
|
50
|
-
|
|
53
|
+
withSpanAndLog(`ServiceBus.receiver.release ${queueName}.${sessionId}`)
|
|
51
54
|
)
|
|
52
55
|
)
|
|
53
56
|
})
|
|
@@ -124,9 +127,9 @@ export function subscribe<RMsg, RErr>(hndlr: MessageHandlers<RMsg, RErr>, sessio
|
|
|
124
127
|
// DO NOT CATCH ERRORS here as they should return to the queue!
|
|
125
128
|
})
|
|
126
129
|
)
|
|
127
|
-
.pipe(
|
|
130
|
+
.pipe(withSpanAndLog(`ServiceBus.subscription.create ${sessionId}`)),
|
|
128
131
|
(subscription) =>
|
|
129
|
-
Effect.promise(() => subscription.close()).pipe(
|
|
132
|
+
Effect.promise(() => subscription.close()).pipe(withSpanAndLog(`ServiceBus.subscription.close ${sessionId}`))
|
|
130
133
|
)
|
|
131
134
|
})
|
|
132
135
|
}
|