@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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 4.0.0-beta.284
4
+
5
+ ### Patch Changes
6
+
7
+ - dd239fa: fix atom invalidation
8
+ - effect-app@4.0.0-beta.284
9
+
3
10
  ## 4.0.0-beta.283
4
11
 
5
12
  ### Minor Changes
@@ -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>, PersistenceError | import("effect/unstable/cluster/ClusterError").MalformedMessage>;
22
- readonly saveEnvelope: (envelope: import("effect/unstable/cluster/Message").OutgoingEnvelope) => Effect.Effect<void, PersistenceError | import("effect/unstable/cluster/ClusterError").MalformedMessage>;
23
- readonly saveReply: <R extends import("effect/unstable/rpc/Rpc").Any>(reply: Reply.ReplyWithContext<R>) => Effect.Effect<void, PersistenceError | import("effect/unstable/cluster/ClusterError").MalformedMessage>;
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<Array<Reply.Reply<R>>, PersistenceError | import("effect/unstable/cluster/ClusterError").MalformedMessage>;
26
- readonly repliesForUnfiltered: (requestIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Array<Reply.Encoded>, PersistenceError | import("effect/unstable/cluster/ClusterError").MalformedMessage>;
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<Array<import("effect/unstable/cluster/Message").Incoming<any>>, PersistenceError>;
36
- readonly unprocessedMessagesById: <R extends import("effect/unstable/rpc/Rpc").Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Array<import("effect/unstable/cluster/Message").Incoming<R>>, PersistenceError>;
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: ReadonlyArray<any>) => import("effect/Effect").Effect<void, never, never>;
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
@@ -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.283",
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.283"
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"}
@@ -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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
@@ -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
@@ -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"}
@@ -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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
@@ -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
@@ -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=