@effect-app/infra 1.40.0 → 1.41.0
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 +12 -0
- package/_cjs/api/reportError.cjs +3 -29
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/services/MainFiberSet.cjs +60 -0
- package/_cjs/services/MainFiberSet.cjs.map +1 -0
- package/_cjs/services/Operations.cjs +14 -14
- package/_cjs/services/Operations.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +0 -19
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/RequestFiberSet.cjs +83 -0
- package/_cjs/services/RequestFiberSet.cjs.map +1 -0
- package/dist/api/reportError.d.ts +2 -21
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +3 -29
- package/dist/services/MainFiberSet.d.ts +60 -0
- package/dist/services/MainFiberSet.d.ts.map +1 -0
- package/dist/services/MainFiberSet.js +53 -0
- package/dist/services/Operations.d.ts +26 -11
- package/dist/services/Operations.d.ts.map +1 -1
- package/dist/services/Operations.js +17 -14
- package/dist/services/QueueMaker/errors.d.ts +0 -14
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +1 -18
- package/dist/services/RequestFiberSet.d.ts +68 -0
- package/dist/services/RequestFiberSet.d.ts.map +1 -0
- package/dist/services/RequestFiberSet.js +77 -0
- package/package.json +23 -3
- package/src/api/reportError.ts +2 -40
- package/src/services/MainFiberSet.ts +70 -0
- package/src/services/Operations.ts +48 -45
- package/src/services/QueueMaker/errors.ts +0 -27
- package/src/services/RequestFiberSet.ts +104 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
2
1
|
import { NonEmptyString2k } from "@effect-app/schema";
|
|
3
2
|
import type { Fiber } from "effect-app";
|
|
4
3
|
import { Context, Effect, Layer, Option, S } from "effect-app";
|
|
@@ -6,6 +5,7 @@ import type { OperationProgress } from "effect-app/Operations";
|
|
|
6
5
|
import { Operation, OperationId } from "effect-app/Operations";
|
|
7
6
|
import * as Scope from "effect/Scope";
|
|
8
7
|
import { OperationsRepo } from "./OperationsRepo.js";
|
|
8
|
+
import { RequestFiberSet } from "./RequestFiberSet.js";
|
|
9
9
|
declare const Operations_base: (abstract new (service: {
|
|
10
10
|
cleanup: Effect.Effect<void[], never, never>;
|
|
11
11
|
register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
|
|
@@ -14,6 +14,11 @@ declare const Operations_base: (abstract new (service: {
|
|
|
14
14
|
(title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
15
15
|
<R, E, A>(self: (opId: OperationId) => Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
16
16
|
};
|
|
17
|
+
forkOperation: {
|
|
18
|
+
(title: NonEmptyString2k): <R, E, A>(self: Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
19
|
+
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
20
|
+
};
|
|
21
|
+
forkOperationFunction: <R, E, A, Inp>(fnc: (inp: Inp) => Effect<A, E, R>, title: NonEmptyString2k) => (inp: Inp) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
17
22
|
all: Effect<Operation[]>;
|
|
18
23
|
find: (id: OperationId) => Effect<Option<Operation>>;
|
|
19
24
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
@@ -25,6 +30,11 @@ declare const Operations_base: (abstract new (service: {
|
|
|
25
30
|
(title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
26
31
|
<R, E, A>(self: (opId: OperationId) => Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
27
32
|
};
|
|
33
|
+
forkOperation: {
|
|
34
|
+
(title: NonEmptyString2k): <R, E, A>(self: Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
35
|
+
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
36
|
+
};
|
|
37
|
+
forkOperationFunction: <R, E, A, Inp>(fnc: (inp: Inp) => Effect<A, E, R>, title: NonEmptyString2k) => (inp: Inp) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
28
38
|
all: Effect<Operation[]>;
|
|
29
39
|
find: (id: OperationId) => Effect<Option<Operation>>;
|
|
30
40
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
@@ -36,23 +46,28 @@ declare const Operations_base: (abstract new (service: {
|
|
|
36
46
|
(title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
37
47
|
<R, E, A>(self: (opId: OperationId) => Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
38
48
|
};
|
|
49
|
+
forkOperation: {
|
|
50
|
+
(title: NonEmptyString2k): <R, E, A>(self: Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
51
|
+
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
52
|
+
};
|
|
53
|
+
forkOperationFunction: <R, E, A, Inp>(fnc: (inp: Inp) => Effect<A, E, R>, title: NonEmptyString2k) => (inp: Inp) => Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
|
|
39
54
|
all: Effect<Operation[]>;
|
|
40
55
|
find: (id: OperationId) => Effect<Option<Operation>>;
|
|
41
56
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
42
57
|
}>) & {
|
|
43
58
|
toLayer: {
|
|
44
|
-
(): Layer<Operations, never,
|
|
59
|
+
(): Layer<Operations, never, RequestFiberSet | OperationsRepo>;
|
|
45
60
|
<E_1, R_1>(eff: Effect<Omit<Operations, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer<Operations, E_1, R_1>;
|
|
46
61
|
};
|
|
47
62
|
toLayerScoped: {
|
|
48
|
-
(): Layer<Operations, never,
|
|
63
|
+
(): Layer<Operations, never, RequestFiberSet | OperationsRepo>;
|
|
49
64
|
<E_1, R_2>(eff: Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer<Operations, E_1, Exclude<R_2, Scope.Scope>>;
|
|
50
65
|
};
|
|
51
66
|
of: (service: Context.TagClassShape<any, any>) => Operations;
|
|
52
|
-
make: Effect<Operations, never,
|
|
67
|
+
make: Effect<Operations, never, RequestFiberSet | OperationsRepo>;
|
|
53
68
|
} & Context.Tag<Operations, Operations> & {
|
|
54
69
|
cleanup: Effect<void[], never, Operations>;
|
|
55
|
-
register: (title: NonEmptyString2k) => Effect<S.StringId, never,
|
|
70
|
+
register: (title: NonEmptyString2k) => Effect<S.StringId, never, Scope.Scope | Operations>;
|
|
56
71
|
all: Effect<Operation[], never, Operations>;
|
|
57
72
|
find: (id: S.StringId) => Effect<Option<Operation>, never, Operations>;
|
|
58
73
|
update: (id: S.StringId, progress: OperationProgress) => Effect<void, never, Operations>;
|
|
@@ -65,10 +80,15 @@ declare const Operations_base: (abstract new (service: {
|
|
|
65
80
|
(title: NonEmptyString2k): <R, E_1, A_1>(self: (opId: OperationId) => Effect<A_1, E_1, R>) => Effect<RunningOperation<A_1, E_1>, never, Exclude<R, Scope.Scope>>;
|
|
66
81
|
<R, E_2, A_2>(self: (opId: OperationId) => Effect<A_2, E_2, R>, title: NonEmptyString2k): Effect<RunningOperation<A_2, E_2>, never, Exclude<R, Scope.Scope>>;
|
|
67
82
|
};
|
|
83
|
+
forkOperation: {
|
|
84
|
+
(title: NonEmptyString2k): <R, E_3, A_3>(self: Effect<A_3, E_3, R>) => Effect<RunningOperation<A_3, E_3>, never, Exclude<R, Scope.Scope>>;
|
|
85
|
+
<R, E_4, A_4>(self: Effect<A_4, E_4, R>, title: NonEmptyString2k): Effect<RunningOperation<A_4, E_4>, never, Exclude<R, Scope.Scope>>;
|
|
86
|
+
};
|
|
87
|
+
forkOperationFunction: <R, E_5, A_5, Inp>(fnc: (inp: Inp) => Effect<A_5, E_5, R>, title: NonEmptyString2k) => (inp: Inp) => Effect<RunningOperation<A_5, E_5>, never, Exclude<R, Scope.Scope>>;
|
|
68
88
|
all: Effect<Operation[]>;
|
|
69
89
|
find: (id: OperationId) => Effect<Option<Operation>>;
|
|
70
90
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
71
|
-
}) => X) => X extends Effect<infer A_1_1, infer E_2_1, infer R_4> ? Effect<A_1_1, E_2_1,
|
|
91
|
+
}) => X) => X extends Effect<infer A_1_1, infer E_2_1, infer R_4> ? Effect<A_1_1, E_2_1, R_4 | Operations> : Effect<X, never, Operations>;
|
|
72
92
|
};
|
|
73
93
|
export declare class Operations extends Operations_base {
|
|
74
94
|
private static readonly CleanupLive;
|
|
@@ -78,10 +98,5 @@ export interface RunningOperation<A, E> {
|
|
|
78
98
|
id: OperationId;
|
|
79
99
|
fiber: Fiber.RuntimeFiber<A, E>;
|
|
80
100
|
}
|
|
81
|
-
export declare const forkOperation: {
|
|
82
|
-
(title: NonEmptyString2k): <R, E, A>(self: Effect<A, E, R>) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
83
|
-
<R, E, A>(self: Effect<A, E, R>, title: NonEmptyString2k): Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
84
|
-
};
|
|
85
|
-
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<A, E, R>, title: NonEmptyString2k): (inp: Inp) => Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
|
|
86
101
|
export {};
|
|
87
102
|
//# sourceMappingURL=Operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../../src/services/Operations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../../src/services/Operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { annotateLogscoped } from "@effect-app/core/Effect";
|
|
2
2
|
import { dual, pipe } from "@effect-app/core/Function";
|
|
3
|
-
import { RequestFiberSet } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
4
3
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
5
4
|
import { NonEmptyString2k } from "@effect-app/schema";
|
|
6
5
|
import { subHours } from "date-fns";
|
|
7
6
|
import { Cause, Context, copy, Duration, Effect, Exit, Layer, Option, S, Schedule } from "effect-app";
|
|
8
7
|
import { Failure, Operation, OperationId, Success } from "effect-app/Operations";
|
|
9
|
-
import { MainFiberSet } from "effect-app/services/MainFiberSet";
|
|
10
8
|
import * as Scope from "effect/Scope";
|
|
11
|
-
import { forkDaemonReportRequestUnexpected } from "../api/reportError.js";
|
|
12
9
|
import { batch } from "../rateLimit.js";
|
|
10
|
+
import { MainFiberSet } from "./MainFiberSet.js";
|
|
13
11
|
import { OperationsRepo } from "./OperationsRepo.js";
|
|
14
12
|
import { where } from "./query.js";
|
|
13
|
+
import { RequestFiberSet } from "./RequestFiberSet.js";
|
|
15
14
|
const reportAppError = reportError("Operations.Cleanup");
|
|
16
15
|
const make = Effect.gen(function* () {
|
|
17
16
|
const repo = yield* OperationsRepo;
|
|
@@ -52,19 +51,31 @@ const make = Effect.gen(function* () {
|
|
|
52
51
|
function fork(self, fnc, title) {
|
|
53
52
|
return Effect
|
|
54
53
|
.flatMap(Scope.make(), (scope) => register(title)
|
|
55
|
-
.pipe(Scope.extend(scope), Effect.flatMap((id) =>
|
|
54
|
+
.pipe(Scope.extend(scope), Effect.flatMap((id) => reqFiberSet
|
|
55
|
+
.forkDaemonReportRequestUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title)), scope))
|
|
56
56
|
.pipe(Effect.map((fiber) => ({ fiber, id })))), Effect.tap(({ id }) => Effect.interruptible(fnc(id)).pipe(Effect.forkScoped, Scope.extend(scope)))))
|
|
57
57
|
.pipe(Effect.provideService(RequestFiberSet, reqFiberSet));
|
|
58
58
|
}
|
|
59
59
|
const fork2 = dual(2, (self, title) => Effect.flatMap(Scope.make(), (scope) => register(title)
|
|
60
60
|
.pipe(Scope.extend(scope), Effect
|
|
61
|
-
.flatMap((id) =>
|
|
61
|
+
.flatMap((id) => reqFiberSet
|
|
62
|
+
.forkDaemonReportRequestUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title)), scope))
|
|
62
63
|
.pipe(Effect.map((fiber) => ({ fiber, id })))))));
|
|
64
|
+
const forkOperation = dual(2, (self, title) => Effect.flatMap(Scope.make(), (scope) => register(title)
|
|
65
|
+
.pipe(Scope.extend(scope), Effect
|
|
66
|
+
.flatMap((id) => reqFiberSet
|
|
67
|
+
.forkDaemonReportRequestUnexpected(Scope.use(self.pipe(Effect.withSpan(title)), scope))
|
|
68
|
+
.pipe(Effect.map((fiber) => ({ fiber, id })))))));
|
|
69
|
+
function forkOperationFunction(fnc, title) {
|
|
70
|
+
return (inp) => fnc(inp).pipe((_) => forkOperation(_, title));
|
|
71
|
+
}
|
|
63
72
|
return {
|
|
64
73
|
cleanup,
|
|
65
74
|
register,
|
|
66
75
|
fork,
|
|
67
76
|
fork2,
|
|
77
|
+
forkOperation,
|
|
78
|
+
forkOperationFunction,
|
|
68
79
|
all: repo.all,
|
|
69
80
|
find: findOp,
|
|
70
81
|
update
|
|
@@ -84,12 +95,4 @@ export class Operations extends Context.TagMakeId("effect-app/Operations", make)
|
|
|
84
95
|
.pipe(Layer.effectDiscard, Layer.provide(MainFiberSet.Live));
|
|
85
96
|
static Live = this.CleanupLive.pipe(Layer.provideMerge(this.toLayer()), Layer.provide(RequestFiberSet.Live));
|
|
86
97
|
}
|
|
87
|
-
|
|
88
|
-
.register(title)
|
|
89
|
-
.pipe(Scope.extend(scope), Effect
|
|
90
|
-
.flatMap((id) => forkDaemonReportRequestUnexpected(Scope.use(self.pipe(Effect.withSpan(title)), scope))
|
|
91
|
-
.pipe(Effect.map((fiber) => ({ fiber, id })))))));
|
|
92
|
-
export function forkOperationFunction(fnc, title) {
|
|
93
|
-
return (inp) => fnc(inp).pipe((_) => forkOperation(_, title));
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRW5DLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUMvRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFbEMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUE7QUFFeEQs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
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDaEYsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFdEQsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUE7QUFFeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7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
|
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
import { Cause, Effect, Exit } from "effect-app";
|
|
2
|
-
import { MainFiberSet } from "effect-app/services/MainFiberSet";
|
|
3
2
|
export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
|
|
4
|
-
/**
|
|
5
|
-
* Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
|
|
6
|
-
* new fiber isn't attached to the parent, when the fiber executing the
|
|
7
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
8
|
-
* The fiber will be interrupted when the MainFiberSet scope is closed.
|
|
9
|
-
*
|
|
10
|
-
* The parent span is set to the root span of the current fiber.
|
|
11
|
-
* Reports and then swallows errors.
|
|
12
|
-
*
|
|
13
|
-
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
14
|
-
*/
|
|
15
|
-
export declare function forkDaemonReportQueue<A, E, R>(self: Effect<A, E, R>): Effect<import("effect/Fiber").RuntimeFiber<void, never>, never, MainFiberSet | R>;
|
|
16
|
-
export declare const reportFatalQueueError: (cause: Cause<unknown>, extras?: Record<string, unknown>) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
|
|
17
3
|
export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <A, E, R>(inp: Effect<A, E, R>) => Effect<Exit<A, E>, never, R>;
|
|
18
4
|
export declare function reportNonInterruptedFailureCause(context?: Record<string, unknown>): <E>(cause: Cause<E>) => Effect<void>;
|
|
19
5
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wGACnD,CAAA;AAElC,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAEnE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAUrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACxE,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,IAAI,CAAC,CAM1C"}
|
|
@@ -1,24 +1,7 @@
|
|
|
1
|
-
import { setRootParentSpan } from "@effect-app/infra-adapters/RequestFiberSet";
|
|
2
1
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
3
2
|
import { Cause, Effect, Exit } from "effect-app";
|
|
4
|
-
import { MainFiberSet } from "effect-app/services/MainFiberSet";
|
|
5
3
|
const reportQueueError_ = reportError("Queue");
|
|
6
4
|
export const reportQueueError = (cause, extras) => reportQueueError_(cause, extras);
|
|
7
|
-
/**
|
|
8
|
-
* Forks the effect into a new fiber attached to the MainFiberSet scope. Because the
|
|
9
|
-
* new fiber isn't attached to the parent, when the fiber executing the
|
|
10
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
11
|
-
* The fiber will be interrupted when the MainFiberSet scope is closed.
|
|
12
|
-
*
|
|
13
|
-
* The parent span is set to the root span of the current fiber.
|
|
14
|
-
* Reports and then swallows errors.
|
|
15
|
-
*
|
|
16
|
-
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
17
|
-
*/
|
|
18
|
-
export function forkDaemonReportQueue(self) {
|
|
19
|
-
return self.pipe(Effect.asVoid, Effect.catchAllCause(reportNonInterruptedFailureCause({})), setRootParentSpan, Effect.uninterruptible, MainFiberSet.run);
|
|
20
|
-
}
|
|
21
|
-
export const reportFatalQueueError = reportError("FatalQueue");
|
|
22
5
|
export function reportNonInterruptedFailure(context) {
|
|
23
6
|
const report = reportNonInterruptedFailureCause(context);
|
|
24
7
|
return (inp) => inp.pipe(Effect.onExit(Exit.match({
|
|
@@ -34,4 +17,4 @@ export function reportNonInterruptedFailureCause(context) {
|
|
|
34
17
|
return reportQueueError(cause, context);
|
|
35
18
|
};
|
|
36
19
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFaEQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7QUFFOUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBSSxLQUFlLEVBQUUsTUFBZ0MsRUFBRSxFQUFFLENBQ3ZGLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUVsQyxNQUFNLFVBQVUsMkJBQTJCLENBQUMsT0FBaUM7SUFDM0UsTUFBTSxNQUFNLEdBQUcsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEQsT0FBTyxDQUFVLEdBQW9CLEVBQWdDLEVBQUUsQ0FDckUsR0FBRyxDQUFDLElBQUksQ0FDTixNQUFNLENBQUMsTUFBTSxDQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDVCxTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUk7S0FDN0IsQ0FBQyxDQUNILEVBQ0QsTUFBTSxDQUFDLElBQUksQ0FDWixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxPQUFpQztJQUNoRixPQUFPLENBQUksS0FBZSxFQUFnQixFQUFFO1FBQzFDLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFxQixDQUFDLENBQUE7UUFDaEQsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3pDLENBQUMsQ0FBQTtBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Context, Effect, Fiber } from "@effect-app/core";
|
|
2
|
+
export declare const setRootParentSpan: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
3
|
+
declare const RequestFiberSet_base: (abstract new (service: {
|
|
4
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
5
|
+
join: Effect.Effect<void, any, never>;
|
|
6
|
+
run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
7
|
+
add: (...fibers: Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
8
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
9
|
+
register: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
10
|
+
forkDaemonReportRequest: <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>;
|
|
11
|
+
forkDaemonReportRequestUnexpected: <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>;
|
|
12
|
+
}) => Readonly<{
|
|
13
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
14
|
+
join: Effect.Effect<void, any, never>;
|
|
15
|
+
run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
16
|
+
add: (...fibers: Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
17
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
18
|
+
register: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
19
|
+
forkDaemonReportRequest: <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>;
|
|
20
|
+
forkDaemonReportRequestUnexpected: <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>;
|
|
21
|
+
}> & Context.TagClassShape<"RequestFiberSet", {
|
|
22
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
23
|
+
join: Effect.Effect<void, any, never>;
|
|
24
|
+
run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
25
|
+
add: (...fibers: Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
26
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
27
|
+
register: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
28
|
+
forkDaemonReportRequest: <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>;
|
|
29
|
+
forkDaemonReportRequestUnexpected: <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<A, E>, never, R>;
|
|
30
|
+
}>) & {
|
|
31
|
+
toLayer: {
|
|
32
|
+
(): import("@effect-app/core").Layer<RequestFiberSet, never, import("effect/Scope").Scope>;
|
|
33
|
+
<E_1, R_1>(eff: Effect<Omit<RequestFiberSet, keyof Context.TagClassShape<any, any>>, E_1, R_1>): import("@effect-app/core").Layer<RequestFiberSet, E_1, R_1>;
|
|
34
|
+
};
|
|
35
|
+
toLayerScoped: {
|
|
36
|
+
(): import("@effect-app/core").Layer<RequestFiberSet, never, never>;
|
|
37
|
+
<E_1, R_2>(eff: Effect<Context.TagClassShape<any, any>, E_1, R_2>): import("@effect-app/core").Layer<RequestFiberSet, E_1, Exclude<R_2, import("effect/Scope").Scope>>;
|
|
38
|
+
};
|
|
39
|
+
of: (service: Context.TagClassShape<any, any>) => RequestFiberSet;
|
|
40
|
+
make: Effect<RequestFiberSet, never, import("effect/Scope").Scope>;
|
|
41
|
+
} & Context.Tag<RequestFiberSet, RequestFiberSet> & {
|
|
42
|
+
interrupt: Effect<void, never, RequestFiberSet>;
|
|
43
|
+
join: Effect<void, any, RequestFiberSet>;
|
|
44
|
+
add: (...args: readonly Fiber.RuntimeFiber<any, any>[]) => Effect<void, never, RequestFiberSet>;
|
|
45
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<any, any>[]) => Effect<void, never, RequestFiberSet>;
|
|
46
|
+
} & {
|
|
47
|
+
use: <X>(body: (_: {
|
|
48
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
49
|
+
join: Effect.Effect<void, any, never>;
|
|
50
|
+
run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
51
|
+
add: (...fibers: Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
52
|
+
addAll: (fibers: readonly Fiber.RuntimeFiber<any, any>[]) => Effect.Effect<void, never, never>;
|
|
53
|
+
register: <A, E, R>(self: Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
54
|
+
forkDaemonReportRequest: <R_1, E_1, A>(self: Effect<A, E_1, R_1>) => Effect.Effect<Fiber.RuntimeFiber<A, E_1>, never, R_1>;
|
|
55
|
+
forkDaemonReportRequestUnexpected: <R_1, E_2, A_1>(self: Effect<A_1, E_2, R_1>) => Effect.Effect<Fiber.RuntimeFiber<A_1, E_2>, never, R_1>;
|
|
56
|
+
}) => X) => X extends Effect<infer A_1_1, infer E_2_1, infer R_4> ? Effect<A_1_1, E_2_1, R_4 | RequestFiberSet> : Effect<X, never, RequestFiberSet>;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
|
|
60
|
+
* like the ServiceBus Sender, you should register these fibers in this FiberSet.
|
|
61
|
+
*/
|
|
62
|
+
export declare class RequestFiberSet extends RequestFiberSet_base {
|
|
63
|
+
static readonly Live: import("@effect-app/core").Layer<RequestFiberSet, never, never>;
|
|
64
|
+
static readonly register: <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, RequestFiberSet | R>;
|
|
65
|
+
static readonly run: <A, E, R>(self: Effect<A, E, R>) => Effect<Fiber.RuntimeFiber<A, E>, never, RequestFiberSet | R>;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=RequestFiberSet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/RequestFiberSet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAoB,MAAM,kBAAkB,CAAA;AAe3E,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BACmC,CAAA;;;;;qBAIzE,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;qBAE9B,SAAS,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;eAO7C,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;8BAwBf,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wCAkBpB,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;qBAnDjD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;qBAE9B,SAAS,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;eAO7C,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;8BAwBf,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wCAkBpB,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;qBAnDjD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;qBAE9B,SAAS,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;eAO7C,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;8BAwBf,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wCAkBpB,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;yBAnDjD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;yBAE9B,SAAS,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;mBAO7C,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4CAwBT,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,GAAC,EAAE,GAAC,CAAC;iEAkBL,MAAM,CAAC,GAAC,EAAE,GAAC,EAAE,GAAC,CAAC;;;AAsB3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAA6D;IAChG,MAAM,CAAC,QAAQ,CAAC,IAAI,kEAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uCAAsC;IAChG,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEAAiC;CACvF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Context, Effect, Fiber, FiberSet, Option } from "@effect-app/core";
|
|
2
|
+
import { reportRequestError, reportUnknownRequestError } from "../api/reportError.js";
|
|
3
|
+
import { InfraLogger } from "../logger.js";
|
|
4
|
+
const getRootParentSpan = Effect.gen(function* () {
|
|
5
|
+
let span = yield* Effect.currentSpan.pipe(Effect.catchTag("NoSuchElementException", () => Effect.succeed(null)));
|
|
6
|
+
if (!span)
|
|
7
|
+
return span;
|
|
8
|
+
while (span._tag === "Span" && Option.isSome(span.parent)) {
|
|
9
|
+
span = span.parent.value;
|
|
10
|
+
}
|
|
11
|
+
return span;
|
|
12
|
+
});
|
|
13
|
+
export const setRootParentSpan = (self) => getRootParentSpan.pipe(Effect.andThen((span) => span ? Effect.withParentSpan(self, span) : self));
|
|
14
|
+
const make = Effect.gen(function* () {
|
|
15
|
+
const set = yield* FiberSet.make();
|
|
16
|
+
const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
|
|
17
|
+
const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
|
|
18
|
+
const join = FiberSet.size(set).pipe(Effect.andThen((count) => InfraLogger.logInfo(`Joining ${count} current fibers on the RequestFiberSet`)), Effect.andThen(FiberSet.join(set)));
|
|
19
|
+
const run = FiberSet.run(set);
|
|
20
|
+
const register = (self) => self.pipe(Effect.fork, Effect.tap(add), Effect.andThen(Fiber.join));
|
|
21
|
+
// const waitUntilEmpty = Effect.gen(function*() {
|
|
22
|
+
// const currentSize = yield* FiberSet.size(set)
|
|
23
|
+
// if (currentSize === 0) {
|
|
24
|
+
// return
|
|
25
|
+
// }
|
|
26
|
+
// yield* Effect.logInfo("Waiting RequestFiberSet to be empty: " + currentSize)
|
|
27
|
+
// while ((yield* FiberSet.size(set)) > 0) yield* Effect.sleep("250 millis")
|
|
28
|
+
// yield* Effect.logDebug("RequestFiberSet is empty")
|
|
29
|
+
// })
|
|
30
|
+
// TODO: loop and interrupt all fibers in the set continuously?
|
|
31
|
+
const interrupt = Fiber.interruptAll(set);
|
|
32
|
+
/**
|
|
33
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
34
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
35
|
+
* returned effect terminates, the forked fiber will continue running.
|
|
36
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
37
|
+
*
|
|
38
|
+
* The parent span is set to the root span of the current fiber.
|
|
39
|
+
* Reports errors.
|
|
40
|
+
*/
|
|
41
|
+
function forkDaemonReportRequest(self) {
|
|
42
|
+
return self.pipe(reportRequestError, setRootParentSpan, Effect.uninterruptible, run);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
46
|
+
* new fiber isn't attached to the parent, when the fiber executing the
|
|
47
|
+
* returned effect terminates, the forked fiber will continue running.
|
|
48
|
+
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
49
|
+
*
|
|
50
|
+
* The parent span is set to the root span of the current fiber.
|
|
51
|
+
* Reports unexpected errors.
|
|
52
|
+
*/
|
|
53
|
+
function forkDaemonReportRequestUnexpected(self) {
|
|
54
|
+
return self
|
|
55
|
+
.pipe(reportUnknownRequestError, setRootParentSpan, Effect.uninterruptible, run);
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
interrupt,
|
|
59
|
+
join,
|
|
60
|
+
run,
|
|
61
|
+
add,
|
|
62
|
+
addAll,
|
|
63
|
+
register,
|
|
64
|
+
forkDaemonReportRequest,
|
|
65
|
+
forkDaemonReportRequestUnexpected
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
|
|
70
|
+
* like the ServiceBus Sender, you should register these fibers in this FiberSet.
|
|
71
|
+
*/
|
|
72
|
+
export class RequestFiberSet extends Context.TagMakeId("RequestFiberSet", make)() {
|
|
73
|
+
static Live = this.toLayerScoped();
|
|
74
|
+
static register = (self) => this.use((_) => _.register(self));
|
|
75
|
+
static run = (self) => this.use((_) => _.run(self));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdEZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL1JlcXVlc3RGaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFMUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUM1QyxJQUFJLElBQUksR0FBMEIsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzlELE1BQU0sQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0RSxDQUFBO0lBQ0QsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBVSxJQUFxQixFQUFFLEVBQUUsQ0FDbEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.41.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"pure-rand": "6.1.0",
|
|
22
22
|
"redlock": "^4.2.0",
|
|
23
23
|
"@effect-app/core": "1.17.0",
|
|
24
|
-
"@effect-app/infra-adapters": "1.
|
|
25
|
-
"effect-app": "1.
|
|
24
|
+
"@effect-app/infra-adapters": "1.20.0",
|
|
25
|
+
"effect-app": "1.29.0",
|
|
26
26
|
"@effect-app/schema": "1.19.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
@@ -367,6 +367,16 @@
|
|
|
367
367
|
"default": "./_cjs/services/Emailer/service.cjs"
|
|
368
368
|
}
|
|
369
369
|
},
|
|
370
|
+
"./services/MainFiberSet": {
|
|
371
|
+
"import": {
|
|
372
|
+
"types": "./dist/services/MainFiberSet.d.ts",
|
|
373
|
+
"default": "./dist/services/MainFiberSet.js"
|
|
374
|
+
},
|
|
375
|
+
"require": {
|
|
376
|
+
"types": "./dist/services/MainFiberSet.d.ts",
|
|
377
|
+
"default": "./_cjs/services/MainFiberSet.cjs"
|
|
378
|
+
}
|
|
379
|
+
},
|
|
370
380
|
"./services/Operations": {
|
|
371
381
|
"import": {
|
|
372
382
|
"types": "./dist/services/Operations.d.ts",
|
|
@@ -497,6 +507,16 @@
|
|
|
497
507
|
"default": "./_cjs/services/RequestContextContainer.cjs"
|
|
498
508
|
}
|
|
499
509
|
},
|
|
510
|
+
"./services/RequestFiberSet": {
|
|
511
|
+
"import": {
|
|
512
|
+
"types": "./dist/services/RequestFiberSet.d.ts",
|
|
513
|
+
"default": "./dist/services/RequestFiberSet.js"
|
|
514
|
+
},
|
|
515
|
+
"require": {
|
|
516
|
+
"types": "./dist/services/RequestFiberSet.d.ts",
|
|
517
|
+
"default": "./_cjs/services/RequestFiberSet.cjs"
|
|
518
|
+
}
|
|
519
|
+
},
|
|
500
520
|
"./services/Store": {
|
|
501
521
|
"import": {
|
|
502
522
|
"types": "./dist/services/Store.d.ts",
|
package/src/api/reportError.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { RequestFiberSet, setRootParentSpan } from "@effect-app/infra-adapters/RequestFiberSet"
|
|
2
1
|
import { Cause, Effect } from "effect-app"
|
|
3
2
|
import { logError, reportError } from "../errorReporter.js"
|
|
4
3
|
|
|
@@ -26,42 +25,5 @@ const tapErrorCause = (name: string, unknownOnly?: boolean) => {
|
|
|
26
25
|
: report(cause)
|
|
27
26
|
: report(cause))
|
|
28
27
|
}
|
|
29
|
-
const reportRequestError = tapErrorCause("request")
|
|
30
|
-
const reportUnknownRequestError = tapErrorCause("request", true)
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
34
|
-
* new fiber isn't attached to the parent, when the fiber executing the
|
|
35
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
36
|
-
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
37
|
-
*
|
|
38
|
-
* The parent span is set to the root span of the current fiber.
|
|
39
|
-
* Reports errors.
|
|
40
|
-
*/
|
|
41
|
-
export function forkDaemonReportRequest<R, E, A>(self: Effect<A, E, R>) {
|
|
42
|
-
return self.pipe(
|
|
43
|
-
reportRequestError,
|
|
44
|
-
setRootParentSpan,
|
|
45
|
-
Effect.uninterruptible,
|
|
46
|
-
RequestFiberSet.run
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Forks the effect into a new fiber attached to the RequestFiberSet scope. Because the
|
|
52
|
-
* new fiber isn't attached to the parent, when the fiber executing the
|
|
53
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
54
|
-
* The fiber will be interrupted when the RequestFiberSet scope is closed.
|
|
55
|
-
*
|
|
56
|
-
* The parent span is set to the root span of the current fiber.
|
|
57
|
-
* Reports unexpected errors.
|
|
58
|
-
*/
|
|
59
|
-
export function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<A, E, R>) {
|
|
60
|
-
return self
|
|
61
|
-
.pipe(
|
|
62
|
-
reportUnknownRequestError,
|
|
63
|
-
setRootParentSpan,
|
|
64
|
-
Effect.uninterruptible,
|
|
65
|
-
RequestFiberSet.run
|
|
66
|
-
)
|
|
67
|
-
}
|
|
28
|
+
export const reportRequestError = tapErrorCause("request")
|
|
29
|
+
export const reportUnknownRequestError = tapErrorCause("request", true)
|