@effect-app/infra 0.73.0 → 0.74.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 +20 -0
- package/_cjs/RequestContext.cjs +2 -4
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/api/authorization.jwt.cjs +1 -2
- package/_cjs/api/authorization.jwt.cjs.map +1 -1
- package/_cjs/api/codec.cjs +4 -3
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +6 -8
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
- package/_cjs/api/express/schema/jwt.cjs +8 -10
- package/_cjs/api/express/schema/jwt.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +7 -6
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +20 -5
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +7 -8
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing.cjs +26 -25
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +3 -4
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +3 -4
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +10 -11
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +1 -1
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/filter.cjs +14 -28
- package/_cjs/filter.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -2
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +17 -12
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +7 -6
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +13 -5
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +10 -9
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +3 -3
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +4 -6
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +5 -7
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +5 -3
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +5 -6
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +9 -10
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/service.cjs +1 -2
- package/_cjs/services/QueueMaker/service.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +18 -30
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +7 -5
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +1 -2
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +68 -58
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +2 -1
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +15 -19
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +2 -1
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +4 -3
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +1 -2
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +25 -23
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +16 -7
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +1 -1
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +26 -22
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +35 -28
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +25 -17
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_cjs/test.arbs.cjs +5 -4
- package/_cjs/test.arbs.cjs.map +1 -1
- package/_src/api/defaultErrorHandler.ts +33 -37
- package/_src/api/express/makeJsonSchema.test.ts +2 -2
- package/_src/api/express/routing.ts.bak +1 -1
- package/_src/api/express/schema/routing.ts +20 -20
- package/_src/api/reportError.ts +15 -19
- package/_src/api/routing.ts +96 -95
- package/_src/api/setupRequest.ts +4 -6
- package/_src/api/writeDocs.ts +1 -1
- package/_src/errorReporter.ts +25 -29
- package/_src/errors.ts +1 -1
- package/_src/instrument.ts +4 -5
- package/_src/logger/jsonLogger.ts +5 -6
- package/_src/logger/logFmtLogger.ts +5 -4
- package/_src/rateLimit.ts +10 -9
- package/_src/services/Emailer/Sendgrid.ts +3 -3
- package/_src/services/Emailer/fake.ts +1 -1
- package/_src/services/Operations/live.ts +1 -1
- package/_src/services/Operations/service.ts +32 -38
- package/_src/services/QueueMaker/errors.ts +1 -2
- package/_src/services/QueueMaker/memQueue.ts +1 -1
- package/_src/services/QueueMaker/sbqueue.ts +3 -3
- package/_src/services/Repository.ts +10 -13
- package/_src/services/RepositoryBase.ts +10 -8
- package/_src/services/Store/Cosmos.ts +66 -62
- package/_src/services/Store/Memory.ts +1 -1
- package/_src/services/simpledb/cosmosdb.ts +45 -43
- package/_src/services/simpledb/diskdb.ts +9 -10
- package/_src/services/simpledb/mongodb.ts +33 -31
- package/_src/services/simpledb/redisdb.ts +42 -40
- package/_src/services/simpledb/simpledb.ts +6 -7
- package/dist/RequestContext.d.ts +4 -4
- package/dist/RequestContext.js +5 -3
- package/dist/api/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.js +7 -9
- package/dist/api/express/schema/routing.js +21 -6
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +9 -10
- package/dist/api/routing.d.ts +1 -1
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +35 -33
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +4 -5
- package/dist/api/writeDocs.js +4 -5
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +11 -12
- package/dist/errors.js +2 -2
- package/dist/instrument.d.ts.map +1 -1
- package/dist/instrument.js +2 -3
- package/dist/logger/jsonLogger.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +9 -11
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +5 -4
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +6 -6
- package/dist/services/Emailer/Sendgrid.d.ts +1 -1
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +11 -10
- package/dist/services/Emailer/fake.js +4 -3
- package/dist/services/Emailer/service.d.ts +1 -1
- package/dist/services/Operations/live.js +5 -6
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +8 -9
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +2 -2
- package/dist/services/QueueMaker/memQueue.js +6 -7
- package/dist/services/QueueMaker/sbqueue.js +10 -11
- package/dist/services/Repository.d.ts +19 -18
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +8 -9
- package/dist/services/RepositoryBase.d.ts +7 -7
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +5 -4
- package/dist/services/Store/Cosmos.d.ts +1 -1
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +64 -55
- package/dist/services/Store/Disk.d.ts +1 -1
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +3 -2
- package/dist/services/Store/Memory.js +13 -14
- package/dist/services/Store/Redis.d.ts +1 -1
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +3 -2
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +5 -4
- package/dist/services/Store/service.d.ts +1 -1
- package/dist/services/simpledb/cosmosdb.d.ts.map +1 -1
- package/dist/services/simpledb/cosmosdb.js +29 -27
- package/dist/services/simpledb/diskdb.d.ts.map +1 -1
- package/dist/services/simpledb/diskdb.js +10 -4
- package/dist/services/simpledb/memdb.d.ts +2 -2
- package/dist/services/simpledb/memdb.js +1 -1
- package/dist/services/simpledb/mongodb.d.ts.map +1 -1
- package/dist/services/simpledb/mongodb.js +18 -15
- package/dist/services/simpledb/redisdb.d.ts.map +1 -1
- package/dist/services/simpledb/redisdb.js +30 -23
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +16 -12
- package/package.json +22 -22
- package/tsconfig.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/io/
|
|
1
|
+
import * as tsplus_module_1 from "@effect/io/ConfigSecret";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
|
-
import * as tsplus_module_3 from "@effect/
|
|
4
|
-
import * as tsplus_module_4 from "@effect
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/core/
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Layer";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/data/Equivalence";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/_ext/ord.ext";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/core/Array";
|
|
6
7
|
import sgMail from "@sendgrid/mail";
|
|
7
8
|
import { inspect } from "util";
|
|
8
9
|
import { Emailer } from "./service.js";
|
|
@@ -19,7 +20,7 @@ const makeLiveSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subje
|
|
|
19
20
|
const render = renderMessage(!realMail);
|
|
20
21
|
const renderedMsg_ = render(msg);
|
|
21
22
|
const renderedMsg = { ...renderedMsg_, subject: `${subjectPrefix}${renderedMsg_.subject}` };
|
|
22
|
-
yield* $(tsplus_module_2.
|
|
23
|
+
yield* $(tsplus_module_2.annotateLogs(tsplus_module_2.logDebug("Sending email"), "msg", inspect(renderedMsg, false, 5)));
|
|
23
24
|
const ret = yield* $(tsplus_module_2.async((cb) => void sgMail.send(renderedMsg, false, (err, result) => err
|
|
24
25
|
? cb(tsplus_module_2.fail(err))
|
|
25
26
|
: cb(tsplus_module_2.sync(() => result)))));
|
|
@@ -29,7 +30,7 @@ const makeLiveSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subje
|
|
|
29
30
|
// templateId: msg.templateId
|
|
30
31
|
// }
|
|
31
32
|
// }
|
|
32
|
-
// yield* $(Effect.logDebug("Tracking email event").
|
|
33
|
+
// yield* $(Effect.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty))
|
|
33
34
|
// const { trackEvent } = yield* $(AiContextService)
|
|
34
35
|
// trackEvent(event)
|
|
35
36
|
return ret;
|
|
@@ -41,7 +42,7 @@ const makeLiveSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subje
|
|
|
41
42
|
* @tsplus static Emailer.Ops LiveSendgrid
|
|
42
43
|
*/
|
|
43
44
|
export function LiveSendgrid(config) {
|
|
44
|
-
return
|
|
45
|
+
return tsplus_module_3.effect(Emailer)(tsplus_module_2.flatMap(tsplus_module_2.config(config), makeLiveSendgrid));
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* @hidden
|
|
@@ -78,12 +79,12 @@ function renderFake(addr, makeId) {
|
|
|
78
79
|
email: `test+${makeId()}@nomizz.com`
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
|
-
const eq =
|
|
82
|
+
const eq = tsplus_module_4.mapInput((to) => typeof to === "string" ? to.toLowerCase() : to.email.toLowerCase())(tsplus_module_4.string);
|
|
82
83
|
// TODO: should just not add any already added email address
|
|
83
84
|
// https://stackoverflow.com/a/53603076/11595834
|
|
84
85
|
function renderFakeIfTest(addr, makeId) {
|
|
85
86
|
return Array.isArray(addr)
|
|
86
|
-
?
|
|
87
|
+
? tsplus_module_6.iterableToArray(tsplus_module_5.uniqArray(eq)(addr
|
|
87
88
|
.map((x) => (isTestAddress(x) ? renderFake(x, makeId) : x)))) : isTestAddress(addr)
|
|
88
89
|
? renderFake(addr, makeId)
|
|
89
90
|
: addr;
|
|
@@ -97,4 +98,4 @@ function renderMailData(md) {
|
|
|
97
98
|
}
|
|
98
99
|
return md.email;
|
|
99
100
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL0VtYWlsZXIvU2VuZGdyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxNQUFNLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR3RDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWtCLEVBQUUsRUFBRSxDQUM1RyxxQkFBWSxHQUFHLEVBQUU7SUFDZixNQUFNLENBQUMsU0FBUyx1QkFBQyxNQUFNLEVBQU8sQ0FBQTtJQUU5QixPQUFPO1FBQ0wsUUFBUSxDQUFDLElBQTBCO1lBQ2pDLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDM0IsTUFBTSxHQUFHLEdBQWE7b0JBQ3BCLEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO29CQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2lCQUNsRSxDQUFBO2dCQUNELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUV2QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hDLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsYUFBYSxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFBO2dCQUMzRixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJB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
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "@effect/io/Layer";
|
|
2
3
|
import { pretty } from "@effect-app/prelude/utils";
|
|
3
4
|
import { Emailer } from "./service.js";
|
|
4
5
|
const makeFake = tsplus_module_1.map(tsplus_module_1.logDebug("FAKE Emailer Service enabled"), () => ({
|
|
5
6
|
sendMail(msg) {
|
|
6
|
-
return tsplus_module_1.
|
|
7
|
+
return tsplus_module_1.annotateLogs(tsplus_module_1.logDebug(`Fake send mail`), "msg", pretty(msg));
|
|
7
8
|
}
|
|
8
9
|
}));
|
|
9
10
|
/**
|
|
10
11
|
* @tsplus static Emailer.Ops Fake
|
|
11
12
|
*/
|
|
12
|
-
export const FakeSendgrid =
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
export const FakeSendgrid = tsplus_module_2.effect(Emailer)(makeFake);
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvRW1haWxlci9mYWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFdEMsTUFBTSxRQUFRLEdBQUcsb0JBQUEseUJBQ0wsOEJBQThCLENBQUMsRUFDcEMsR0FBWSxFQUFFLENBQUMsQ0FBQztJQUNuQixRQUFRLENBQUMsR0FBRztRQUNWLE9BQU8sNkJBQUEseUJBQWdCLGdCQUFnQixDQUFDLEVBQWMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzNFLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQTtBQUVMOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHVCQUFpQixPQUFPLEVBQXhCLFFBQVEsQ0FBaUIsQ0FBQSJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TagClass } from "@effect-app/prelude/service";
|
|
2
2
|
import { Effect } from "@effect/io/Effect";
|
|
3
3
|
import { Email, ReasonableString } from "@effect-app/prelude/schema";
|
|
4
|
-
import { ConfigSecret } from "@effect/io/
|
|
4
|
+
import { ConfigSecret } from "@effect/io/ConfigSecret";
|
|
5
5
|
import { NonEmptyReadonlyArray } from "@effect/data/ReadonlyArray";
|
|
6
6
|
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js";
|
|
7
7
|
import type { ResponseError } from "@sendgrid/mail";
|
|
@@ -10,8 +10,7 @@ import * as tsplus_module_9 from "@effect-app/core/Option";
|
|
|
10
10
|
import * as tsplus_module_10 from "@effect-app/prelude/_ext/misc";
|
|
11
11
|
import * as tsplus_module_11 from "@effect/data/Duration";
|
|
12
12
|
import * as tsplus_module_12 from "@effect/io/Schedule";
|
|
13
|
-
import * as tsplus_module_13 from "@effect
|
|
14
|
-
import * as tsplus_module_14 from "@effect/io/Layer";
|
|
13
|
+
import * as tsplus_module_13 from "@effect/io/Layer";
|
|
15
14
|
import { RequestException } from "@effect-app/infra/api/reportError";
|
|
16
15
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
17
16
|
import { Failure, Operation, OperationId, Success } from "@effect-app/prelude/Operations";
|
|
@@ -71,7 +70,7 @@ const make = tsplus_module_1.sync(() => {
|
|
|
71
70
|
}
|
|
72
71
|
return {
|
|
73
72
|
cleanup,
|
|
74
|
-
register: tsplus_module_1.tap(makeOp, (id) => tsplus_module_1.zipRight(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit)))(tsplus_module_10.
|
|
73
|
+
register: tsplus_module_1.tap(makeOp, (id) => tsplus_module_1.zipRight(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit)))(tsplus_module_10.annotateLogscoped("operationId", id))),
|
|
75
74
|
find: findOp,
|
|
76
75
|
update
|
|
77
76
|
};
|
|
@@ -79,7 +78,7 @@ const make = tsplus_module_1.sync(() => {
|
|
|
79
78
|
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.schedule(tsplus_module_1.flatMap(tsplus_module_1.exit(Operations
|
|
80
79
|
.flatMap((_) => _.cleanup)), (_) => {
|
|
81
80
|
if (tsplus_module_6.isSuccess(_)) {
|
|
82
|
-
return
|
|
81
|
+
return tsplus_module_1.unit;
|
|
83
82
|
}
|
|
84
83
|
else {
|
|
85
84
|
return reportAppError(_.cause);
|
|
@@ -88,5 +87,5 @@ const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.schedule(tsplus_m
|
|
|
88
87
|
/**
|
|
89
88
|
* @tsplus static Operations.Ops Live
|
|
90
89
|
*/
|
|
91
|
-
export const Live =
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
export const Live = tsplus_module_13.provideMerge(tsplus_module_13.scopedDiscard(cleanupLoop))(tsplus_module_13.effect(Operations)(make));
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9saXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFFN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFMUUsTUFBTSxJQUFJLEdBQUcscUJBQVksR0FBZSxFQUFFO0lBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFBO0lBQzdDLE1BQU0sTUFBTSxHQUFHLDJCQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXpDLE1BQU0sT0FBTyxHQUFHLHFCQUFZLEdBQUcsRUFBRTtRQUMvQixNQUFNLE1BQU0sR0FBRyw2QkFBQSxJQUFJLElBQUksRUFBRSxFQUFVLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLHNEQUFBLEdBQUc7YUFDQSxPQUFPLEVBQUUsR0FFRCxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxXQUFXLEdBQUcsMEJBQUEsNkJBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBVyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDbkYsSUFBSSxXQUFXLEdBQUcsTUFBTSxFQUFFO2dCQUN4QixHQUFHLENBQUMsTUFBTSxDQUFD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
|
|
@@ -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,kBAAkB,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;;;;;;AAED;;;GAGG;AACH,8BAAsB,UAAW,SAAQ,eAAoC;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7F,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAC7C;;;;;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,kBAAkB,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;;;;;;AAED;;;GAGG;AACH,8BAAsB,UAAW,SAAQ,eAAoC;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7F,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAC7C;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oIAY3D;;;;;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,sIACjB;;;;;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,oIAYnF;;;;;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,+JAc7C"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/prelude/service";
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/infra/api/reportError";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "@effect/data/Debug";
|
|
5
4
|
export const forkOperation = forkOperation_1;
|
|
6
5
|
import * as Scope from "@effect/io/Scope";
|
|
7
6
|
/**
|
|
@@ -14,30 +13,30 @@ export class Operations extends tsplus_module_1.TagClass() {
|
|
|
14
13
|
* @tsplus getter effect/io/Effect forkOperation
|
|
15
14
|
*/
|
|
16
15
|
function forkOperation_1(self) {
|
|
17
|
-
return
|
|
16
|
+
return Operations.flatMap((Operations) => tsplus_module_3.flatMap(Scope
|
|
18
17
|
.make(), (scope) => tsplus_module_3.tap(Scope.extend(Operations
|
|
19
|
-
.register, scope), () => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self, scope)))))
|
|
18
|
+
.register, scope), () => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self, scope)))));
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* @tsplus getter function forkOperation
|
|
23
22
|
*/
|
|
24
23
|
export function forkOperationFunction(fnc) {
|
|
25
|
-
return (inp) =>
|
|
24
|
+
return (inp) => forkOperation_1(fnc(inp));
|
|
26
25
|
}
|
|
27
26
|
/**
|
|
28
27
|
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
29
28
|
*/
|
|
30
29
|
export function forkOperation2(self) {
|
|
31
|
-
return
|
|
30
|
+
return Operations.flatMap((Operations) => tsplus_module_3.flatMap(Scope
|
|
32
31
|
.make(), (scope) => tsplus_module_3.tap(Scope.extend(Operations
|
|
33
|
-
.register, scope), (id) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(
|
|
32
|
+
.register, scope), (id) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self(id), scope)))));
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
36
35
|
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
37
36
|
*/
|
|
38
37
|
export function forkOperationWithEffect(self, fnc) {
|
|
39
|
-
return
|
|
38
|
+
return Operations.flatMap((Operations) => tsplus_module_3.flatMap(Scope
|
|
40
39
|
.make(), (scope) => tsplus_module_3.tap(tsplus_module_3.tap(Scope.extend(Operations
|
|
41
|
-
.register, scope), (opId) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(
|
|
40
|
+
.register, scope), (opId) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self(opId), scope))), (opId) => Scope.extend(tsplus_module_3.forkScoped(tsplus_module_3.interruptible(fnc(opId))), scope))));
|
|
42
41
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OzthQXFCZ0IsYUFBYTtBQXBCN0IsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQU16Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFVBQVcsU0FBUSxnQkFBQSxRQUFRLEVBQTRCO0NBSzVFO0FBRUQ7O0dBRUc7QUFDSCx5QkFBdUMsSUFBcUI7SUFDMUQsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2Isd0JBQUEsS0FBSztTQUNGLElBQUksRUFBRSxFQUNFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsb0JBQUEsQUExQkUsS0FBSyxRQTBCUCxVQUFVO1NBQ1AsUUFBUSxFQUNELEtBQUssQ0FBQyxFQUNULEdBQUcsRUFBRSxtREFBQyxBQTdCWCxLQUFLLEtBNkJNLElBQUksRUFBSyxLQUFLLENBQUMsQ0FBa0MsQ0FBQyxDQUNoRSxDQUNOLENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQWUsR0FBa0M7SUFDcEYsT0FBTyxDQUFDLEdBQVEsRUFBRSxFQUFFLGlCQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBYyxDQUFBO0FBQzdDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQVUsSUFBNEM7SUFDbEYsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2Isd0JBQUEsS0FBSztTQUNGLElBQUksRUFBRSxFQUNFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsb0JBQUEsQUFsREUsS0FBSyxRQWtEUCxVQUFVO1NBQ1AsUUFBUSxFQUNELEtBQUssQ0FBQyxFQUNULENBQUMsRUFBRSxFQUFFLEVBQUUsbURBQUMsQUFyRGIsS0FBSyxLQXFEUSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUssS0FBSyxDQUFDLENBQWtDLENBQUMsQ0FDdEUsQ0FDTixDQUFBO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUEwQyxFQUMxQyxHQUE0QztJQUU1QyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQ3ZCLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDYix3QkFBQSxLQUFLO1NBQ0YsSUFBSSxFQUFFLEVBQ0UsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqQixvQkFBQSxvQkFBQSxBQXRFRSxLQUFLLFFBc0VQLFVBQVU7U0FDUCxRQUFRLEVBQ0QsS0FBSyxDQUFDLEVBQ1QsQ0FBQyxJQUFJLEVBQUUsRUFBRSxtREFBQyxBQXpFZixLQUFLLEtBeUVVLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBSyxLQUFLLENBQUMsQ0FBa0MsQ0FBQyxFQUNsRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQUExRWYsS0FBSyxpRUEwRVUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFpQyxLQUFLLENBQUMsQ0FBQyxDQUNuRSxDQUNOLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/errors.ts"],"names":[],"mappings":";;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAED,qBAAa,mBAAmB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC/C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAID,eAAO,MAAM,gBAAgB,2DAAiC,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,2DAC/D,CAAA;;;;;;;;;;AAWlC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,+FAEnE;AAED,eAAO,MAAM,qBAAqB,4JAEjC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/errors.ts"],"names":[],"mappings":";;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAED,qBAAa,mBAAmB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC/C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAID,eAAO,MAAM,gBAAgB,2DAAiC,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,2DAC/D,CAAA;;;;;;;;;;AAWlC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,+FAEnE;AAED,eAAO,MAAM,qBAAqB,4JAEjC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qJAU5E;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sDACnD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAMxD"}
|
|
@@ -30,7 +30,7 @@ export function forkDaemonReportQueue(self) {
|
|
|
30
30
|
export const reportFatalQueueError = reportError((cause) => new FatalQueueException(cause));
|
|
31
31
|
export function reportNonInterruptedFailure(context) {
|
|
32
32
|
const report = reportNonInterruptedFailureCause(context);
|
|
33
|
-
return (inp) => tsplus_module_1.flatMap(tsplus_module_1.exit(inp), (result) => tsplus_module_2.match(result, (cause) => tsplus_module_1.map(report(cause), () => result), () => tsplus_module_1.sync(() => result)));
|
|
33
|
+
return (inp) => tsplus_module_1.flatMap(tsplus_module_1.exit(inp), (result) => tsplus_module_2.match(result, { onFailure: (cause) => tsplus_module_1.map(report(cause), () => result), onSuccess: () => tsplus_module_1.sync(() => result) }));
|
|
34
34
|
}
|
|
35
35
|
export function reportNonInterruptedFailureCause(context) {
|
|
36
36
|
return (cause) => {
|
|
@@ -40,4 +40,4 @@ export function reportNonInterruptedFailureCause(context) {
|
|
|
40
40
|
return reportQueueError(cause, context);
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRXpELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxjQUFpQjtJQUN4RCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQXVCLFNBQVEsY0FBaUI7SUFDM0QsWUFBWSxLQUFlO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUU3RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFJLEtBQWUsRUFBRSxNQUE0QyxFQUFFLEVBQUUsQ0FDbkcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBRWxDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFVLElBQXFCO0lBQ2xFLDJEQUFPLDhCQUFBLElBQUksRUFBZSxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFvQjtBQUNyRixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUM5QyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDMUMsQ0FBQTtBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxPQUFpQztJQUMzRSxNQUFNLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN4RCxPQUFPLENBQVUsR0FBb0IsRUFBZ0MsRUFBRSxDQUNyRSw2Q0FBQSxHQUFHLEdBRVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNsQixzQkFBQSxNQUFNLEVBQ0osRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG9CQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQU8sTUFBTSxDQUFDLEVBQUUsQ0FDM0YsQ0FDRixDQUFBO0FBQ1AsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxPQUFpQztJQUNoRixPQUFPLENBQUksS0FBZSxFQUE4QixFQUFFO1FBQ3hELElBQUksOEJBQUEsS0FBSyxDQUFnQixFQUFFO1lBQ3pCLGlDQUFRLEtBQXNCLEVBQVU7U0FDekM7UUFDRCxPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN6QyxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -2,9 +2,8 @@ import * as tsplus_module_1 from "@effect/io/Effect";
|
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/core/_ext/Iterable";
|
|
3
3
|
import * as tsplus_module_3 from "@effect-app/infra/services/QueueMaker/errors";
|
|
4
4
|
import * as tsplus_module_4 from "@effect-app/prelude/utils";
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/prelude/
|
|
6
|
-
import * as tsplus_module_6 from "@effect
|
|
7
|
-
import * as tsplus_module_7 from "@effect/io/Fiber";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/prelude/schema";
|
|
6
|
+
import * as tsplus_module_6 from "@effect/io/Fiber";
|
|
8
7
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
9
8
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
10
9
|
import { RequestId } from "@effect-app/prelude/ids";
|
|
@@ -36,10 +35,10 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
36
35
|
tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.flatMap(tsplus_module_1.sync(() => JSON.parse(msg)), parseDrain)), ({ body, meta }) => provideContext(RequestContext.inherit(meta, {
|
|
37
36
|
id: RequestId(body.id),
|
|
38
37
|
locale: "en",
|
|
39
|
-
name:
|
|
40
|
-
}))(silenceAndReportError(tsplus_module_1.zipRight(tsplus_module_1.tap(
|
|
38
|
+
name: tsplus_module_5.ReasonableString(body._tag)
|
|
39
|
+
}))(silenceAndReportError(tsplus_module_1.zipRight(tsplus_module_1.tap(tsplus_module_1.annotateLogs({ body: tsplus_module_4.RecordPretty(tsplus_module_4.object$(body)), meta: tsplus_module_4.RecordPretty(tsplus_module_4.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)), () => restoreFromRequestContext), handleEvent(body)))));
|
|
41
40
|
return yield* $(tsplus_module_1.forkScoped(tsplus_module_1.forever(silenceAndReportError(tsplus_module_1.flatMap(qDrain
|
|
42
|
-
.take(), (x) => tsplus_module_1.flatMap(tsplus_module_1.fork(tsplus_module_1.uninterruptible(processMessage(x))), (_) =>
|
|
41
|
+
.take(), (x) => tsplus_module_1.flatMap(tsplus_module_1.fork(tsplus_module_1.uninterruptible(processMessage(x))), (_) => tsplus_module_6.join(_)))
|
|
43
42
|
// TODO: normally a failed item would be returned to the queue and retried up to X times.
|
|
44
43
|
// .flatMap(_ => _._tag === "Failure" && !isInterrupted ? qDrain.offer(x) : Effect.unit) // TODO: retry count tracking and max retries.
|
|
45
44
|
))));
|
|
@@ -47,4 +46,4 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
47
46
|
};
|
|
48
47
|
});
|
|
49
48
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBR3pEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FRMUIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsT0FBeUQsRUFDekQsZUFBd0YsRUFDeEYsY0FFaUUsRUFDakUsVUFHbUY7SUFFbkYsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM5QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxFQUFFLENBQ3ZCLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDNUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLHVDQUNiLDRCQUFBLFFBQVEsRUFDUyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNuQix1SEFBdUg7Z0JBQ3ZILHdCQUFBLDJCQUNFLElBQUksQ0FBQyxTQUFTLENBQ1osT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FDM0MsQ0FDRjtnQkFDQyx1RUFBdUU7a0JBQzlELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BCLENBQ1YsRUFFSixDQUFBO1lBQ0gsQ0FBQyxDQUFDO1lBQ0osS0FBSyxFQUFFLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDN0MsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFBO2dCQUN2RyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO2dCQUNyQyxzSEFBc0g7Z0JBQ3RILDhDQUFBLHdCQUFBLDJCQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDWixVQUFVLENBQUMsR0FFWCxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FRdEIsY0FBYyxDQUNaLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO29CQUMzQixFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sRUFBRSxJQUFhO29CQUNyQixJQUFJLEVBQUUsZ0JBQUEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDbEMsQ0FBQyxDQUNILENBUkkscUJBQXFCLENBTDlCLHlCQUFBLG9CQUVTLDZCQUFvQixFQUFFLElBQUksdURBQUUsSUFBSSxFQUFVLEVBQUUsSUFBSSx1REFBRSxJQUFJLEVBQVUsRUFBRSxDQUFDLENBRjVFLHlCQUNZLE9BQU8sY0FBYywrQkFBK0IsQ0FBQyxHQUUxRCxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUMzQixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFVM0IsQ0FDSixDQUFBO2dCQUNMLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxvREFNSixxQkFBcUIsQ0FMOUIsd0JBQUEsTUFBTTtxQkFDSCxJQUFJLEVBQUUsRUFDRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsNkVBQUEsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUE4QixDQUFDLENBQUMsRUFBRSxFQUFFLHNCQUFDLENBQUMsQ0FBSyxDQUFDLENBQUM7Z0JBQzlFLHlGQUF5RjtnQkFDekYsdUlBQXVJO29CQUkxSSxDQUFBO1lBQ0gsQ0FBQyxDQUFDO1NBQzhCLENBQUE7SUFDcEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/core/Tag";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
3
|
import * as tsplus_module_3 from "@effect-app/prelude/utils";
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/prelude/
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/
|
|
6
|
-
import * as tsplus_module_6 from "@effect
|
|
7
|
-
import * as tsplus_module_7 from "@effect/io/Layer";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/prelude/schema";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/infra/services/QueueMaker/errors";
|
|
6
|
+
import * as tsplus_module_6 from "@effect/io/Layer";
|
|
8
7
|
import { LiveReceiver, LiveSender, LiveServiceBusClient, Receiver, Sender, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
9
8
|
import { captureException } from "@effect-app/infra/errorReporter";
|
|
10
9
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
@@ -30,19 +29,19 @@ export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHan
|
|
|
30
29
|
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 }) => provideContext(RequestContext.inherit(meta, {
|
|
31
30
|
id: RequestId(body.id),
|
|
32
31
|
locale: "en",
|
|
33
|
-
name:
|
|
34
|
-
}))(silenceAndReportError(tsplus_module_2.orDie(tsplus_module_2.zipRight(tsplus_module_2.tap(
|
|
32
|
+
name: tsplus_module_4.ReasonableString(body._tag)
|
|
33
|
+
}))(silenceAndReportError(tsplus_module_2.orDie(tsplus_module_2.zipRight(tsplus_module_2.tap(tsplus_module_2.annotateLogs({ body: tsplus_module_3.RecordPretty(tsplus_module_3.object$(body)), meta: tsplus_module_3.RecordPretty(tsplus_module_3.object$(meta)) })(tsplus_module_2.logDebug(`$$ [${queueDrainName}] Processing incoming message`)), () => restoreFromRequestContext), handleEvent(body))))))
|
|
35
34
|
// we reportError here, so that we report the error only, and keep flowing
|
|
36
35
|
, reportError);
|
|
37
36
|
}
|
|
38
|
-
return yield* $(tsplus_module_2.
|
|
39
|
-
processMessage: (x) => tsplus_module_2.
|
|
37
|
+
return yield* $(tsplus_module_2.provide(subscribe({
|
|
38
|
+
processMessage: (x) => tsplus_module_2.uninterruptible(processMessage(x.body)),
|
|
40
39
|
processError: (err) => tsplus_module_2.sync(() => captureException(err.error))
|
|
41
40
|
}), receiverLayer));
|
|
42
41
|
}),
|
|
43
42
|
publish: (...messages) => tsplus_module_2.gen(function* ($) {
|
|
44
43
|
const requestContext = yield* $(RequestContextContainer.get);
|
|
45
|
-
return yield* $(
|
|
44
|
+
return yield* $(tsplus_module_5.forkDaemonReportQueue(tsplus_module_2.promise(() => s.sendMessages(messages.map((x) => ({
|
|
46
45
|
body: JSON.stringify(encoder({ body: x, meta: requestContext })),
|
|
47
46
|
messageId: x.id,
|
|
48
47
|
contentType: "application/json"
|
|
@@ -55,6 +54,6 @@ export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHan
|
|
|
55
54
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
56
55
|
*/
|
|
57
56
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
58
|
-
return
|
|
57
|
+
return tsplus_module_6.provide((tsplus_module_6.merge(LiveSender(queueName))(LiveReceiver(queueDrainName))))(LiveServiceBusClient(url));
|
|
59
58
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zYnF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLHVDQUF1QyxDQUFBO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzNGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQVFqQyxVQUFrQixFQUNsQixjQUFzQixFQUN0QixPQUF5RCxFQUN6RCxlQUF3RixFQUN4RixjQUVpRSxFQUNqRSxVQUdtRjtJQUVuRixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNuQyxNQUFNLGFBQWEsR0FBRywwQkFBQSxRQUFRLEVBQVcsUUFBUSxDQUFDLENBQUE7UUFDbEQsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSx3QkFBd0IsR0FBRyxjQUFjLEVBQUUsQ0FB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
|
|
@@ -11,6 +11,7 @@ import { NotFoundError } from "../errors.js";
|
|
|
11
11
|
import { ContextMap } from "../services/Store.js";
|
|
12
12
|
import type { Filter } from "../services/Store.js";
|
|
13
13
|
import type { RequestContextContainer } from "./RequestContextContainer.js";
|
|
14
|
+
export type RequestCTX = ContextMap | RequestContextContainer;
|
|
14
15
|
/**
|
|
15
16
|
* @tsplus type Repository
|
|
16
17
|
*/
|
|
@@ -20,10 +21,10 @@ export interface Repository<T extends {
|
|
|
20
21
|
id: string;
|
|
21
22
|
}, Evt, ItemType extends string> {
|
|
22
23
|
itemType: ItemType;
|
|
23
|
-
find: (id: T["id"]) => Effect<
|
|
24
|
+
find: (id: T["id"]) => Effect<RequestCTX, never, Option<T>>;
|
|
24
25
|
all: Effect<ContextMap, never, T[]>;
|
|
25
|
-
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<
|
|
26
|
-
removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<
|
|
26
|
+
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<RequestCTX, InvalidStateError | OptimisticConcurrencyException, void>;
|
|
27
|
+
removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<RequestCTX, never, void>;
|
|
27
28
|
utils: {
|
|
28
29
|
mapReverse: (pm: PM, setEtag: (id: string, eTag: string | undefined) => void) => unknown;
|
|
29
30
|
parse: (a: unknown, env?: ParserEnv | undefined) => T;
|
|
@@ -48,7 +49,7 @@ export declare function get<T extends {
|
|
|
48
49
|
id: string;
|
|
49
50
|
}, PM extends {
|
|
50
51
|
id: string;
|
|
51
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, id: T["id"]): import("@effect/io/Effect").Effect<
|
|
52
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, id: T["id"]): import("@effect/io/Effect").Effect<RequestCTX, NotFoundError<ItemType>, T>;
|
|
52
53
|
/**
|
|
53
54
|
* @tsplus fluent Repository filter
|
|
54
55
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -180,7 +181,7 @@ export declare function queryAndSavePureEffect<T extends {
|
|
|
180
181
|
collect?: (t: T) => Option<S>;
|
|
181
182
|
limit?: number;
|
|
182
183
|
skip?: number;
|
|
183
|
-
}>): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<
|
|
184
|
+
}>): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<RequestCTX | R | Exclude<R2, {
|
|
184
185
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
185
186
|
}>, InvalidStateError | OptimisticConcurrencyException | E | E2, A>;
|
|
186
187
|
/**
|
|
@@ -196,7 +197,7 @@ export declare function queryAndSavePure<T extends {
|
|
|
196
197
|
collect?: (t: T) => Option<S>;
|
|
197
198
|
limit?: number;
|
|
198
199
|
skip?: number;
|
|
199
|
-
}): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<
|
|
200
|
+
}): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<RequestCTX | Exclude<R2, {
|
|
200
201
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
201
202
|
}>, InvalidStateError | OptimisticConcurrencyException | E2, A>;
|
|
202
203
|
/**
|
|
@@ -207,7 +208,7 @@ export declare function saveManyWithPure<T extends {
|
|
|
207
208
|
id: string;
|
|
208
209
|
}, PM extends {
|
|
209
210
|
id: string;
|
|
210
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): <R, A, E, S1 extends T, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) => (items: Iterable<S1>) => import("@effect/io/Effect").Effect<
|
|
211
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): <R, A, E, S1 extends T, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) => (items: Iterable<S1>) => import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
211
212
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
212
213
|
}>, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
213
214
|
/**
|
|
@@ -218,7 +219,7 @@ export declare function byIdAndSaveWithPure<T extends {
|
|
|
218
219
|
id: string;
|
|
219
220
|
}, PM extends {
|
|
220
221
|
id: string;
|
|
221
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, id: T["id"]): <R, A, E, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, T, S2>, E, A>) => import("@effect/io/Effect").Effect<
|
|
222
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, id: T["id"]): <R, A, E, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, T, S2>, E, A>) => import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
222
223
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, T, S2>;
|
|
223
224
|
}>, InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>, A>;
|
|
224
225
|
/**
|
|
@@ -232,7 +233,7 @@ export declare function handleByIdAndSaveWithPure<T extends {
|
|
|
232
233
|
id: string;
|
|
233
234
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): <Req extends {
|
|
234
235
|
id: T["id"];
|
|
235
|
-
}, Context_1, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context_1) => import("@effect/io/Effect").Effect<FixEnv<R, Evt, T, S2>, E, A>) => (req: Req, ctx: Context_1) => import("@effect/io/Effect").Effect<
|
|
236
|
+
}, Context_1, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context_1) => import("@effect/io/Effect").Effect<FixEnv<R, Evt, T, S2>, E, A>) => (req: Req, ctx: Context_1) => import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
236
237
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, T, S2>;
|
|
237
238
|
}>, InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>, A>;
|
|
238
239
|
/**
|
|
@@ -243,7 +244,7 @@ export declare function saveManyWithPure_<Id extends string, R, T extends {
|
|
|
243
244
|
id: Id;
|
|
244
245
|
}, PM extends {
|
|
245
246
|
id: string;
|
|
246
|
-
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>): import("@effect/io/Effect").Effect<
|
|
247
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>): import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
247
248
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
248
249
|
}>, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
249
250
|
/**
|
|
@@ -254,14 +255,14 @@ export declare function saveWithPure_<Id extends string, R, T extends {
|
|
|
254
255
|
id: Id;
|
|
255
256
|
}, PM extends {
|
|
256
257
|
id: string;
|
|
257
|
-
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, item: S1, pure: Effect<FixEnv<R, Evt, S1, S2>, E, A>): import("@effect/io/Effect").Effect<
|
|
258
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, item: S1, pure: Effect<FixEnv<R, Evt, S1, S2>, E, A>): import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
258
259
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1, S2>;
|
|
259
260
|
}>, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
260
261
|
export declare function saveAllWithEffectInt<T extends {
|
|
261
262
|
id: string;
|
|
262
263
|
}, PM extends {
|
|
263
264
|
id: string;
|
|
264
|
-
}, P extends T, Evt, ItemType extends string, R, E, A>(self: Repository<T, PM, Evt, ItemType>, gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>): import("@effect/io/Effect").Effect<
|
|
265
|
+
}, P extends T, Evt, ItemType extends string, R, E, A>(self: Repository<T, PM, Evt, ItemType>, gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>): import("@effect/io/Effect").Effect<RequestCTX | R, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
265
266
|
/**
|
|
266
267
|
* @tsplus fluent Repository queryAndSavePureEffectBatched
|
|
267
268
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -275,7 +276,7 @@ export declare function queryAndSavePureEffectBatched<T extends {
|
|
|
275
276
|
collect?: (t: T) => Option<S>;
|
|
276
277
|
limit?: number;
|
|
277
278
|
skip?: number;
|
|
278
|
-
}>, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<
|
|
279
|
+
}>, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<RequestCTX | R | Exclude<R2, {
|
|
279
280
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
280
281
|
}>, InvalidStateError | OptimisticConcurrencyException | E | E2, A[]>;
|
|
281
282
|
/**
|
|
@@ -291,7 +292,7 @@ export declare function queryAndSavePureBatched<T extends {
|
|
|
291
292
|
collect?: (t: T) => Option<S>;
|
|
292
293
|
limit?: number;
|
|
293
294
|
skip?: number;
|
|
294
|
-
}, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<
|
|
295
|
+
}, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("@effect/io/Effect").Effect<RequestCTX | Exclude<R2, {
|
|
295
296
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
296
297
|
}>, InvalidStateError | OptimisticConcurrencyException | E2, A[]>;
|
|
297
298
|
/**
|
|
@@ -302,7 +303,7 @@ export declare function saveManyWithPureBatched<T extends {
|
|
|
302
303
|
id: string;
|
|
303
304
|
}, PM extends {
|
|
304
305
|
id: string;
|
|
305
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) => (items: Iterable<S1>) => import("@effect/io/Effect").Effect<
|
|
306
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: import("@effect/io/Effect").Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) => (items: Iterable<S1>) => import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
306
307
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
307
308
|
}>, InvalidStateError | OptimisticConcurrencyException | E, A[]>;
|
|
308
309
|
/**
|
|
@@ -313,7 +314,7 @@ export declare function saveManyWithPureBatched_<Id extends string, R, T extends
|
|
|
313
314
|
id: Id;
|
|
314
315
|
}, PM extends {
|
|
315
316
|
id: string;
|
|
316
|
-
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>, batchSize?: number): import("@effect/io/Effect").Effect<
|
|
317
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>, batchSize?: number): import("@effect/io/Effect").Effect<RequestCTX | Exclude<R, {
|
|
317
318
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
318
319
|
}>, InvalidStateError | OptimisticConcurrencyException | E, A[]>;
|
|
319
320
|
export type AllDSL<T, Evt> = (<R, A, E, S1 extends T, S2 extends T>(pure: (dsl: PureDSL<S1[], S2[], Evt>) => Effect<R, E, A>) => Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) & AllDSLExt<T, Evt>;
|
|
@@ -364,7 +365,7 @@ export declare function save<T extends {
|
|
|
364
365
|
id: string;
|
|
365
366
|
}, PM extends {
|
|
366
367
|
id: string;
|
|
367
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<
|
|
368
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<RequestCTX, InvalidStateError | OptimisticConcurrencyException, void>;
|
|
368
369
|
/**
|
|
369
370
|
* @tsplus getter Repository saveWithEvents
|
|
370
371
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -373,5 +374,5 @@ export declare function saveWithEvents<T extends {
|
|
|
373
374
|
id: string;
|
|
374
375
|
}, PM extends {
|
|
375
376
|
id: string;
|
|
376
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<
|
|
377
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => import("@effect/io/Effect").Effect<RequestCTX, InvalidStateError | OptimisticConcurrencyException, void>;
|
|
377
378
|
//# sourceMappingURL=Repository.d.ts.map
|