@effect-app/infra 4.0.0-beta.283 → 4.0.0-beta.284
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 +7 -0
- package/dist/ClusterCosmos.d.ts +15 -15
- package/dist/logger.d.ts +1 -1
- package/dist/routing.d.ts.map +1 -1
- package/dist/routing.js +6 -8
- package/package.json +2 -2
- package/src/routing.ts +9 -6
- package/dist/QueueMaker/SQLQueue.d.ts +0 -15
- package/dist/QueueMaker/SQLQueue.d.ts.map +0 -1
- package/dist/QueueMaker/SQLQueue.js +0 -148
- package/dist/QueueMaker/memQueue.d.ts +0 -15
- package/dist/QueueMaker/memQueue.d.ts.map +0 -1
- package/dist/QueueMaker/memQueue.js +0 -92
- package/dist/QueueMaker/sbqueue.d.ts +0 -16
- package/dist/QueueMaker/sbqueue.d.ts.map +0 -1
- package/dist/QueueMaker/sbqueue.js +0 -93
- package/dist/RequestFiberSet.d.ts +0 -39
- package/dist/RequestFiberSet.d.ts.map +0 -1
- package/dist/RequestFiberSet.js +0 -83
- package/dist/ServiceBus.d.ts +0 -61
- package/dist/ServiceBus.d.ts.map +0 -1
- package/dist/ServiceBus.js +0 -108
- package/dist/memQueue.d.ts +0 -15
- package/dist/memQueue.d.ts.map +0 -1
- package/dist/memQueue.js +0 -21
package/CHANGELOG.md
CHANGED
package/dist/ClusterCosmos.d.ts
CHANGED
|
@@ -18,25 +18,25 @@ export interface ClusterCosmosConfig {
|
|
|
18
18
|
export declare const makeMessageStorage: (options?: {
|
|
19
19
|
readonly prefix?: string | undefined;
|
|
20
20
|
} | undefined) => Effect.Effect<{
|
|
21
|
-
readonly saveRequest: <R extends import("effect/unstable/rpc/Rpc").Any>(envelope: import("effect/unstable/cluster/Message").OutgoingRequest<R>) => Effect.Effect<MessageStorage.SaveResult<R>,
|
|
22
|
-
readonly saveEnvelope: (envelope: import("effect/unstable/cluster/Message").OutgoingEnvelope) => Effect.Effect<void,
|
|
23
|
-
readonly saveReply: <R extends import("effect/unstable/rpc/Rpc").Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void,
|
|
24
|
-
readonly clearReplies: (requestId: Snowflake.Snowflake) => Effect.Effect<void, PersistenceError>;
|
|
25
|
-
readonly repliesFor: <R extends import("effect/unstable/rpc/Rpc").Any>(requests: Iterable<import("effect/unstable/cluster/Message").OutgoingRequest<R>>) => Effect.Effect<
|
|
26
|
-
readonly repliesForUnfiltered: (requestIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<
|
|
21
|
+
readonly saveRequest: <R extends import("effect/unstable/rpc/Rpc").Any>(envelope: import("effect/unstable/cluster/Message").OutgoingRequest<R>) => Effect.Effect<MessageStorage.SaveResult<R>, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
22
|
+
readonly saveEnvelope: (envelope: import("effect/unstable/cluster/Message").OutgoingEnvelope) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
23
|
+
readonly saveReply: <R extends import("effect/unstable/rpc/Rpc").Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
24
|
+
readonly clearReplies: (requestId: Snowflake.Snowflake) => Effect.Effect<void, PersistenceError, never>;
|
|
25
|
+
readonly repliesFor: <R extends import("effect/unstable/rpc/Rpc").Any>(requests: Iterable<import("effect/unstable/cluster/Message").OutgoingRequest<R>>) => Effect.Effect<Reply.Reply<R>[], import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
26
|
+
readonly repliesForUnfiltered: (requestIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Reply.Encoded[], import("effect/unstable/cluster/ClusterError").MalformedMessage | PersistenceError, never>;
|
|
27
27
|
readonly requestIdForPrimaryKey: (options: {
|
|
28
28
|
readonly address: import("effect/unstable/cluster/EntityAddress").EntityAddress;
|
|
29
29
|
readonly tag: string;
|
|
30
30
|
readonly id: string;
|
|
31
|
-
}) => Effect.Effect<Option.Option<Snowflake.Snowflake>, PersistenceError>;
|
|
32
|
-
readonly registerReplyHandler: <R extends import("effect/unstable/rpc/Rpc").Any>(message: import("effect/unstable/cluster/Message").OutgoingRequest<R> | import("effect/unstable/cluster/Message").IncomingRequest<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").EntityNotAssignedToRunner>;
|
|
33
|
-
readonly unregisterReplyHandler: (requestId: Snowflake.Snowflake) => Effect.Effect<void>;
|
|
34
|
-
readonly unregisterShardReplyHandlers: (shardId: ShardId.ShardId) => Effect.Effect<void>;
|
|
35
|
-
readonly unprocessedMessages: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<
|
|
36
|
-
readonly unprocessedMessagesById: <R extends import("effect/unstable/rpc/Rpc").Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<
|
|
37
|
-
readonly resetShards: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<void, PersistenceError>;
|
|
38
|
-
readonly resetAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError>;
|
|
39
|
-
readonly clearAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError>;
|
|
31
|
+
}) => Effect.Effect<Option.Option<Snowflake.Snowflake>, PersistenceError, never>;
|
|
32
|
+
readonly registerReplyHandler: <R extends import("effect/unstable/rpc/Rpc").Any>(message: import("effect/unstable/cluster/Message").OutgoingRequest<R> | import("effect/unstable/cluster/Message").IncomingRequest<R>) => Effect.Effect<void, import("effect/unstable/cluster/ClusterError").EntityNotAssignedToRunner, never>;
|
|
33
|
+
readonly unregisterReplyHandler: (requestId: Snowflake.Snowflake) => Effect.Effect<void, never, never>;
|
|
34
|
+
readonly unregisterShardReplyHandlers: (shardId: ShardId.ShardId) => Effect.Effect<void, never, never>;
|
|
35
|
+
readonly unprocessedMessages: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<import("effect/unstable/cluster/Message").Incoming<any>[], PersistenceError, never>;
|
|
36
|
+
readonly unprocessedMessagesById: <R extends import("effect/unstable/rpc/Rpc").Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<import("effect/unstable/cluster/Message").Incoming<R>[], PersistenceError, never>;
|
|
37
|
+
readonly resetShards: (shardIds: Iterable<ShardId.ShardId>) => Effect.Effect<void, PersistenceError, never>;
|
|
38
|
+
readonly resetAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError, never>;
|
|
39
|
+
readonly clearAddress: (address: import("effect/unstable/cluster/EntityAddress").EntityAddress) => Effect.Effect<void, PersistenceError, never>;
|
|
40
40
|
readonly withTransaction: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
41
41
|
}, never, CosmosClient | Snowflake.Generator>;
|
|
42
42
|
export declare const makeRunnerStorage: (options?: {
|
package/dist/logger.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare const InfraLogger: {
|
|
|
3
3
|
logError: (...message: readonly any[]) => import("effect/Effect").Effect<void, never, never>;
|
|
4
4
|
logFatal: (...message: readonly any[]) => import("effect/Effect").Effect<void, never, never>;
|
|
5
5
|
logInfo: (...message: ReadonlyArray<any>) => import("effect/Effect").Effect<void, never, never>;
|
|
6
|
-
logDebug: (...message:
|
|
6
|
+
logDebug: (...message: readonly any[]) => import("effect/Effect").Effect<void, never, never>;
|
|
7
7
|
logWithLevel: (level: import("effect/LogLevel").Severity, ...message: readonly any[]) => import("effect/Effect").Effect<void, never, never>;
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/routing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
|
package/dist/routing.js
CHANGED
|
@@ -108,6 +108,9 @@ export const makeRouter = (middlewareLive) => {
|
|
|
108
108
|
: resource,
|
|
109
109
|
(payload, headers) => {
|
|
110
110
|
const result = handler.handler(payload, headers);
|
|
111
|
+
const readsRef = Ref.makeUnsafe([]);
|
|
112
|
+
const writesRef = Ref.makeUnsafe([]);
|
|
113
|
+
const dependencyRecorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef);
|
|
111
114
|
if (resource.stream) {
|
|
112
115
|
// Wrap stream items as { _tag: "value", value } and append a final
|
|
113
116
|
// { _tag: "done", metadata } chunk carrying accumulated invalidation keys.
|
|
@@ -115,9 +118,6 @@ export const makeRouter = (middlewareLive) => {
|
|
|
115
118
|
// clients can invalidate queries even when the stream fails.
|
|
116
119
|
const keysRef = Ref.makeUnsafe([]);
|
|
117
120
|
const invalidationSet = Invalidation.makeInvalidationSet(keysRef);
|
|
118
|
-
const readsRef = Ref.makeUnsafe([]);
|
|
119
|
-
const writesRef = Ref.makeUnsafe([]);
|
|
120
|
-
const dependencyRecorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef);
|
|
121
121
|
const metadata = (keys) => Effect.map(dependencyRecorder.drain, (dataDependencies) => Invalidation.makeMetaData(keys, dataDependencies));
|
|
122
122
|
return Stream.concat(result.pipe(Stream.map((item) => ({ _tag: "value", value: item })), Stream.provideService(Invalidation.InvalidationSet, invalidationSet), Stream.provideService(DataDependencies.DataDependencyRecorder, dependencyRecorder),
|
|
123
123
|
// V3: after each value chunk, drain accumulated keys and emit a "metadata"
|
|
@@ -138,7 +138,8 @@ export const makeRouter = (middlewareLive) => {
|
|
|
138
138
|
_tag: "error",
|
|
139
139
|
error: err,
|
|
140
140
|
metadata: meta
|
|
141
|
-
})))))))), Stream.fromEffect(Ref.get(keysRef).pipe(Effect.flatMap((keys) => metadata(keys).pipe(Effect.map((meta) => ({ _tag: "done", metadata: meta })))))))
|
|
141
|
+
})))))))), Stream.fromEffect(Ref.get(keysRef).pipe(Effect.flatMap((keys) => metadata(keys).pipe(Effect.map((meta) => ({ _tag: "done", metadata: meta })))))))
|
|
142
|
+
.pipe(Stream.provideService(Invalidation.InvalidationSet, invalidationSet), Stream.provideService(DataDependencies.DataDependencyRecorder, dependencyRecorder));
|
|
142
143
|
}
|
|
143
144
|
let effect = Effect
|
|
144
145
|
.annotateCurrentSpan({
|
|
@@ -150,9 +151,6 @@ export const makeRouter = (middlewareLive) => {
|
|
|
150
151
|
"app.rpc.type": resource.type
|
|
151
152
|
})
|
|
152
153
|
.pipe(Effect.andThen(result));
|
|
153
|
-
const readsRef = Ref.makeUnsafe([]);
|
|
154
|
-
const writesRef = Ref.makeUnsafe([]);
|
|
155
|
-
const dependencyRecorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef);
|
|
156
154
|
effect = effect.pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, dependencyRecorder));
|
|
157
155
|
// Commands: provide a request-scoped `InvalidationSet` and wrap both
|
|
158
156
|
// success (`CommandResponseWithMetaData`) and handler-thrown failure
|
|
@@ -254,4 +252,4 @@ export const makeRouter = (middlewareLive) => {
|
|
|
254
252
|
Router: matchFor
|
|
255
253
|
};
|
|
256
254
|
};
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCwwREFBMEQ7QUFDMUQsNERBQTREO0FBQzVELHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvRCxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBRTNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3RCxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBRWpDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUF5QixTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVyRixPQUFPLEVBQUUsV0FBVyxJQUFJLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFOUUsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUM5QyxXQUFnQyxFQUNoQyxNQUE4QixFQUM5QixFQUFFLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxN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
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCwwREFBMEQ7QUFDMUQsNERBQTREO0FBQzVELHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBRXpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvRCxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBRTNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3RCxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBRWpDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUF5QixTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVyRixPQUFPLEVBQUUsV0FBVyxJQUFJLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFOUUsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUM5QyxXQUFnQyxFQUNoQyxNQUE4QixFQUM5QixFQUFFLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxN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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.284",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"proper-lockfile": "^4.1.2",
|
|
11
11
|
"pure-rand": "8.4.0",
|
|
12
12
|
"query-string": "^9.4.0",
|
|
13
|
-
"effect-app": "4.0.0-beta.
|
|
13
|
+
"effect-app": "4.0.0-beta.284"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@azure/cosmos": "^4.9.3",
|
package/src/routing.ts
CHANGED
|
@@ -449,6 +449,11 @@ export const makeRouter = <Live extends Layer.Layer<any, any, any> = Layer.Layer
|
|
|
449
449
|
: resource,
|
|
450
450
|
(payload: any, headers: any) => {
|
|
451
451
|
const result: any = handler.handler(payload, headers)
|
|
452
|
+
|
|
453
|
+
const readsRef = Ref.makeUnsafe<DataDependencies.DataDependencies>([])
|
|
454
|
+
const writesRef = Ref.makeUnsafe<DataDependencies.DataDependencies>([])
|
|
455
|
+
const dependencyRecorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
|
|
456
|
+
|
|
452
457
|
if (resource.stream) {
|
|
453
458
|
// Wrap stream items as { _tag: "value", value } and append a final
|
|
454
459
|
// { _tag: "done", metadata } chunk carrying accumulated invalidation keys.
|
|
@@ -456,9 +461,6 @@ export const makeRouter = <Live extends Layer.Layer<any, any, any> = Layer.Layer
|
|
|
456
461
|
// clients can invalidate queries even when the stream fails.
|
|
457
462
|
const keysRef = Ref.makeUnsafe<ReadonlyArray<Invalidation.InvalidationKey>>([])
|
|
458
463
|
const invalidationSet = Invalidation.makeInvalidationSet(keysRef)
|
|
459
|
-
const readsRef = Ref.makeUnsafe<DataDependencies.DataDependencies>([])
|
|
460
|
-
const writesRef = Ref.makeUnsafe<DataDependencies.DataDependencies>([])
|
|
461
|
-
const dependencyRecorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
|
|
462
464
|
const metadata = (keys: ReadonlyArray<Invalidation.InvalidationKey>) =>
|
|
463
465
|
Effect.map(
|
|
464
466
|
dependencyRecorder.drain,
|
|
@@ -523,6 +525,10 @@ export const makeRouter = <Live extends Layer.Layer<any, any, any> = Layer.Layer
|
|
|
523
525
|
)
|
|
524
526
|
)
|
|
525
527
|
)
|
|
528
|
+
.pipe(
|
|
529
|
+
Stream.provideService(Invalidation.InvalidationSet, invalidationSet),
|
|
530
|
+
Stream.provideService(DataDependencies.DataDependencyRecorder, dependencyRecorder),
|
|
531
|
+
)
|
|
526
532
|
}
|
|
527
533
|
|
|
528
534
|
let effect = Effect
|
|
@@ -536,9 +542,6 @@ export const makeRouter = <Live extends Layer.Layer<any, any, any> = Layer.Layer
|
|
|
536
542
|
})
|
|
537
543
|
.pipe(Effect.andThen(result as Effect.Effect<unknown, unknown, unknown>))
|
|
538
544
|
|
|
539
|
-
const readsRef = Ref.makeUnsafe<DataDependencies.DataDependencies>([])
|
|
540
|
-
const writesRef = Ref.makeUnsafe<DataDependencies.DataDependencies>([])
|
|
541
|
-
const dependencyRecorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
|
|
542
545
|
effect = effect.pipe(
|
|
543
546
|
Effect.provideService(DataDependencies.DataDependencyRecorder, dependencyRecorder)
|
|
544
547
|
)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import { type QueueBase } from "effect-app/QueueMaker";
|
|
3
|
-
import * as S from "effect-app/Schema";
|
|
4
|
-
import { type NonEmptyString255 } from "effect-app/Schema";
|
|
5
|
-
import { SqlClient } from "effect/unstable/sql";
|
|
6
|
-
export declare const QueueId: S.brand<import("effect/Schema").Finite, "QueueId">;
|
|
7
|
-
export type QueueId = typeof QueueId.Type;
|
|
8
|
-
export declare const makeSQLQueue: <Evt extends {
|
|
9
|
-
id: S.StringId;
|
|
10
|
-
_tag: string;
|
|
11
|
-
}, DrainEvt extends {
|
|
12
|
-
id: S.StringId;
|
|
13
|
-
_tag: string;
|
|
14
|
-
}, EvtE, DrainEvtE>(queueName: NonEmptyString255, queueDrainName: NonEmptyString255, schema: S.Codec<Evt, EvtE, never, never>, drainSchema: S.Codec<DrainEvt, DrainEvtE, never, never>) => Effect.Effect<QueueBase<Evt, DrainEvt>, never, SqlClient.SqlClient>;
|
|
15
|
-
//# sourceMappingURL=SQLQueue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SQLQueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/SQLQueue.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,uBAAuB,CAAA;AACjE,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAK1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAK/C,eAAO,MAAM,OAAO,oDAAoC,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAGzC,eAAO,MAAM,YAAY,GACvB,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,4OAgKT,CAAA"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { reportNonInterruptedFailure } from "@effect-app/infra/QueueMaker/errors";
|
|
2
|
-
import { subMinutes } from "date-fns";
|
|
3
|
-
import * as Effect from "effect-app/Effect";
|
|
4
|
-
import * as Option from "effect-app/Option";
|
|
5
|
-
import { QueueMeta } from "effect-app/QueueMaker";
|
|
6
|
-
import * as S from "effect-app/Schema";
|
|
7
|
-
import { getRequestContext, setupRequestContextWithCustomSpan } from "effect-app/setupRequest";
|
|
8
|
-
import { pretty } from "effect-app/utils";
|
|
9
|
-
import * as Fiber from "effect/Fiber";
|
|
10
|
-
import * as Tracer from "effect/Tracer";
|
|
11
|
-
import { SqlClient } from "effect/unstable/sql";
|
|
12
|
-
import { InfraLogger } from "../logger.js";
|
|
13
|
-
import { messagingSpanArgs } from "../otel.js";
|
|
14
|
-
import { SQLModel } from "../SQL.js";
|
|
15
|
-
export const QueueId = S.Finite.pipe(S.brand("QueueId"));
|
|
16
|
-
// TODO: let the model track and Auto Generate versionColumn on every update instead
|
|
17
|
-
export const makeSQLQueue = Effect.fnUntraced(function* (queueName, queueDrainName, schema, drainSchema) {
|
|
18
|
-
const base = {
|
|
19
|
-
id: SQLModel.Generated(QueueId),
|
|
20
|
-
meta: SQLModel.JsonFromString(QueueMeta),
|
|
21
|
-
name: S.NonEmptyString255,
|
|
22
|
-
createdAt: SQLModel.DateTimeInsert,
|
|
23
|
-
updatedAt: SQLModel.DateTimeUpdate,
|
|
24
|
-
// TODO: at+owner
|
|
25
|
-
processingAt: SQLModel.FieldOption(S.Date),
|
|
26
|
-
finishedAt: SQLModel.FieldOption(S.Date),
|
|
27
|
-
etag: S.String // TODO: use a SQLModel thing that auto updates it?
|
|
28
|
-
// TODO: record locking.. / optimistic locking
|
|
29
|
-
// rowVersion: SQLModel.DateTimeFromNumberWithNow
|
|
30
|
-
};
|
|
31
|
-
class Queue extends SQLModel.Class("Queue")({
|
|
32
|
-
body: SQLModel.JsonFromString(schema),
|
|
33
|
-
...base
|
|
34
|
-
}) {
|
|
35
|
-
}
|
|
36
|
-
class Drain extends SQLModel.Class("Drain")({
|
|
37
|
-
body: SQLModel.JsonFromString(drainSchema),
|
|
38
|
-
...base
|
|
39
|
-
}) {
|
|
40
|
-
}
|
|
41
|
-
const sql = yield* SqlClient.SqlClient;
|
|
42
|
-
const queueRepo = yield* SQLModel.makeRepository(Queue, {
|
|
43
|
-
tableName: "queue",
|
|
44
|
-
spanPrefix: "QueueRepo",
|
|
45
|
-
idColumn: "id",
|
|
46
|
-
versionColumn: "etag"
|
|
47
|
-
});
|
|
48
|
-
const drainRepo = yield* SQLModel.makeRepository(Drain, {
|
|
49
|
-
tableName: "queue",
|
|
50
|
-
spanPrefix: "DrainRepo",
|
|
51
|
-
idColumn: "id",
|
|
52
|
-
versionColumn: "etag"
|
|
53
|
-
});
|
|
54
|
-
const decodeDrain = S.decodeEffectConcurrently(Drain);
|
|
55
|
-
const drain = Effect.gen(function* () {
|
|
56
|
-
const limit = subMinutes(new Date(), 15);
|
|
57
|
-
return yield* sql `SELECT *
|
|
58
|
-
FROM queue
|
|
59
|
-
WHERE name = ${queueDrainName} AND finishedAt IS NULL AND (processingAt IS NULL OR processingAt < ${limit.getTime()})
|
|
60
|
-
LIMIT 1`;
|
|
61
|
-
});
|
|
62
|
-
const q = {
|
|
63
|
-
offer: Effect.fnUntraced(function* (body, meta) {
|
|
64
|
-
yield* queueRepo.insertVoid(Queue.insert.make({
|
|
65
|
-
body,
|
|
66
|
-
meta,
|
|
67
|
-
name: queueName,
|
|
68
|
-
processingAt: Option.none(),
|
|
69
|
-
finishedAt: Option.none(),
|
|
70
|
-
etag: crypto.randomUUID()
|
|
71
|
-
}));
|
|
72
|
-
}),
|
|
73
|
-
take: Effect.gen(function* () {
|
|
74
|
-
while (true) {
|
|
75
|
-
const [first] = yield* drain.pipe(Effect.withTracerEnabled(false)); // disable sql tracer otherwise we spam it..
|
|
76
|
-
if (first) {
|
|
77
|
-
const dec = yield* decodeDrain(first);
|
|
78
|
-
const { createdAt, updatedAt, ...rest } = dec;
|
|
79
|
-
return yield* drainRepo.update(Drain.update.make({ ...rest, processingAt: Option.some(new Date()) }) // auto in lib , etag: crypto.randomUUID()
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
if (first)
|
|
83
|
-
return first;
|
|
84
|
-
yield* Effect.sleep(250);
|
|
85
|
-
}
|
|
86
|
-
}),
|
|
87
|
-
finish: Effect.fn(function* ({ createdAt, updatedAt, ...q }) {
|
|
88
|
-
return yield* drainRepo.updateVoid(Drain.update.make({ ...q, finishedAt: Option.some(new Date()) })); // auto in lib , etag: crypto.randomUUID()
|
|
89
|
-
})
|
|
90
|
-
};
|
|
91
|
-
const queue = {
|
|
92
|
-
publish: Effect.fn(`publish ${queueName}`, {
|
|
93
|
-
kind: "producer",
|
|
94
|
-
attributes: {
|
|
95
|
-
"messaging.system": "sql",
|
|
96
|
-
"messaging.operation.name": "publish",
|
|
97
|
-
"messaging.destination.name": queueName
|
|
98
|
-
}
|
|
99
|
-
})(function* (...messages) {
|
|
100
|
-
yield* Effect.annotateCurrentSpan({
|
|
101
|
-
"messaging.batch.message_count": messages.length,
|
|
102
|
-
"messaging.message.types": messages.map((_) => _._tag)
|
|
103
|
-
});
|
|
104
|
-
const requestContext = yield* getRequestContext;
|
|
105
|
-
yield* Effect.forEach(messages, (m) => q.offer(m, requestContext), { discard: true });
|
|
106
|
-
}),
|
|
107
|
-
drain: (handleEvent, sessionId) => {
|
|
108
|
-
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
|
|
109
|
-
const processMessage = Effect.fnUntraced(function* ({ body, meta }) {
|
|
110
|
-
let effect = InfraLogger
|
|
111
|
-
.logDebug(`[${queueDrainName}] Processing incoming message`)
|
|
112
|
-
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.andThen(handleEvent(body)), silenceAndReportError, (_) => {
|
|
113
|
-
const args = messagingSpanArgs({
|
|
114
|
-
operation: "process",
|
|
115
|
-
system: "sql",
|
|
116
|
-
destination: queueDrainName,
|
|
117
|
-
messageId: body.id,
|
|
118
|
-
conversationId: sessionId,
|
|
119
|
-
extra: { "messaging.message.type": body._tag, "messaging.message.body": body }
|
|
120
|
-
}, "consumer");
|
|
121
|
-
return setupRequestContextWithCustomSpan(_, meta, args.name, {
|
|
122
|
-
captureStackTrace: false,
|
|
123
|
-
kind: args.kind,
|
|
124
|
-
attributes: args.attributes
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
if (meta.span) {
|
|
128
|
-
effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
|
|
129
|
-
}
|
|
130
|
-
return yield* effect;
|
|
131
|
-
});
|
|
132
|
-
return Effect.fn(`receive ${queueDrainName}`, {
|
|
133
|
-
kind: "consumer",
|
|
134
|
-
attributes: {
|
|
135
|
-
"messaging.system": "sql",
|
|
136
|
-
"messaging.operation.name": "receive",
|
|
137
|
-
"messaging.destination.name": queueDrainName,
|
|
138
|
-
...(sessionId !== undefined && { "messaging.message.conversation_id": sessionId })
|
|
139
|
-
}
|
|
140
|
-
})(function* () {
|
|
141
|
-
const x = yield* q.take;
|
|
142
|
-
yield* processMessage(x).pipe(Effect.uninterruptible, Effect.forkChild, Effect.flatMap(Fiber.join), Effect.tap(q.finish(x)));
|
|
143
|
-
}, (effect) => effect.pipe(silenceAndReportError, Effect.forever))();
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
return queue;
|
|
147
|
-
});
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9TUUxRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUNqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXJDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pFLE9BQU8sS0FBSyxDQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFFdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDOUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7QUFHeEQsb0ZBQW9GO0FBQ3BGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQU1yRCxTQUE0QixFQUM1QixjQUFp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
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import * as S from "effect-app/Schema";
|
|
3
|
-
import * as Tracer from "effect/Tracer";
|
|
4
|
-
import { MemQueue } from "../memQueue.js";
|
|
5
|
-
export declare const makeMemQueue: <Evt extends {
|
|
6
|
-
id: S.StringId;
|
|
7
|
-
_tag: string;
|
|
8
|
-
}, DrainEvt extends {
|
|
9
|
-
id: S.StringId;
|
|
10
|
-
_tag: string;
|
|
11
|
-
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Codec<Evt, EvtE, never, never>, drainSchema: S.Codec<DrainEvt, DrainEvtE, never, never>) => Effect.Effect<{
|
|
12
|
-
publish: (args_0: Evt, ...args: Evt[]) => Effect.Effect<void, never, never>;
|
|
13
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect.Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>>;
|
|
14
|
-
}, never, MemQueue>;
|
|
15
|
-
//# sourceMappingURL=memQueue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/memQueue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAOtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,eAAO,MAAM,YAAY,GACvB,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS;;YA8CC,MAAM,EAAE,MAAM,eACP,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cACtD,MAAM;mBAmEtB,CAAA"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import { QueueMeta } from "effect-app/QueueMaker";
|
|
3
|
-
import * as S from "effect-app/Schema";
|
|
4
|
-
import { getRequestContext, setupRequestContextWithCustomSpan } from "effect-app/setupRequest";
|
|
5
|
-
import { pretty } from "effect-app/utils";
|
|
6
|
-
import * as Cause from "effect/Cause";
|
|
7
|
-
import * as Fiber from "effect/Fiber";
|
|
8
|
-
import { flow } from "effect/Function";
|
|
9
|
-
import * as Q from "effect/Queue";
|
|
10
|
-
import * as Tracer from "effect/Tracer";
|
|
11
|
-
import { InfraLogger } from "../logger.js";
|
|
12
|
-
import { MemQueue } from "../memQueue.js";
|
|
13
|
-
import { messagingSpanArgs } from "../otel.js";
|
|
14
|
-
import { reportNonInterruptedFailure, reportNonInterruptedFailureCause } from "./errors.js";
|
|
15
|
-
export const makeMemQueue = Effect.fnUntraced(function* (queueName, queueDrainName, schema, drainSchema) {
|
|
16
|
-
const mem = yield* MemQueue;
|
|
17
|
-
const q = yield* mem.getOrCreateQueue(queueName);
|
|
18
|
-
const qDrain = yield* mem.getOrCreateQueue(queueDrainName);
|
|
19
|
-
const wireSchema = S.Struct({ body: schema, meta: QueueMeta });
|
|
20
|
-
const wireSchemaJson = S.fromJsonString(S.toCodecJson(wireSchema));
|
|
21
|
-
const encodePublish = S.encodeEffect(wireSchemaJson);
|
|
22
|
-
const drainW = S.Struct({ body: drainSchema, meta: QueueMeta });
|
|
23
|
-
const drainWJson = S.fromJsonString(S.toCodecJson(drainW));
|
|
24
|
-
const parseDrain = flow(S.decodeUnknownEffectConcurrently(drainWJson), Effect.orDie);
|
|
25
|
-
const queue = {
|
|
26
|
-
publish: Effect.fn(`publish ${queueName}`, {
|
|
27
|
-
kind: "producer",
|
|
28
|
-
attributes: {
|
|
29
|
-
"messaging.system": "memory",
|
|
30
|
-
"messaging.operation.name": "publish",
|
|
31
|
-
"messaging.destination.name": queueName
|
|
32
|
-
}
|
|
33
|
-
})(function* (...messages) {
|
|
34
|
-
yield* Effect.annotateCurrentSpan({
|
|
35
|
-
"messaging.batch.message_count": messages.length,
|
|
36
|
-
"messaging.message.types": messages.map((_) => _._tag)
|
|
37
|
-
});
|
|
38
|
-
const requestContext = yield* getRequestContext;
|
|
39
|
-
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
40
|
-
yield* Effect.forEach(messages, (m) => encodePublish({ body: m, meta: requestContext }).pipe(Effect.orDie, Effect.flatMap((_) => Q.offer(q, _))), { discard: true });
|
|
41
|
-
}),
|
|
42
|
-
drain: (handleEvent, sessionId) => {
|
|
43
|
-
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
|
|
44
|
-
const reportError = reportNonInterruptedFailureCause({ name: "MemQueue.drain." + queueDrainName });
|
|
45
|
-
const processMessage = Effect.fnUntraced(function* (msg) {
|
|
46
|
-
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
47
|
-
const { body, meta } = yield* parseDrain(msg).pipe(Effect.orDie);
|
|
48
|
-
let effect = InfraLogger
|
|
49
|
-
.logDebug(`[${queueDrainName}] Processing incoming message`)
|
|
50
|
-
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.andThen(handleEvent(body)), silenceAndReportError, (_) => {
|
|
51
|
-
const args = messagingSpanArgs({
|
|
52
|
-
operation: "process",
|
|
53
|
-
system: "memory",
|
|
54
|
-
destination: queueDrainName,
|
|
55
|
-
messageId: body.id,
|
|
56
|
-
conversationId: sessionId,
|
|
57
|
-
extra: { "messaging.message.type": body._tag, "messaging.message.body": body }
|
|
58
|
-
}, "consumer");
|
|
59
|
-
return setupRequestContextWithCustomSpan(_, meta, args.name, {
|
|
60
|
-
captureStackTrace: false,
|
|
61
|
-
kind: args.kind,
|
|
62
|
-
attributes: args.attributes
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
if (meta.span) {
|
|
66
|
-
effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
|
|
67
|
-
}
|
|
68
|
-
return yield* effect;
|
|
69
|
-
});
|
|
70
|
-
return Effect.fn(`receive ${queueDrainName}`, {
|
|
71
|
-
kind: "consumer",
|
|
72
|
-
attributes: {
|
|
73
|
-
"messaging.system": "memory",
|
|
74
|
-
"messaging.operation.name": "receive",
|
|
75
|
-
"messaging.destination.name": queueDrainName,
|
|
76
|
-
...(sessionId !== undefined && { "messaging.message.conversation_id": sessionId })
|
|
77
|
-
}
|
|
78
|
-
})(function* () {
|
|
79
|
-
const x = yield* Q.take(qDrain);
|
|
80
|
-
const exit = yield* processMessage(x).pipe(Effect.uninterruptible, Effect.forkChild, Effect.flatMap(Fiber.join));
|
|
81
|
-
if (exit._tag === "Failure" && !Cause.hasInterruptsOnly(exit.cause)) {
|
|
82
|
-
// normally a failed item would be returned to the queue and retried up to X times.
|
|
83
|
-
yield* Q.offer(qDrain, x).pipe(
|
|
84
|
-
// TODO: retry count tracking and max retries.
|
|
85
|
-
Effect.delay("5 seconds"), Effect.tapCause(reportError), Effect.forkDetach);
|
|
86
|
-
}
|
|
87
|
-
}, (effect) => effect.pipe(silenceAndReportError, Effect.forever))();
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
return queue;
|
|
91
|
-
});
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9tZW1RdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzlGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUzRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFNckQsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsTUFBMEIsRUFDMUIsV0FBeUM7SUFFekMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFBO0lBQzNCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdB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
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import * as S from "effect-app/Schema";
|
|
3
|
-
import type { StringId } from "effect-app/Schema";
|
|
4
|
-
import * as Tracer from "effect/Tracer";
|
|
5
|
-
import { Receiver, Sender } from "../ServiceBus.js";
|
|
6
|
-
export declare function makeServiceBusQueue<Evt extends {
|
|
7
|
-
id: StringId;
|
|
8
|
-
_tag: string;
|
|
9
|
-
}, DrainEvt extends {
|
|
10
|
-
id: StringId;
|
|
11
|
-
_tag: string;
|
|
12
|
-
}, EvtE, DrainEvtE>(schema: S.Codec<Evt, EvtE>, drainSchema: S.Codec<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
13
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect.Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>>;
|
|
14
|
-
publish: (args_0: Evt, ...args: Evt[]) => Effect.Effect<void, never, never>;
|
|
15
|
-
}, never, Receiver | Sender>;
|
|
16
|
-
//# sourceMappingURL=sbqueue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAKjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGnD,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,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;YAuB7B,MAAM,EAAE,MAAM,eACP,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cACtD,MAAM;;6BA6EzB"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import { QueueMeta } from "effect-app/QueueMaker";
|
|
3
|
-
import * as S from "effect-app/Schema";
|
|
4
|
-
import { getRequestContext, setupRequestContextWithCustomSpan } from "effect-app/setupRequest";
|
|
5
|
-
import { pretty } from "effect-app/utils";
|
|
6
|
-
import * as Cause from "effect/Cause";
|
|
7
|
-
import { flow } from "effect/Function";
|
|
8
|
-
import * as Tracer from "effect/Tracer";
|
|
9
|
-
import { InfraLogger } from "../logger.js";
|
|
10
|
-
import { messagingSpanArgs } from "../otel.js";
|
|
11
|
-
import { Receiver, Sender } from "../ServiceBus.js";
|
|
12
|
-
import { reportNonInterruptedFailure, reportNonInterruptedFailureCause, reportQueueError } from "./errors.js";
|
|
13
|
-
export function makeServiceBusQueue(schema, drainSchema) {
|
|
14
|
-
const wireSchema = S.Struct({
|
|
15
|
-
body: schema,
|
|
16
|
-
meta: QueueMeta
|
|
17
|
-
});
|
|
18
|
-
const wireSchemaJson = S.fromJsonString(S.toCodecJson(wireSchema));
|
|
19
|
-
const encodePublish = S.encodeEffect(wireSchemaJson);
|
|
20
|
-
const drainW = S.Struct({ body: drainSchema, meta: QueueMeta });
|
|
21
|
-
const drainWJson = S.fromJsonString(S.toCodecJson(drainW));
|
|
22
|
-
const parseDrain = flow(S.decodeUnknownEffectConcurrently(drainWJson), Effect.orDie);
|
|
23
|
-
return Effect.gen(function* () {
|
|
24
|
-
const sender = yield* Sender;
|
|
25
|
-
const receiver = yield* Receiver;
|
|
26
|
-
const silenceAndReportError = reportNonInterruptedFailure({ name: receiver.name });
|
|
27
|
-
const reportError = reportNonInterruptedFailureCause({ name: receiver.name });
|
|
28
|
-
// TODO: or do async?
|
|
29
|
-
// 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
|
|
30
|
-
// const deferred = yield* Deferred.make<never, ServiceBusError | Error>()
|
|
31
|
-
const queue = {
|
|
32
|
-
drain: (handleEvent, sessionId) => {
|
|
33
|
-
const processMessage = Effect.fnUntraced(function* (messageBody) {
|
|
34
|
-
const { body, meta } = yield* parseDrain(messageBody).pipe(Effect.orDie);
|
|
35
|
-
let effect = InfraLogger
|
|
36
|
-
.logDebug(`[${receiver.name}] Processing incoming message`)
|
|
37
|
-
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.andThen(handleEvent(body)), Effect.orDie,
|
|
38
|
-
// we silenceAndReportError here, so that the error is reported, and moves into the Exit.
|
|
39
|
-
silenceAndReportError, (_) => {
|
|
40
|
-
const args = messagingSpanArgs({
|
|
41
|
-
operation: "process",
|
|
42
|
-
system: "servicebus",
|
|
43
|
-
destination: receiver.name,
|
|
44
|
-
messageId: body.id,
|
|
45
|
-
conversationId: sessionId,
|
|
46
|
-
extra: { "messaging.message.type": body._tag, "messaging.message.body": body }
|
|
47
|
-
}, "consumer");
|
|
48
|
-
return setupRequestContextWithCustomSpan(_, meta, args.name, {
|
|
49
|
-
captureStackTrace: false,
|
|
50
|
-
kind: args.kind,
|
|
51
|
-
attributes: args.attributes
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
if (meta.span) {
|
|
55
|
-
effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
|
|
56
|
-
}
|
|
57
|
-
// we reportError here, so that we report the error only, and keep flowing
|
|
58
|
-
const exit = yield* Effect.tapCause(effect, reportError);
|
|
59
|
-
return yield* exit;
|
|
60
|
-
});
|
|
61
|
-
return receiver
|
|
62
|
-
.subscribe({
|
|
63
|
-
processMessage: (x) => processMessage(x.body).pipe(Effect.uninterruptible),
|
|
64
|
-
processError: (err) => reportQueueError(Cause.fail(err.error))
|
|
65
|
-
}, sessionId)
|
|
66
|
-
.pipe(Effect.andThen(Effect.never));
|
|
67
|
-
},
|
|
68
|
-
publish: Effect.fn(`publish ${sender.name}`, {
|
|
69
|
-
kind: "producer",
|
|
70
|
-
attributes: {
|
|
71
|
-
"messaging.system": "servicebus",
|
|
72
|
-
"messaging.operation.name": "publish",
|
|
73
|
-
"messaging.destination.name": sender.name
|
|
74
|
-
}
|
|
75
|
-
})(function* (...messages) {
|
|
76
|
-
yield* Effect.annotateCurrentSpan({
|
|
77
|
-
"messaging.batch.message_count": messages.length,
|
|
78
|
-
"messaging.message.types": messages.map((_) => _._tag)
|
|
79
|
-
});
|
|
80
|
-
const requestContext = yield* getRequestContext;
|
|
81
|
-
const msgs = yield* Effect.forEach(messages, (m) => encodePublish({ body: m, meta: requestContext }).pipe(Effect.orDie, Effect.map((body) => ({
|
|
82
|
-
body,
|
|
83
|
-
messageId: m.id, /* correllationid: requestId */
|
|
84
|
-
contentType: "application/json",
|
|
85
|
-
sessionId: "sessionId" in m ? m.sessionId : undefined // TODO: optional
|
|
86
|
-
}))));
|
|
87
|
-
yield* sender.sendMessages(msgs);
|
|
88
|
-
})
|
|
89
|
-
};
|
|
90
|
-
return queue;
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9RdWV1ZU1ha2VyL3NicXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDakQsT0FBTyxLQUFLLENBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUV0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTdHLE1BQU0sVUFBVSxtQkFBbUIsQ0FNakMsTUFBMEIsRUFDMUIsV0FBeUM7SUFFekMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUMsQ0FBQTtJQUNGLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ2xFLE1BQU0sYUFBYSxHQUFH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
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as Context from "effect-app/Context";
|
|
2
|
-
import * as Effect from "effect-app/Effect";
|
|
3
|
-
import * as Layer from "effect-app/Layer";
|
|
4
|
-
import * as Fiber from "effect/Fiber";
|
|
5
|
-
export declare const setRootParentSpan: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
6
|
-
declare const RequestFiberSet_base: Context.ServiceClass<RequestFiberSet, "RequestFiberSet", {
|
|
7
|
-
interrupt: Effect.Effect<void, never, never>;
|
|
8
|
-
join: Effect.Effect<void, any, never>;
|
|
9
|
-
run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
|
|
10
|
-
add: (...fibers: Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
11
|
-
addAll: (fibers: readonly Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
12
|
-
register: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
13
|
-
forkDaemonReport: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
|
|
14
|
-
forkDaemonReportUnexpected: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
|
|
15
|
-
}> & {
|
|
16
|
-
readonly make: Effect.Effect<{
|
|
17
|
-
interrupt: Effect.Effect<void, never, never>;
|
|
18
|
-
join: Effect.Effect<void, any, never>;
|
|
19
|
-
run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
|
|
20
|
-
add: (...fibers: Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
21
|
-
addAll: (fibers: readonly Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
22
|
-
register: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
23
|
-
forkDaemonReport: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
|
|
24
|
-
forkDaemonReportUnexpected: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
|
|
25
|
-
}, never, import("effect/Scope").Scope>;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
|
|
29
|
-
* like the ServiceBus Sender, you should register these fibers in this FiberSet.
|
|
30
|
-
*/
|
|
31
|
-
export declare class RequestFiberSet extends RequestFiberSet_base {
|
|
32
|
-
static readonly Live: Layer.Layer<RequestFiberSet, never, never>;
|
|
33
|
-
static readonly register: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | RequestFiberSet>;
|
|
34
|
-
static readonly run: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R | RequestFiberSet>;
|
|
35
|
-
static readonly forkDaemonReport: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R | RequestFiberSet>;
|
|
36
|
-
static readonly forkDaemonReportUnexpected: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R | RequestFiberSet>;
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
39
|
-
//# sourceMappingURL=RequestFiberSet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RequestFiberSet.d.ts","sourceRoot":"","sources":["../src/RequestFiberSet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAiBrC,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAC4B,CAAA;;;;;qBAIzE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;qBAEvB,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;eAOtC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;uBAuB7B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iCAgB3B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;AAqB3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAA+D;IAClG,MAAM,CAAC,QAAQ,CAAC,IAAI,6CAAgC;IACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8CACb;IACpD,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEAAkD;IAC9G,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEACb;IAC5D,MAAM,CAAC,QAAQ,CAAC,0BAA0B,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEACb;CACvE"}
|
package/dist/RequestFiberSet.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import * as Context from "effect-app/Context";
|
|
3
|
-
import * as Effect from "effect-app/Effect";
|
|
4
|
-
import * as Layer from "effect-app/Layer";
|
|
5
|
-
import * as Option from "effect-app/Option";
|
|
6
|
-
import * as Fiber from "effect/Fiber";
|
|
7
|
-
import * as FiberSet from "effect/FiberSet";
|
|
8
|
-
import { InfraLogger } from "./logger.js";
|
|
9
|
-
import { reportRequestError, reportUnknownRequestError } from "./reportError.js";
|
|
10
|
-
const getRootParentSpan = Effect.gen(function* () {
|
|
11
|
-
let span = yield* Effect.currentSpan.pipe(Effect.catchTag("NoSuchElementError", () => Effect.succeed(null)));
|
|
12
|
-
if (!span)
|
|
13
|
-
return span;
|
|
14
|
-
while (span._tag === "Span" && Option.isSome(span.parent)) {
|
|
15
|
-
span = span.parent.value;
|
|
16
|
-
}
|
|
17
|
-
return span;
|
|
18
|
-
});
|
|
19
|
-
export const setRootParentSpan = (self) => getRootParentSpan.pipe(Effect.andThen((span) => span ? Effect.withParentSpan(self, span) : self));
|
|
20
|
-
const make = Effect.gen(function* () {
|
|
21
|
-
const set = yield* FiberSet.make();
|
|
22
|
-
const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)));
|
|
23
|
-
const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)));
|
|
24
|
-
const join = FiberSet.size(set).pipe(Effect.andThen((count) => InfraLogger.logInfo(`Joining ${count} current fibers on the RequestFiberSet`)), Effect.andThen(FiberSet.join(set)));
|
|
25
|
-
const run = FiberSet.run(set);
|
|
26
|
-
const register = (self) => self.pipe(Effect.forkChild, Effect.tap(add), Effect.andThen(Fiber.join));
|
|
27
|
-
// const waitUntilEmpty = Effect.gen(function*() {
|
|
28
|
-
// const currentSize = yield* FiberSet.size(set)
|
|
29
|
-
// if (currentSize === 0) {
|
|
30
|
-
// return
|
|
31
|
-
// }
|
|
32
|
-
// yield* Effect.logInfo("Waiting RequestFiberSet to be empty: " + currentSize)
|
|
33
|
-
// while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
|
|
34
|
-
// yield* Effect.logDebug("RequestFiberSet is empty")
|
|
35
|
-
// })
|
|
36
|
-
// TODO: loop and interrupt all fibers in the set continuously?
|
|
37
|
-
const interrupt = Fiber.interruptAll(set);
|
|
38
|
-
/**
|
|
39
|
-
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
40
|
-
* new fiber isn't attached to the parent, when the fiber executing the
|
|
41
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
42
|
-
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
43
|
-
*
|
|
44
|
-
* Reports errors.
|
|
45
|
-
*/
|
|
46
|
-
function forkDaemonReport(self) {
|
|
47
|
-
return self.pipe(reportRequestError, Effect.uninterruptible, run);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
51
|
-
* new fiber isn't attached to the parent, when the fiber executing the
|
|
52
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
53
|
-
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
54
|
-
*
|
|
55
|
-
* Reports unexpected errors.
|
|
56
|
-
*/
|
|
57
|
-
function forkDaemonReportUnexpected(self) {
|
|
58
|
-
return self
|
|
59
|
-
.pipe(reportUnknownRequestError, Effect.uninterruptible, run);
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
interrupt,
|
|
63
|
-
join,
|
|
64
|
-
run,
|
|
65
|
-
add,
|
|
66
|
-
addAll,
|
|
67
|
-
register,
|
|
68
|
-
forkDaemonReport,
|
|
69
|
-
forkDaemonReportUnexpected
|
|
70
|
-
};
|
|
71
|
-
});
|
|
72
|
-
/**
|
|
73
|
-
* Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
|
|
74
|
-
* like the ServiceBus Sender, you should register these fibers in this FiberSet.
|
|
75
|
-
*/
|
|
76
|
-
export class RequestFiberSet extends Context.Service()("RequestFiberSet", { make }) {
|
|
77
|
-
static Live = Layer.effect(this, this.make);
|
|
78
|
-
static register = (self) => this.pipe(Effect.andThen((_) => _.register(self)));
|
|
79
|
-
static run = (self) => this.pipe(Effect.andThen((_) => _.run(self)));
|
|
80
|
-
static forkDaemonReport = (self) => this.pipe(Effect.andThen((_) => _.forkDaemonReport(self)));
|
|
81
|
-
static forkDaemonReportUnexpected = (self) => this.pipe(Effect.andThen((_) => _.forkDaemonReportUnexpected(self)));
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdEZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1JlcXVlc3RGaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFaEYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUM1QyxJQUFJLElBQUksR0FBMEIsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzlELE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNsRSxDQUFBO0lBQ0QsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQyxDQUFBO0FB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
|
package/dist/ServiceBus.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { type OperationOptionsBase, type ProcessErrorArgs, ServiceBusClient, type ServiceBusMessage, type ServiceBusMessageBatch, type ServiceBusReceivedMessage, type ServiceBusReceiver } from "@azure/service-bus";
|
|
2
|
-
import * as Context from "effect-app/Context";
|
|
3
|
-
import * as Effect from "effect-app/Effect";
|
|
4
|
-
import * as Layer from "effect-app/Layer";
|
|
5
|
-
import type * as Scope from "effect/Scope";
|
|
6
|
-
declare const ServiceBusClientTag_base: Context.OpaqueClass<ServiceBusClientTag, "@services/Client", ServiceBusClient> & {
|
|
7
|
-
readonly make: (url: string) => Effect.Effect<ServiceBusClient, never, Scope.Scope>;
|
|
8
|
-
};
|
|
9
|
-
export declare class ServiceBusClientTag extends ServiceBusClientTag_base {
|
|
10
|
-
static readonly layer: (url: string) => Layer.Layer<ServiceBusClientTag, never, never>;
|
|
11
|
-
}
|
|
12
|
-
declare const Sender_base: Context.OpaqueClass<Sender, "Sender", {
|
|
13
|
-
name: string;
|
|
14
|
-
sendMessages: (messages: ServiceBusMessage | ServiceBusMessage[] | ServiceBusMessageBatch, options?: Omit<OperationOptionsBase, "abortSignal">) => Effect.Effect<void>;
|
|
15
|
-
}> & {
|
|
16
|
-
readonly make: (name: string) => Effect.Effect<{
|
|
17
|
-
name: string;
|
|
18
|
-
sendMessages: (messages: ServiceBusMessage | ServiceBusMessage[] | ServiceBusMessageBatch, options?: Omit<OperationOptionsBase, "abortSignal">) => Effect.Effect<void>;
|
|
19
|
-
}, never, Scope.Scope | ServiceBusClientTag>;
|
|
20
|
-
};
|
|
21
|
-
export declare class Sender extends Sender_base {
|
|
22
|
-
static readonly layer: (name: string) => Layer.Layer<Sender, never, ServiceBusClientTag>;
|
|
23
|
-
}
|
|
24
|
-
export declare const SenderTag: <Id>() => <Key extends string>(queueName: Key) => Context.Service<Id, Sender> & {
|
|
25
|
-
layer: Layer.Layer<Id, never, ServiceBusClientTag>;
|
|
26
|
-
};
|
|
27
|
-
declare const Receiver_base: Context.OpaqueClass<Receiver, "Receiver", {
|
|
28
|
-
name: string;
|
|
29
|
-
make: (waitTillEmpty: Effect.Effect<void>) => Effect.Effect<ServiceBusReceiver, never, Scope.Scope>;
|
|
30
|
-
makeSession: (sessionId: string, waitTillEmpty: Effect.Effect<void>) => Effect.Effect<ServiceBusReceiver, never, Scope.Scope>;
|
|
31
|
-
subscribe<RMsg, RErr>(hndlr: MessageHandlers<RMsg, RErr>, sessionId?: string): Effect.Effect<void, never, Scope.Scope | RMsg | RErr>;
|
|
32
|
-
}>;
|
|
33
|
-
export declare class Receiver extends Receiver_base {
|
|
34
|
-
static readonly make: (name: string) => Effect.Effect<{
|
|
35
|
-
name: string;
|
|
36
|
-
make: (waitTillEmpty: Effect.Effect<void>) => Effect.Effect<ServiceBusReceiver, never, Scope.Scope>;
|
|
37
|
-
makeSession: (sessionId: string, waitTillEmpty: Effect.Effect<void>) => Effect.Effect<ServiceBusReceiver, never, Scope.Scope>;
|
|
38
|
-
subscribe: <RMsg, RErr>(hndlr: MessageHandlers<RMsg, RErr>, sessionId?: string | undefined) => Effect.Effect<void, never, RErr | RMsg | Scope.Scope>;
|
|
39
|
-
}, never, ServiceBusClientTag>;
|
|
40
|
-
static readonly layer: (name: string) => Layer.Layer<Receiver, never, ServiceBusClientTag>;
|
|
41
|
-
}
|
|
42
|
-
export declare const ReceiverTag: <Id>() => <Key extends string>(queueName: Key) => Context.Service<Id, Receiver> & {
|
|
43
|
-
layer: Layer.Layer<Id, never, ServiceBusClientTag>;
|
|
44
|
-
};
|
|
45
|
-
export declare const SenderReceiver: (queue: string, queueDrain?: string) => Layer.Layer<Receiver | Sender, never, ServiceBusClientTag>;
|
|
46
|
-
export interface MessageHandlers<RMsg, RErr> {
|
|
47
|
-
/**
|
|
48
|
-
* Handler that processes messages from service bus.
|
|
49
|
-
*
|
|
50
|
-
* @param message - A message received from Service Bus.
|
|
51
|
-
*/
|
|
52
|
-
processMessage(message: ServiceBusReceivedMessage): Effect.Effect<void, never, RMsg>;
|
|
53
|
-
/**
|
|
54
|
-
* Handler that processes errors that occur during receiving.
|
|
55
|
-
* @param args - The error and additional context to indicate where
|
|
56
|
-
* the error originated.
|
|
57
|
-
*/
|
|
58
|
-
processError(args: ProcessErrorArgs): Effect.Effect<void, never, RErr>;
|
|
59
|
-
}
|
|
60
|
-
export {};
|
|
61
|
-
//# sourceMappingURL=ServiceBus.d.ts.map
|
package/dist/ServiceBus.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceBus.d.ts","sourceRoot":"","sources":["../src/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,MAAM,oBAAoB,CAAA;AACrN,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;;;;AAiB1C,qBAAa,mBACX,SAAQ,wBAAiG;IAEzG,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAS,MAAM,oDAAiC;CACtE;;UA0BO,MAAM;kBACE,CACZ,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,EAC1E,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;;cAJlB,MAAM;sBACE,CACZ,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,EAC1E,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;;AAL1B,qBAAa,MAAO,SAAQ,WAMQ;IAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAU,MAAM,qDAAkC;CACxE;AAED,eAAO,MAAM,SAAS,GAAI,EAAE,QAAQ,GAAG,SAAS,MAAM,aAAa,GAAG;;CASrE,CAAA;;UAuGO,MAAM;UACN,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;iBACtF,CACX,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;cAChD,IAAI,EAAE,IAAI,SACX,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,cACtB,MAAM,GACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;;AAV1D,qBAAa,QAAS,SAAQ,aAWd;IACd,MAAM,CAAC,QAAQ,CAAC,IAAI;;8BApFS,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;iCAEhB,MAAM,iBAAiB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBAOjC,IAAI,EAAE,IAAI;mCA2EhB;IACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAU,MAAM,uDAAqC;CAC3E;AAED,eAAO,MAAM,WAAW,GAAI,EAAE,QAAQ,GAAG,SAAS,MAAM,aAAa,GAAG;;CASvE,CAAA;AAED,eAAO,MAAM,cAAc,UAAW,MAAM,eAAe,MAAM,+DACS,CAAA;AAE1E,MAAM,WAAW,eAAe,CAAC,IAAI,EAAE,IAAI;IACzC;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACpF;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CACvE"}
|
package/dist/ServiceBus.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/prefer-promise-reject-errors */
|
|
2
|
-
import { ServiceBusClient } from "@azure/service-bus";
|
|
3
|
-
import * as Context from "effect-app/Context";
|
|
4
|
-
import * as Effect from "effect-app/Effect";
|
|
5
|
-
import * as Layer from "effect-app/Layer";
|
|
6
|
-
import * as Cause from "effect/Cause";
|
|
7
|
-
import * as Exit from "effect/Exit";
|
|
8
|
-
import * as FiberSet from "effect/FiberSet";
|
|
9
|
-
import { InfraLogger } from "./logger.js";
|
|
10
|
-
const logged = (name) => (self) => Effect.logInfo(name).pipe(Effect.andThen(self), Effect.tap(Effect.logInfo(name + " done")), Effect.withLogSpan(name));
|
|
11
|
-
function makeClient(url) {
|
|
12
|
-
return Effect.acquireRelease(Effect.sync(() => new ServiceBusClient(url)).pipe(logged("ServiceBus.client.create")), (client) => Effect.promise(() => client.close()).pipe(logged("ServiceBus.client.close")));
|
|
13
|
-
}
|
|
14
|
-
export class ServiceBusClientTag extends Context.Opaque()("@services/Client", { make: makeClient }) {
|
|
15
|
-
static layer = (url) => this.toLayer(this.make(url));
|
|
16
|
-
}
|
|
17
|
-
const makeSender_ = Effect.fnUntraced(function* (queueName) {
|
|
18
|
-
const serviceBusClient = yield* ServiceBusClientTag;
|
|
19
|
-
return yield* Effect.acquireRelease(Effect.sync(() => serviceBusClient.createSender(queueName)).pipe(logged(`ServiceBus.sender.create ${queueName}`)), (sender) => Effect.promise(() => sender.close()).pipe(logged(`ServiceBus.sender.close ${queueName}`)));
|
|
20
|
-
});
|
|
21
|
-
const makeSender = Effect.fnUntraced(function* (name) {
|
|
22
|
-
const sender = yield* makeSender_(name);
|
|
23
|
-
const sendMessages = Effect.fnUntraced(function* (messages, options) {
|
|
24
|
-
return yield* Effect.promise((abortSignal) => sender.sendMessages(messages, { ...options, abortSignal }));
|
|
25
|
-
});
|
|
26
|
-
return { name, sendMessages };
|
|
27
|
-
});
|
|
28
|
-
export class Sender extends Context.Opaque()("Sender", { make: makeSender }) {
|
|
29
|
-
static layer = (name) => this.toLayer(this.make(name));
|
|
30
|
-
}
|
|
31
|
-
export const SenderTag = () => (queueName) => {
|
|
32
|
-
const tag = Context.Service(`ServiceBus.Sender.${queueName}`);
|
|
33
|
-
return Object.assign(tag, {
|
|
34
|
-
layer: Layer.effect(tag, Sender.make(queueName).pipe(Effect.map(Sender.of)))
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
const makeReceiver = Effect.fnUntraced(function* (name) {
|
|
38
|
-
const serviceBusClient = yield* ServiceBusClientTag;
|
|
39
|
-
const makeReceiver = Effect.fnUntraced(function* (queueName, waitTillEmpty, sessionId) {
|
|
40
|
-
const annotate = sessionId !== undefined
|
|
41
|
-
? Effect.annotateLogs({ "messaging.session.id": sessionId })
|
|
42
|
-
: (self) => self;
|
|
43
|
-
return yield* Effect.acquireRelease((sessionId
|
|
44
|
-
? Effect.promise(() => serviceBusClient.acceptSession(queueName, sessionId))
|
|
45
|
-
: Effect.sync(() => serviceBusClient.createReceiver(queueName)))
|
|
46
|
-
.pipe(logged(`ServiceBus.receiver.create ${queueName}`), annotate), (r) => waitTillEmpty.pipe(logged(`ServiceBus.receiver.waitTillEmpty ${queueName}`), Effect.andThen(Effect.promise(() => r.close()).pipe(logged(`ServiceBus.receiver.close ${queueName}`))), logged(`ServiceBus.receiver.release ${queueName}`), annotate));
|
|
47
|
-
});
|
|
48
|
-
const make = (waitTillEmpty) => makeReceiver(name, waitTillEmpty);
|
|
49
|
-
const makeSession = (sessionId, waitTillEmpty) => makeReceiver(name, waitTillEmpty, sessionId);
|
|
50
|
-
return {
|
|
51
|
-
name,
|
|
52
|
-
make,
|
|
53
|
-
makeSession,
|
|
54
|
-
subscribe: Effect.fnUntraced(function* (hndlr, sessionId) {
|
|
55
|
-
const fs = yield* FiberSet.make();
|
|
56
|
-
const fr = yield* FiberSet.runtime(fs)();
|
|
57
|
-
const wait = Effect
|
|
58
|
-
.gen(function* () {
|
|
59
|
-
if ((yield* FiberSet.size(fs)) > 0) {
|
|
60
|
-
yield* InfraLogger.logDebug("Waiting ServiceBusFiberSet to be empty: " + (yield* FiberSet.size(fs)));
|
|
61
|
-
}
|
|
62
|
-
while ((yield* FiberSet.size(fs)) > 0)
|
|
63
|
-
yield* Effect.sleep("250 millis");
|
|
64
|
-
});
|
|
65
|
-
const r = yield* sessionId
|
|
66
|
-
? makeSession(sessionId, wait)
|
|
67
|
-
: make(wait);
|
|
68
|
-
const runEffect = (effect) => new Promise((resolve, reject) => fr(effect)
|
|
69
|
-
.addObserver((exit) => {
|
|
70
|
-
if (Exit.isSuccess(exit)) {
|
|
71
|
-
resolve(exit.value);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
// disable @typescript-eslint/prefer-promise-reject-errors
|
|
75
|
-
reject(Cause.pretty(exit.cause));
|
|
76
|
-
}
|
|
77
|
-
}));
|
|
78
|
-
const annotate = sessionId !== undefined
|
|
79
|
-
? Effect.annotateLogs({ "messaging.session.id": sessionId })
|
|
80
|
-
: (self) => self;
|
|
81
|
-
yield* Effect.acquireRelease(Effect
|
|
82
|
-
.sync(() => {
|
|
83
|
-
const s = r
|
|
84
|
-
.subscribe({
|
|
85
|
-
processError: (err) => runEffect(hndlr
|
|
86
|
-
.processError(err)
|
|
87
|
-
.pipe(Effect.catchCause((cause) => Effect.logError("ServiceBus Error", cause)), annotate)),
|
|
88
|
-
processMessage: (msg) => runEffect(hndlr.processMessage(msg).pipe(annotate))
|
|
89
|
-
// DO NOT CATCH ERRORS here as they should return to the queue!
|
|
90
|
-
});
|
|
91
|
-
return { close: Effect.promise(() => s.close()) };
|
|
92
|
-
})
|
|
93
|
-
.pipe(logged("ServiceBus.subscription.create"), annotate), (subscription) => subscription.close.pipe(logged("ServiceBus.subscription.close"), annotate)); // wth is going on here
|
|
94
|
-
})
|
|
95
|
-
};
|
|
96
|
-
});
|
|
97
|
-
export class Receiver extends Context.Opaque()("Receiver") {
|
|
98
|
-
static make = makeReceiver;
|
|
99
|
-
static layer = (name) => this.toLayer(makeReceiver(name));
|
|
100
|
-
}
|
|
101
|
-
export const ReceiverTag = () => (queueName) => {
|
|
102
|
-
const tag = Context.Service(`ServiceBus.Receiver.${queueName}`);
|
|
103
|
-
return Object.assign(tag, {
|
|
104
|
-
layer: Layer.effect(tag, makeReceiver(queueName).pipe(Effect.map(Receiver.of)))
|
|
105
|
-
});
|
|
106
|
-
};
|
|
107
|
-
export const SenderReceiver = (queue, queueDrain) => Layer.mergeAll(Sender.layer(queue), Receiver.layer(queueDrain ?? queue));
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TZXJ2aWNlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxPQUFPLEVBQW9ELGdCQUFnQixFQUFnSCxNQUFNLG9CQUFvQixDQUFBO0FBQ3JOLE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxJQUFJLE1BQU0sYUFBYSxDQUFBO0FBQ25DLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6QyxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBVSxJQUE0QixFQUFFLEVBQUUsQ0FDekUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFDMUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FDekIsQ0FBQTtBQUVILFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUMsRUFDckYsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1B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
|
package/dist/memQueue.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as Context from "effect-app/Context";
|
|
2
|
-
import * as Effect from "effect-app/Effect";
|
|
3
|
-
import * as Queue from "effect/Queue";
|
|
4
|
-
declare const MemQueue_base: Context.OpaqueClass<MemQueue, "effect-app/MemQueue", {
|
|
5
|
-
getOrCreateQueue: (k: string) => Effect.Effect<Queue.Queue<string, never>, never, never>;
|
|
6
|
-
}> & {
|
|
7
|
-
readonly make: Effect.Effect<{
|
|
8
|
-
getOrCreateQueue: (k: string) => Effect.Effect<Queue.Queue<string, never>, never, never>;
|
|
9
|
-
}, never, never>;
|
|
10
|
-
};
|
|
11
|
-
export declare class MemQueue extends MemQueue_base {
|
|
12
|
-
static readonly Live: import("effect/Layer").Layer<MemQueue, never, never>;
|
|
13
|
-
}
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=memQueue.d.ts.map
|
package/dist/memQueue.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../src/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;;;;;;;AAiBrC,qBAAa,QAAS,SAAQ,aAA2D;IACvF,MAAM,CAAC,QAAQ,CAAC,IAAI,uDAA0B;CAC/C"}
|
package/dist/memQueue.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as Context from "effect-app/Context";
|
|
2
|
-
import * as Effect from "effect-app/Effect";
|
|
3
|
-
import * as Queue from "effect/Queue";
|
|
4
|
-
const make = Effect
|
|
5
|
-
.gen(function* () {
|
|
6
|
-
const store = yield* Effect.sync(() => new Map());
|
|
7
|
-
return {
|
|
8
|
-
getOrCreateQueue: Effect.fnUntraced(function* (k) {
|
|
9
|
-
const q = store.get(k);
|
|
10
|
-
if (q)
|
|
11
|
-
return q;
|
|
12
|
-
const newQ = yield* Queue.unbounded();
|
|
13
|
-
store.set(k, newQ);
|
|
14
|
-
return newQ;
|
|
15
|
-
})
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
export class MemQueue extends Context.Opaque()("effect-app/MemQueue", { make }) {
|
|
19
|
-
static Live = this.toLayer(this.make);
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBRXJDLE1BQU0sSUFBSSxHQUFHLE1BQU07S0FDaEIsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQStCLENBQUMsQ0FBQTtJQUU5RSxPQUFPO1FBQ0wsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFTO1lBQ3JELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdEIsSUFBSSxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2YsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBVSxDQUFBO1lBQzdDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ2xCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUFDO0tBQ0gsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUosTUFBTSxPQUFPLFFBQVMsU0FBUSxPQUFPLENBQUMsTUFBTSxFQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN2RixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0NBQy9DIn0=
|