@effect-app/infra 0.132.2 → 0.133.0-next.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 +14 -0
- package/_cjs/RequestContext.cjs +23 -13
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/_global.ext.cjs +7 -0
- package/_cjs/_global.ext.cjs.map +1 -1
- package/_cjs/api/codec.cjs +2 -6
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/express/schema/jwt.cjs +5 -26
- package/_cjs/api/express/schema/jwt.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +2 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errors.cjs +3 -1
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +5 -4
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +12 -10
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +17 -15
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +30 -29
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/service.cjs +3 -3
- package/_cjs/services/QueueMaker/service.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +2 -2
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +31 -33
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +3 -3
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +4 -4
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +15 -13
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +49 -40
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +15 -15
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +15 -14
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +3 -3
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_src/RequestContext.ts +27 -28
- package/_src/_global.ext.ts +12 -4
- package/_src/_global.schema.ts +1 -1
- package/_src/api/codec.ts +3 -9
- package/_src/api/express/schema/jwt.ts +5 -32
- package/_src/api/express/schema/{routing.ts → routing.ts.bak} +10 -10
- package/_src/errors.ts +12 -5
- package/_src/services/Emailer/Sendgrid.ts +17 -14
- package/_src/services/QueueMaker/memQueue.ts +4 -3
- package/_src/services/QueueMaker/sbqueue.ts +4 -3
- package/_src/services/QueueMaker/service.ts +2 -2
- package/_src/services/Repository.ts +14 -13
- package/_src/services/RepositoryBase.ts +14 -37
- package/_src/services/Store/Cosmos.ts +23 -21
- package/_src/services/Store/Disk.ts +4 -2
- package/_src/services/Store/service.ts +59 -62
- package/_src/services/simpledb/memdb.ts +1 -2
- package/_src/services/simpledb/redisdb.ts +21 -17
- package/_src/services/simpledb/shared.ts +4 -5
- package/dist/RequestContext.d.ts +93 -77
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +24 -14
- package/dist/_global.ext.d.ts +7 -5
- package/dist/_global.ext.d.ts.map +1 -1
- package/dist/_global.ext.js +6 -2
- package/dist/_global.schema.d.ts +1 -1
- package/dist/_global.schema.d.ts.map +1 -1
- package/dist/_global.schema.js +1 -1
- package/dist/api/codec.d.ts +2 -3
- package/dist/api/codec.d.ts.map +1 -1
- package/dist/api/codec.js +3 -7
- package/dist/api/express/schema/jwt.d.ts +2 -4
- package/dist/api/express/schema/jwt.d.ts.map +1 -1
- package/dist/api/express/schema/jwt.js +5 -27
- package/dist/api/setupRequest.js +3 -3
- package/dist/errors.d.ts +6 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +4 -2
- package/dist/services/Emailer/Sendgrid.d.ts +108 -108
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +6 -5
- package/dist/services/Operations/live.js +17 -15
- package/dist/services/Operations/service.d.ts +4 -4
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.d.ts +2 -2
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +17 -15
- package/dist/services/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +26 -25
- package/dist/services/QueueMaker/service.d.ts +30 -16
- package/dist/services/QueueMaker/service.d.ts.map +1 -1
- package/dist/services/QueueMaker/service.js +4 -4
- package/dist/services/Repository.d.ts +10 -9
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +3 -3
- package/dist/services/RepositoryBase.d.ts +20 -21
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +32 -34
- package/dist/services/RequestContextContainer.d.ts +4 -4
- package/dist/services/RequestContextContainer.js +3 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +6 -6
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +14 -13
- package/dist/services/Store/service.d.ts +6 -9
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +50 -43
- package/dist/services/simpledb/memdb.d.ts +3 -4
- package/dist/services/simpledb/memdb.d.ts.map +1 -1
- package/dist/services/simpledb/memdb.js +17 -17
- package/dist/services/simpledb/redisdb.d.ts +14 -10
- package/dist/services/simpledb/redisdb.d.ts.map +1 -1
- package/dist/services/simpledb/redisdb.js +17 -16
- package/dist/services/simpledb/shared.d.ts +24 -16
- package/dist/services/simpledb/shared.d.ts.map +1 -1
- package/dist/services/simpledb/shared.js +4 -4
- package/package.json +7 -56
- package/tsconfig.json +2 -1
- package/_cjs/api/express/makeJsonSchema.cjs +0 -151
- package/_cjs/api/express/makeJsonSchema.cjs.map +0 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +0 -50
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +0 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +0 -65
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +0 -1
- package/_cjs/api/express/schema/routing.cjs +0 -137
- package/_cjs/api/express/schema/routing.cjs.map +0 -1
- package/_cjs/api/writeDocs.cjs +0 -32
- package/_cjs/api/writeDocs.cjs.map +0 -1
- package/_cjs/test.arbs.cjs +0 -32
- package/_cjs/test.arbs.cjs.map +0 -1
- package/dist/api/express/makeJsonSchema.d.ts +0 -34
- package/dist/api/express/makeJsonSchema.d.ts.map +0 -1
- package/dist/api/express/makeJsonSchema.js +0 -131
- package/dist/api/express/makeJsonSchema.test.d.ts.map +0 -1
- package/dist/api/express/makeOpenApiSpecs.d.ts +0 -58
- package/dist/api/express/makeOpenApiSpecs.d.ts.map +0 -1
- package/dist/api/express/makeOpenApiSpecs.js +0 -55
- package/dist/api/express/schema/routing.d.ts +0 -62
- package/dist/api/express/schema/routing.d.ts.map +0 -1
- package/dist/api/express/schema/routing.js +0 -111
- package/dist/api/writeDocs.d.ts +0 -4
- package/dist/api/writeDocs.d.ts.map +0 -1
- package/dist/api/writeDocs.js +0 -24
- package/dist/test.arbs.d.ts +0 -13
- package/dist/test.arbs.d.ts.map +0 -1
- package/dist/test.arbs.js +0 -22
- /package/_src/api/express/{makeJsonSchema.test.ts → makeJsonSchema.test.ts.bak} +0 -0
- /package/_src/api/express/{makeJsonSchema.ts → makeJsonSchema.ts.bak} +0 -0
- /package/_src/api/express/{makeOpenApiSpecs.ts → makeOpenApiSpecs.ts.bak} +0 -0
- /package/_src/api/{writeDocs.ts → writeDocs.ts.bak} +0 -0
- /package/_src/{test.arbs.ts → test.arbs.ts.bak} +0 -0
|
@@ -4,6 +4,7 @@ import * as tsplus_module_3 from "effect/Layer";
|
|
|
4
4
|
import * as tsplus_module_4 from "effect/Equivalence";
|
|
5
5
|
import * as tsplus_module_5 from "@effect-app/core/_ext/ord.ext";
|
|
6
6
|
import * as tsplus_module_6 from "@effect-app/core/Array";
|
|
7
|
+
import { dropUndefinedT } from "@effect-app/core/utils";
|
|
7
8
|
import sgMail from "@sendgrid/mail";
|
|
8
9
|
import { inspect } from "util";
|
|
9
10
|
import { Emailer } from "./service.js";
|
|
@@ -12,11 +13,11 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
|
|
|
12
13
|
return {
|
|
13
14
|
sendMail(msg_) {
|
|
14
15
|
return tsplus_module_2.gen(function* ($) {
|
|
15
|
-
const msg = {
|
|
16
|
+
const msg = dropUndefinedT({
|
|
16
17
|
...msg_,
|
|
17
18
|
from: msg_.from ?? defaultFrom,
|
|
18
19
|
replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
|
|
19
|
-
};
|
|
20
|
+
});
|
|
20
21
|
const render = renderMessage(!realMail);
|
|
21
22
|
const renderedMsg_ = render(msg);
|
|
22
23
|
const renderedMsg = { ...renderedMsg_, subject: `${subjectPrefix}${renderedMsg_.subject}` };
|
|
@@ -51,13 +52,13 @@ export function renderMessage(forceFake) {
|
|
|
51
52
|
let i = 0;
|
|
52
53
|
const makeId = () => i++;
|
|
53
54
|
return forceFake
|
|
54
|
-
? (msg) => ({
|
|
55
|
+
? (msg) => dropUndefinedT({
|
|
55
56
|
...msg,
|
|
56
57
|
to: msg.to && renderFake(msg.to, makeId),
|
|
57
58
|
cc: msg.cc && renderFake(msg.cc, makeId),
|
|
58
59
|
bcc: msg.bcc && renderFake(msg.bcc, makeId)
|
|
59
60
|
})
|
|
60
|
-
: (msg) => ({
|
|
61
|
+
: (msg) => dropUndefinedT({
|
|
61
62
|
...msg,
|
|
62
63
|
to: msg.to && renderFakeIfTest(msg.to, makeId),
|
|
63
64
|
cc: msg.cc && renderFakeIfTest(msg.cc, makeId),
|
|
@@ -98,4 +99,4 @@ function renderMailData(md) {
|
|
|
98
99
|
}
|
|
99
100
|
return md.email;
|
|
100
101
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL0VtYWlsZXIvU2VuZGdyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXZELE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUd0QyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBa0IsRUFBRSxFQUFFLENBQ3hHLHFCQUFZLEdBQUcsRUFBRTtJQUNmLE1BQU0sQ0FBQyxTQUFTLHVCQUFDLE1BQU0sRUFBTyxDQUFBO0lBRTlCLE9BQU87UUFDTCxRQUFRLENBQUMsSUFBMEI7WUFDakMsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUMzQixNQUFNLEdBQUcsR0FBYSxjQUFjLENBQUM7b0JBQ25DLEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO29CQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2lCQUNsRSxDQUFDLENBQUE7Z0JBQ0YsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7Z0JBRXZDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEMsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxhQUFhLEdBQUcsWUFBWSxDQUFD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
|
|
@@ -5,12 +5,14 @@ import * as tsplus_module_4 from "@effect-app/core/Array";
|
|
|
5
5
|
import * as tsplus_module_5 from "effect/Chunk";
|
|
6
6
|
import * as tsplus_module_6 from "effect/Exit";
|
|
7
7
|
import * as tsplus_module_7 from "effect/Cause";
|
|
8
|
-
import * as tsplus_module_8 from "@effect-app/
|
|
9
|
-
import * as tsplus_module_9 from "@effect-app/
|
|
10
|
-
import * as tsplus_module_10 from "@effect
|
|
11
|
-
import * as tsplus_module_11 from "effect/
|
|
12
|
-
import * as tsplus_module_12 from "effect/
|
|
13
|
-
import * as tsplus_module_13 from "effect/
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/infra/_global.ext";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/prelude/schema";
|
|
10
|
+
import * as tsplus_module_10 from "@effect/schema/Parser";
|
|
11
|
+
import * as tsplus_module_11 from "@effect-app/core/Option";
|
|
12
|
+
import * as tsplus_module_12 from "@effect-app/prelude/_ext/misc";
|
|
13
|
+
import * as tsplus_module_13 from "effect/Duration";
|
|
14
|
+
import * as tsplus_module_14 from "effect/Schedule";
|
|
15
|
+
import * as tsplus_module_15 from "effect/Layer";
|
|
14
16
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
15
17
|
import { Failure, Operation, OperationId, Success } from "@effect-app/prelude/Operations";
|
|
16
18
|
import { Operations } from "./service.js";
|
|
@@ -48,13 +50,13 @@ const make = tsplus_module_1.sync(() => {
|
|
|
48
50
|
? new Success()
|
|
49
51
|
: new Failure({
|
|
50
52
|
message: tsplus_module_7.isInterrupted(exit.cause)
|
|
51
|
-
? tsplus_module_8.NonEmptyString2k
|
|
53
|
+
? tsplus_module_8.parseSync(tsplus_module_16.NonEmptyString2k, "Interrupted")
|
|
52
54
|
: tsplus_module_7.isDie(exit.cause)
|
|
53
|
-
? tsplus_module_8.NonEmptyString2k
|
|
54
|
-
:
|
|
55
|
-
.cause), (_) => typeof _ === "object" && _ !== null && "message" in _ &&
|
|
55
|
+
? tsplus_module_8.parseSync(tsplus_module_17.NonEmptyString2k, "Unknown error")
|
|
56
|
+
: tsplus_module_11.getOrUndefined(tsplus_module_3.flatMap(tsplus_module_7.failureOption(exit
|
|
57
|
+
.cause), (_) => typeof _ === "object" && _ !== null && "message" in _ && tsplus_module_10.is(tsplus_module_9.NonEmptyString2k)(_.message)
|
|
56
58
|
? tsplus_module_3.some(_.message)
|
|
57
|
-
:
|
|
59
|
+
: tsplus_module_11.none)) ?? null
|
|
58
60
|
})
|
|
59
61
|
});
|
|
60
62
|
}));
|
|
@@ -69,7 +71,7 @@ const make = tsplus_module_1.sync(() => {
|
|
|
69
71
|
}
|
|
70
72
|
return {
|
|
71
73
|
cleanup,
|
|
72
|
-
register: tsplus_module_1.tap(makeOp, (id) => tsplus_module_1.zipRight(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit)))(
|
|
74
|
+
register: tsplus_module_1.tap(makeOp, (id) => tsplus_module_1.zipRight(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit)))(tsplus_module_12.annotateLogscoped("operationId", id))),
|
|
73
75
|
find: findOp,
|
|
74
76
|
update
|
|
75
77
|
};
|
|
@@ -81,9 +83,9 @@ const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.schedule(tsplus_m
|
|
|
81
83
|
else {
|
|
82
84
|
return reportAppError(_.cause);
|
|
83
85
|
}
|
|
84
|
-
}),
|
|
86
|
+
}), tsplus_module_14.fixed(tsplus_module_13.minutes(1))));
|
|
85
87
|
/**
|
|
86
88
|
* @tsplus static Operations.Ops Live
|
|
87
89
|
*/
|
|
88
|
-
export const Live =
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
export const Live = tsplus_module_15.provideMerge(tsplus_module_15.scopedDiscard(cleanupLoop), tsplus_module_15.effect(Operations)(make));
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9saXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUV4RCxNQUFNLElBQUksR0FBRyxxQkFBWSxHQUFlLEVBQUU7SUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUE7SUFDN0MsTUFBTSxNQUFNLEdBQUcsMkJBQU8sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFFekMsTUFBTSxPQUFPLEdBQUcseUJBQUEscUJBQ1IsR0FBRyxFQUFFO1FBQ1QsTUFBTSxNQUFNLEdBQUcsNkJBQUEsSUFBSSxJQUFJLEVBQUUsRUFBVSxDQUFDLENBQUMsQ0FBQTtRQUNyQyxzREFBQSxHQUFHO2FBQ0EsT0FBTyxFQUFFLEdBRUQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sV0FBVyxHQUFHLDBCQUFBLDZCQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLEVBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ25GLElBQUksV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxFQUNRLG9CQUFvQixDQUFD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
|
|
@@ -29,21 +29,21 @@ export declare namespace Operations {
|
|
|
29
29
|
* @tsplus getter effect/io/Effect forkOperation
|
|
30
30
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
31
31
|
*/
|
|
32
|
-
export declare function forkOperation<R, E, A>(self: Effect<R, E, A>): import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope>, never, import("@effect-app/
|
|
32
|
+
export declare function forkOperation<R, E, A>(self: Effect<R, E, A>): import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope>, never, import("@effect-app/schema/moreStrings").StringId>;
|
|
33
33
|
/**
|
|
34
34
|
* @tsplus getter function forkOperation
|
|
35
35
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
36
36
|
*/
|
|
37
|
-
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>): (inp: Inp) => import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope>, never, import("@effect-app/
|
|
37
|
+
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>): (inp: Inp) => import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope>, never, import("@effect-app/schema/moreStrings").StringId>;
|
|
38
38
|
/**
|
|
39
39
|
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
40
40
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
41
41
|
*/
|
|
42
|
-
export declare function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>): import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope>, never, import("@effect-app/
|
|
42
|
+
export declare function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>): import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope>, never, import("@effect-app/schema/moreStrings").StringId>;
|
|
43
43
|
/**
|
|
44
44
|
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
45
45
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
46
46
|
*/
|
|
47
|
-
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<R, E, A>, fnc: (id: OperationId) => Effect<R2, E2, A2>): import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>, never, import("@effect-app/
|
|
47
|
+
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<R, E, A>, fnc: (id: OperationId) => Effect<R2, E2, A2>): import("effect/Effect").Effect<Operations.Id | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>, never, import("@effect-app/schema/moreStrings").StringId>;
|
|
48
48
|
export {};
|
|
49
49
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;cAOzB,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;eACzE,WAAW,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC;aACzD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;;cAHzB,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;eACzE,WAAW,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC;aACzD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;;AARrC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAKhB;CAAG;AACnB,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;KAC1B;CACF;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;cAOzB,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;eACzE,WAAW,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC;aACzD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;;cAHzB,OAAO,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC;iBACpC,WAAW,YAAY,iBAAiB,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;eACzE,WAAW,KAAK,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC;aACzD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;;AARrC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAKhB;CAAG;AACnB,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;KAC1B;CACF;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,qIAY3D;;;;;AAKD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SACvE,GAAG,uIACjB;;;;;AAKD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,qIAYnF;;;;;AAKD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EACzD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1C,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gKAc7C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StringId } from "@effect-app/prelude/schema";
|
|
2
|
-
import { Schema } from "@effect-app/prelude";
|
|
3
2
|
import { Effect } from "effect/Effect";
|
|
4
3
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
4
|
+
import type { Schema2 } from "@effect-app/prelude";
|
|
5
5
|
import { Tracer } from "effect";
|
|
6
6
|
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
7
7
|
/**
|
|
@@ -14,7 +14,7 @@ export declare function makeMemQueue<Evt extends {
|
|
|
14
14
|
}, DrainEvt extends {
|
|
15
15
|
id: StringId;
|
|
16
16
|
_tag: string;
|
|
17
|
-
}, EvtE>(queueName: string, queueDrainName: string, schema:
|
|
17
|
+
}, EvtE>(queueName: string, queueDrainName: string, schema: Schema2.Schema<EvtE, Evt>, drainSchema: Schema2.Schema<unknown, DrainEvt>): import("effect/Effect").Effect<RequestContextContainer | MemQueue, never, {
|
|
18
18
|
publish: (messages_0: Evt, ...messages_1: Evt[]) => import("effect/Effect").Effect<never, never, import("effect/Fiber").RuntimeFiber<never, void[]>>;
|
|
19
19
|
makeDrain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<DrainR, DrainE, void>) => import("effect/Effect").Effect<import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<DrainR, Tracer.ParentSpan>, Tracer.ParentSpan>, never, import("effect/Fiber").RuntimeFiber<never, never>>;
|
|
20
20
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAE9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;;;;;AAOvE,wBAAgB,YAAY,CAC1B,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,EAEJ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EACjC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;;kDAmCtB,QAAQ,KAAK,OAAO,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;GAwClE"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/prelude/schema";
|
|
2
|
-
import * as tsplus_module_2 from "@effect
|
|
2
|
+
import * as tsplus_module_2 from "@effect/schema/Parser";
|
|
3
3
|
import * as tsplus_module_3 from "effect/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/core/
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/
|
|
6
|
-
import * as tsplus_module_6 from "@effect-app/
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/infra/
|
|
8
|
-
import * as tsplus_module_8 from "effect/
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/Function";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/_ext/Iterable";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/infra/services/QueueMaker/errors";
|
|
7
|
+
import * as tsplus_module_7 from "@effect-app/infra/_global.ext";
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/prelude/utils";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/infra/api/setupRequest";
|
|
10
|
+
import * as tsplus_module_10 from "effect/Fiber";
|
|
9
11
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
10
12
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
11
13
|
import { RequestId } from "@effect-app/prelude/ids";
|
|
@@ -24,15 +26,15 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
24
26
|
const rcc = yield* $(RequestContextContainer);
|
|
25
27
|
const wireSchema = tsplus_module_1.struct({ body: schema, meta: QueueMeta });
|
|
26
28
|
const drainW = tsplus_module_1.struct({ body: drainSchema, meta: QueueMeta });
|
|
27
|
-
const parseDrain = tsplus_module_2.
|
|
29
|
+
const parseDrain = tsplus_module_4.flow(tsplus_module_2.parse(drainW), (_) => tsplus_module_3.orDie(_));
|
|
28
30
|
return {
|
|
29
31
|
publish: (...messages) => tsplus_module_3.gen(function* ($) {
|
|
30
32
|
const requestContext = yield* $(rcc.requestContext);
|
|
31
33
|
const currentSpan = yield* $(tsplus_module_3.orDie(tsplus_module_3.currentSpan));
|
|
32
34
|
const span = Tracer.externalSpan(currentSpan);
|
|
33
|
-
return yield* $(
|
|
35
|
+
return yield* $(tsplus_module_6.forkDaemonReportQueue(tsplus_module_5.ext_forEach(messages, (m) => tsplus_module_3.asUnit(
|
|
34
36
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
35
|
-
tsplus_module_3.flatMap(tsplus_module_3.sync(() => JSON.stringify(
|
|
37
|
+
tsplus_module_3.flatMap(tsplus_module_3.sync(() => JSON.stringify(tsplus_module_2.encodeSync(wireSchema)({ body: m, meta: { requestContext, span } })))
|
|
36
38
|
// .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
|
|
37
39
|
, (_) => q.offer(_))))));
|
|
38
40
|
}),
|
|
@@ -40,12 +42,12 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
40
42
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
|
|
41
43
|
const processMessage = (msg) =>
|
|
42
44
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
43
|
-
tsplus_module_3.flatMap(tsplus_module_3.orDie(tsplus_module_3.flatMap(tsplus_module_3.sync(() => JSON.parse(msg)), parseDrain)), ({ body, meta }) => tsplus_module_3.withSpan(
|
|
44
|
-
.pipe(tsplus_module_3.annotateLogs({ body:
|
|
45
|
+
tsplus_module_3.flatMap(tsplus_module_3.orDie(tsplus_module_3.flatMap(tsplus_module_3.sync(() => JSON.parse(msg)), parseDrain)), ({ body, meta }) => tsplus_module_3.withSpan(tsplus_module_9.setupRequestContext(tsplus_module_3.zipRight(tsplus_module_3.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
46
|
+
.pipe(tsplus_module_3.annotateLogs({ body: tsplus_module_8.RecordPretty(tsplus_module_8.object$(body)), meta: tsplus_module_8.RecordPretty(tsplus_module_8.object$(meta)) })), handleEvent(body))
|
|
45
47
|
.pipe(silenceAndReportError), RequestContext.inherit(meta.requestContext, {
|
|
46
|
-
id: RequestId
|
|
48
|
+
id: tsplus_module_7.parseSync(RequestId, body.id),
|
|
47
49
|
locale: "en",
|
|
48
|
-
name: tsplus_module_1.NonEmptyString255
|
|
50
|
+
name: tsplus_module_7.parseSync(tsplus_module_1.NonEmptyString255, body._tag)
|
|
49
51
|
})), "queue.drain", {
|
|
50
52
|
attributes: { "queue.name": queueDrainName },
|
|
51
53
|
parent: meta.span
|
|
@@ -53,7 +55,7 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
53
55
|
: undefined
|
|
54
56
|
}));
|
|
55
57
|
return yield* $(tsplus_module_3.forkScoped(tsplus_module_3.forever(tsplus_module_3.flatMap(qDrain
|
|
56
|
-
.take, (x) => tsplus_module_3.flatMap(tsplus_module_3.fork(tsplus_module_3.uninterruptible(processMessage(x))), (_) =>
|
|
58
|
+
.take, (x) => tsplus_module_3.flatMap(tsplus_module_3.fork(tsplus_module_3.uninterruptible(processMessage(x))), (_) => tsplus_module_10.join(_)))
|
|
57
59
|
// TODO: normally a failed item would be returned to the queue and retried up to X times.
|
|
58
60
|
// .flatMap(_ => _._tag === "Failure" && !isInterrupted ? qDrain.offer(x) : Effect.unit) // TODO: retry count tracking and max retries.
|
|
59
61
|
.pipe(silenceAndReportError))));
|
|
@@ -61,4 +63,4 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
61
63
|
};
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDL0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pELE9BQU8sRUFBa0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FLMUIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsTUFBaUMsRUFDakMsV0FBOEM7SUFFOUMsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM5QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBQzdELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRTdDLE1BQU0sVUFBVSxHQUFHLGdCQUFBLE1BQU0sQ0FBQyxFQUFF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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StringId } from "@effect-app/prelude/schema";
|
|
2
|
-
import { Schema } from "@effect-app/prelude";
|
|
3
2
|
import { Effect } from "effect/Effect";
|
|
3
|
+
import type { Schema2 } from "@effect-app/prelude";
|
|
4
4
|
import { Tracer } from "effect";
|
|
5
5
|
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
6
6
|
/**
|
|
@@ -13,7 +13,7 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
13
13
|
}, DrainEvt extends {
|
|
14
14
|
id: StringId;
|
|
15
15
|
_tag: string;
|
|
16
|
-
}, EvtE>(_queueName: string, queueDrainName: string, schema:
|
|
16
|
+
}, EvtE>(_queueName: string, queueDrainName: string, schema: Schema2.Schema<EvtE, Evt>, drainSchema: Schema2.Schema<unknown, DrainEvt>): import("effect/Effect").Effect<RequestContextContainer | import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender, never, {
|
|
17
17
|
makeDrain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<DrainR, DrainE, void>) => import("effect/Effect").Effect<import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, Tracer.ParentSpan>, import("@azure/service-bus").ServiceBusReceiver>, never, void>;
|
|
18
18
|
publish: (messages_0: Evt, ...messages_1: Evt[]) => import("effect/Effect").Effect<never, never, import("effect/Fiber").RuntimeFiber<never, void>>;
|
|
19
19
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":";;AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;;;;;AAOvE,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,EAEJ,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EACjC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;kDAmBtB,QAAQ,KAAK,OAAO,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;;GAiElE;;;;;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+IAE1F"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect
|
|
2
|
-
import * as tsplus_module_2 from "
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/
|
|
5
|
-
import * as tsplus_module_5 from "effect/
|
|
6
|
-
import * as tsplus_module_6 from "@effect-app/
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/infra/
|
|
8
|
-
import * as tsplus_module_8 from "effect/
|
|
1
|
+
import * as tsplus_module_1 from "@effect/schema/Parser";
|
|
2
|
+
import * as tsplus_module_2 from "effect/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Function";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/Tag";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/infra/_global.ext";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/prelude/utils";
|
|
7
|
+
import * as tsplus_module_7 from "@effect-app/infra/api/setupRequest";
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/infra/services/QueueMaker/errors";
|
|
9
|
+
import * as tsplus_module_9 from "effect/Layer";
|
|
9
10
|
import { LiveReceiver, LiveSender, LiveServiceBusClient, Receiver, Sender, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
10
11
|
import { captureException } from "@effect-app/infra/errorReporter";
|
|
11
12
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
@@ -24,23 +25,23 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
24
25
|
meta: QueueMeta
|
|
25
26
|
});
|
|
26
27
|
const drainW = struct({ body: drainSchema, meta: QueueMeta });
|
|
27
|
-
const parseDrain = tsplus_module_1.
|
|
28
|
-
return
|
|
28
|
+
const parseDrain = tsplus_module_3.flow(tsplus_module_1.parse(drainW), (_) => tsplus_module_2.orDie(_));
|
|
29
|
+
return tsplus_module_2.gen(function* ($) {
|
|
29
30
|
const s = yield* $(Sender);
|
|
30
31
|
const receiver = yield* $(Receiver);
|
|
31
|
-
const receiverLayer =
|
|
32
|
+
const receiverLayer = tsplus_module_4.makeLayer(Receiver, receiver);
|
|
32
33
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
33
34
|
const reportError = reportNonInterruptedFailureCause({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
34
35
|
const rcc = yield* $(RequestContextContainer);
|
|
35
36
|
return {
|
|
36
|
-
makeDrain: (handleEvent) =>
|
|
37
|
+
makeDrain: (handleEvent) => tsplus_module_2.gen(function* ($) {
|
|
37
38
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
39
|
function processMessage(messageBody) {
|
|
39
|
-
return
|
|
40
|
-
.pipe(
|
|
41
|
-
id: RequestId
|
|
40
|
+
return tsplus_module_2.tapErrorCause(tsplus_module_2.flatMap(tsplus_module_2.orDie(tsplus_module_2.flatMap(tsplus_module_2.sync(() => JSON.parse(messageBody)), (x) => parseDrain(x))), ({ body, meta }) => tsplus_module_2.withSpan(tsplus_module_7.setupRequestContext(tsplus_module_2.orDie(tsplus_module_2.zipRight(tsplus_module_2.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
41
|
+
.pipe(tsplus_module_2.annotateLogs({ body: tsplus_module_6.RecordPretty(tsplus_module_6.object$(body)), meta: tsplus_module_6.RecordPretty(tsplus_module_6.object$(meta)) })), handleEvent(body))).pipe(silenceAndReportError), RequestContext.inherit(meta.requestContext, {
|
|
42
|
+
id: tsplus_module_5.parseSync(RequestId, body.id),
|
|
42
43
|
locale: "en",
|
|
43
|
-
name:
|
|
44
|
+
name: tsplus_module_5.parseSync(tsplus_module_10.NonEmptyString255, body._tag)
|
|
44
45
|
})), "queue.drain", {
|
|
45
46
|
attributes: { "queue.name": queueDrainName },
|
|
46
47
|
parent: meta.span
|
|
@@ -50,17 +51,17 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
50
51
|
// we reportError here, so that we report the error only, and keep flowing
|
|
51
52
|
, reportError);
|
|
52
53
|
}
|
|
53
|
-
return yield* $(
|
|
54
|
-
processMessage: (x) =>
|
|
55
|
-
processError: (err) =>
|
|
54
|
+
return yield* $(tsplus_module_2.provide(subscribe({
|
|
55
|
+
processMessage: (x) => tsplus_module_2.uninterruptible(processMessage(x.body)),
|
|
56
|
+
processError: (err) => tsplus_module_2.sync(() => captureException(err.error))
|
|
56
57
|
}), receiverLayer));
|
|
57
58
|
}),
|
|
58
|
-
publish: (...messages) =>
|
|
59
|
+
publish: (...messages) => tsplus_module_2.gen(function* ($) {
|
|
59
60
|
const requestContext = yield* $(rcc.requestContext);
|
|
60
|
-
const currentSpan = yield* $(
|
|
61
|
+
const currentSpan = yield* $(tsplus_module_2.orDie(tsplus_module_2.currentSpan));
|
|
61
62
|
const span = Tracer.externalSpan(currentSpan);
|
|
62
|
-
return yield* $(
|
|
63
|
-
body: JSON.stringify(
|
|
63
|
+
return yield* $(tsplus_module_8.forkDaemonReportQueue(tsplus_module_2.promise(() => s.sendMessages(messages.map((m) => ({
|
|
64
|
+
body: JSON.stringify(tsplus_module_1.encodeSync(wireSchema)({ body: m, meta: { requestContext, span } })),
|
|
64
65
|
messageId: m.id, /* correllationid: requestId */
|
|
65
66
|
contentType: "application/json"
|
|
66
67
|
}))))));
|
|
@@ -72,6 +73,6 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
72
73
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
73
74
|
*/
|
|
74
75
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
75
|
-
return
|
|
76
|
+
return tsplus_module_9.provide(LiveServiceBusClient(url))((tsplus_module_9.merge(LiveSender(queueName))(LiveReceiver(queueDrainName))));
|
|
76
77
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zYnF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLHVDQUF1QyxDQUFBO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDL0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNGLE9BQU8sRUFBa0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUtqQyxVQUFrQixFQUNsQixjQUFzQixFQUN0QixNQUFpQyxFQUNqQyxXQUE4QztJQUU5QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUE7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzdELE1BQU0sVUFBVSxHQUFHLGdCQUFBLElBQUksdUJBQUMsTUFBTSxHQUFRLENBQUMs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
|
|
@@ -14,26 +14,40 @@ export interface QueueBase<Evt, DrainEvt> {
|
|
|
14
14
|
export interface QueueMakerOps {
|
|
15
15
|
}
|
|
16
16
|
export declare const QueueMaker: QueueMakerOps;
|
|
17
|
-
export declare const QueueMeta: import("@effect-app/schema").
|
|
18
|
-
requestContext:
|
|
19
|
-
|
|
17
|
+
export declare const QueueMeta: import("@effect-app/schema").Schema<{
|
|
18
|
+
readonly requestContext: {
|
|
19
|
+
readonly _tag: "RequestContext";
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly rootId: string;
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly locale: "en" | "de";
|
|
24
|
+
readonly createdAt: string;
|
|
25
|
+
readonly userProfile?: {
|
|
26
|
+
readonly sub: string;
|
|
27
|
+
} | undefined;
|
|
28
|
+
readonly parent?: {
|
|
29
|
+
readonly _tag: "RequestContext";
|
|
30
|
+
readonly id: string;
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly locale: "en" | "de";
|
|
33
|
+
readonly createdAt: string;
|
|
34
|
+
readonly userProfile?: {
|
|
35
|
+
readonly sub: string;
|
|
36
|
+
} | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
readonly namespace?: string | undefined;
|
|
39
|
+
};
|
|
40
|
+
readonly span?: {
|
|
20
41
|
readonly spanId: string;
|
|
21
42
|
readonly traceId: string;
|
|
22
43
|
readonly sampled?: boolean | undefined;
|
|
23
|
-
}
|
|
44
|
+
} | undefined;
|
|
45
|
+
}, {
|
|
46
|
+
readonly requestContext: RequestContext;
|
|
47
|
+
readonly span?: {
|
|
24
48
|
readonly spanId: string;
|
|
25
49
|
readonly traceId: string;
|
|
26
50
|
readonly sampled?: boolean | undefined;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
readonly traceId: string;
|
|
30
|
-
readonly sampled?: boolean | undefined;
|
|
31
|
-
}, {
|
|
32
|
-
fields: import("@effect-app/schema").ToProps<{
|
|
33
|
-
spanId: import("@effect-app/schema").SchemaDefaultSchema<unknown, string, string, string, {}>;
|
|
34
|
-
traceId: import("@effect-app/schema").SchemaDefaultSchema<unknown, string, string, string, {}>;
|
|
35
|
-
sampled: import("@effect-app/schema").Field<import("@effect-app/schema").Schema<unknown, boolean, boolean, boolean, {}>, "optional", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
36
|
-
}>;
|
|
37
|
-
}>, "optional", import("effect/Option").None<any>, import("effect/Option").None<any>>;
|
|
38
|
-
}>>;
|
|
51
|
+
} | undefined;
|
|
52
|
+
}>;
|
|
39
53
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAE1E,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,QAAQ;IACtC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EACxB,eAAe,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAC5D,MAAM,CAAC,KAAK,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACxF,OAAO,EAAE,CACP,GAAG,QAAQ,EAAE,qBAAqB,CAAC,GAAG,CAAC,KACpC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;CAAG;AACjC,eAAO,MAAM,UAAU,EAAE,aAAkB,CAAA;AAE3C,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAE1E,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,QAAQ;IACtC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EACxB,eAAe,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAC5D,MAAM,CAAC,KAAK,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACxF,OAAO,EAAE,CACP,GAAG,QAAQ,EAAE,qBAAqB,CAAC,GAAG,CAAC,KACpC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;CAAG;AACjC,eAAO,MAAM,UAAU,EAAE,aAAkB,CAAA;AAE3C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQpB,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/prelude/schema";
|
|
2
|
-
import * as tsplus_module_2 from "@effect
|
|
2
|
+
import * as tsplus_module_2 from "@effect/schema/Schema";
|
|
3
3
|
import { RequestContext } from "../../RequestContext.js";
|
|
4
4
|
export const QueueMaker = {};
|
|
5
5
|
export const QueueMeta = tsplus_module_1.struct({
|
|
6
6
|
requestContext: RequestContext,
|
|
7
|
-
span: tsplus_module_2.
|
|
7
|
+
span: tsplus_module_2.optional(tsplus_module_1.struct({
|
|
8
8
|
spanId: tsplus_module_1.string,
|
|
9
9
|
traceId: tsplus_module_1.string,
|
|
10
|
-
sampled: tsplus_module_2.
|
|
10
|
+
sampled: tsplus_module_2.optional(tsplus_module_1.boolean)
|
|
11
11
|
}))
|
|
12
12
|
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBaUJ4RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsZ0JBQUEsTUFBTSxDQUFDO0lBQzlCLGNBQWMsRUFBRSxjQUFjO0lBQzlCLElBQUksRUFBRSx5QkFBQSxnQkFBQSxNQUFNLENBQUM7UUFDWCxNQUFNLGtCQUFFLE1BQU07UUFDZCxPQUFPLGtCQUFFLE1BQU07UUFDZixPQUFPLEVBQUUseUNBQUEsT0FBTyxDQUFXO0tBQzVCLENBQUMsQ0FDVztDQUNkLENBQUMsQ0FBQSJ9
|
|
@@ -4,6 +4,7 @@ import { NonEmptyReadonlyArray, NonEmptyArray } from "effect/ReadonlyArray";
|
|
|
4
4
|
import { PureEnv, PureEnvEnv } from "@effect-app/prelude/Pure";
|
|
5
5
|
import type { FixEnv, PureLogT } from "@effect-app/prelude/Pure";
|
|
6
6
|
import { Pure } from "@effect-app/prelude/Pure";
|
|
7
|
+
import type { S } from "vitest/dist/reporters-O4LBziQ_.js";
|
|
7
8
|
import type { InvalidStateError, OptimisticConcurrencyException } from "../errors.js";
|
|
8
9
|
import { NotFoundError } from "../errors.js";
|
|
9
10
|
import type { Filter, PersistenceModelType } from "../services/Store.js";
|
|
@@ -44,18 +45,18 @@ export declare function log<T extends {
|
|
|
44
45
|
export declare function projectEffect<T extends {
|
|
45
46
|
id: string;
|
|
46
47
|
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string, R, E, S = PM>(self: RepositoryBaseC<T, PM, Evt, ItemType>, map: Effect<R, E, {
|
|
47
|
-
filter?: Filter<PM
|
|
48
|
-
collect?: (t: PM) => Option<S
|
|
49
|
-
limit?: number;
|
|
50
|
-
skip?: number;
|
|
48
|
+
filter?: Filter<PM> | undefined;
|
|
49
|
+
collect?: ((t: PM) => Option<S>) | undefined;
|
|
50
|
+
limit?: number | undefined;
|
|
51
|
+
skip?: number | undefined;
|
|
51
52
|
}>): Effect<R, E, S[]>;
|
|
52
53
|
export declare function projectEffect<T extends {
|
|
53
54
|
id: string;
|
|
54
55
|
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string, R, E, U extends keyof PM>(self: RepositoryBaseC<T, PM, Evt, ItemType>, map: Effect<R, E, {
|
|
55
|
-
filter?: QueryBuilder<PM
|
|
56
|
-
|
|
57
|
-
limit?: number;
|
|
58
|
-
skip?: number;
|
|
56
|
+
filter?: QueryBuilder<PM> | undefined;
|
|
57
|
+
collect?: ((t: PM) => Option<S>) | undefined;
|
|
58
|
+
limit?: number | undefined;
|
|
59
|
+
skip?: number | undefined;
|
|
59
60
|
}>): Effect<R, E, Pick<PM, U>[]>;
|
|
60
61
|
/**
|
|
61
62
|
* TODO: project inside the db.
|
|
@@ -85,7 +86,7 @@ export declare function project<T extends {
|
|
|
85
86
|
*/
|
|
86
87
|
export declare function count<T extends {
|
|
87
88
|
id: string;
|
|
88
|
-
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, filter?: Filter<PM>): import("effect/Effect").Effect<never, never,
|
|
89
|
+
}, PM extends PersistenceModelType<string>, Evt, ItemType extends string>(self: RepositoryBaseC<T, PM, Evt, ItemType>, filter?: Filter<PM>): import("effect/Effect").Effect<never, never, number>;
|
|
89
90
|
/**
|
|
90
91
|
* @tsplus fluent Repository queryEffect
|
|
91
92
|
* @tsplus location "@effect-app/infra/services/Repository"
|