@effect-app/infra 0.19.0 → 0.20.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 +25 -0
- package/_cjs/_ext/Array.cjs +2 -3
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/codec.cjs +5 -4
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +27 -27
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +8 -7
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/routing.cjs +28 -28
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +2 -1
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/filter/{types/index.cjs → types.cjs} +5 -16
- package/_cjs/filter/types.cjs.map +1 -0
- package/_cjs/services/Emailer/Sendgrid.cjs +7 -6
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +25 -25
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +6 -6
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +19 -19
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +10 -9
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +15 -15
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +15 -15
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +7 -6
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +16 -15
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +8 -7
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +6 -6
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +2 -1
- 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/redisdb.cjs +1 -1
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +4 -3
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +1 -1
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/codec.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +7 -7
- package/_src/api/express/routing.ts.bak +12 -12
- package/_src/api/express/schema/requestHandler.ts +1 -1
- package/_src/api/routing.ts +7 -7
- package/_src/filter/types.ts +6 -0
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +7 -7
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/Store/Cosmos.ts +4 -4
- package/_src/services/Store/Disk.ts +1 -1
- package/_src/services/Store/service.ts +1 -1
- package/_src/services/simpledb/shared.ts +2 -2
- package/_src/services/simpledb/simpledb.ts +1 -1
- package/dist/_ext/Array.js +3 -4
- package/dist/api/codec.js +6 -5
- package/dist/api/defaultErrorHandler.js +1 -1
- package/dist/api/express/schema/requestHandler.js +33 -33
- package/dist/api/express/schema/routing.js +9 -8
- package/dist/api/routing.js +29 -29
- package/dist/errorReporter.js +3 -2
- package/dist/filter/types.d.ts +5 -0
- package/dist/filter/types.d.ts.map +1 -0
- package/dist/filter/types.js +6 -0
- package/dist/services/Emailer/Sendgrid.d.ts +12 -0
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +8 -7
- package/dist/services/Operations/live.js +31 -31
- package/dist/services/QueueMaker/errors.js +7 -7
- package/dist/services/QueueMaker/memQueue.js +18 -18
- package/dist/services/QueueMaker/sbqueue.js +10 -9
- package/dist/services/Repository.js +16 -16
- package/dist/services/Store/Cosmos.js +12 -12
- package/dist/services/Store/Disk.js +8 -7
- package/dist/services/Store/Memory.js +18 -17
- package/dist/services/Store/Redis.js +9 -8
- package/dist/services/Store/index.js +7 -7
- package/dist/services/Store/service.js +1 -1
- package/dist/services/simpledb/diskdb.js +3 -2
- package/dist/services/simpledb/memdb.js +2 -2
- package/dist/services/simpledb/redisdb.js +2 -2
- package/dist/services/simpledb/shared.js +5 -4
- package/dist/services/simpledb/simpledb.js +2 -2
- package/package.json +20 -20
- package/_cjs/filter/types/index.cjs.map +0 -1
- package/_src/filter/types/index.ts +0 -5
- package/dist/filter/types/index.d.ts +0 -6
- package/dist/filter/types/index.d.ts.map +0 -1
- package/dist/filter/types/index.js +0 -6
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/core/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/prelude/_ext/date";
|
|
3
3
|
import * as tsplus_module_3 from "@fp-ts/core/Option";
|
|
4
4
|
import * as tsplus_module_4 from "@effect-app/core/Array";
|
|
5
|
-
import * as tsplus_module_5 from "@effect/io/
|
|
6
|
-
import * as tsplus_module_6 from "@effect/io/
|
|
7
|
-
import * as tsplus_module_7 from "@effect
|
|
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-app/prelude/
|
|
11
|
-
import * as tsplus_module_11 from "@
|
|
12
|
-
import * as tsplus_module_12 from "@
|
|
5
|
+
import * as tsplus_module_5 from "@effect/io/Effect";
|
|
6
|
+
import * as tsplus_module_6 from "@effect/io/Exit";
|
|
7
|
+
import * as tsplus_module_7 from "@effect/io/Cause";
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/prelude/schema";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/core/Option";
|
|
10
|
+
import * as tsplus_module_10 from "@effect-app/prelude/_ext/misc";
|
|
11
|
+
import * as tsplus_module_11 from "@effect-app/prelude/service";
|
|
12
|
+
import * as tsplus_module_12 from "@fp-ts/data/Duration";
|
|
13
13
|
import * as tsplus_module_13 from "@effect/io/Layer";
|
|
14
14
|
import { RequestException } from "@effect-app/infra/api/reportError";
|
|
15
15
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
16
16
|
import { Failure, Operation, OperationId, Success } from "@effect-app/prelude/Operations";
|
|
17
17
|
import { Operations } from "./service.js";
|
|
18
18
|
const reportAppError = reportError(cause => new RequestException(cause));
|
|
19
|
-
const make =
|
|
19
|
+
const make = tsplus_module_5.sync(() => {
|
|
20
20
|
const ops = new Map();
|
|
21
|
-
const makeOp = tsplus_module_1.
|
|
22
|
-
const cleanup =
|
|
21
|
+
const makeOp = tsplus_module_1.effectSync(() => OperationId.make());
|
|
22
|
+
const cleanup = tsplus_module_5.sync(() => {
|
|
23
23
|
const before = tsplus_module_2.DateSubHours(new Date(), 1);
|
|
24
24
|
tsplus_module_4.ext_itToChunk(ops.entries()).forEach(([id, op]) => {
|
|
25
25
|
const lastChanged = tsplus_module_3.getOrElse(() => op.createdAt)(tsplus_module_3.fromNullable(op.updatedAt));
|
|
@@ -29,60 +29,60 @@ const make = tsplus_module_1.sync(() => {
|
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
31
|
function addOp(id) {
|
|
32
|
-
return
|
|
32
|
+
return tsplus_module_5.sync(() => {
|
|
33
33
|
ops.set(id, new Operation({ id }));
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
function findOp(id) {
|
|
37
|
-
return tsplus_module_1.
|
|
37
|
+
return tsplus_module_1.effectSync(() => tsplus_module_3.fromNullable(ops.get(id)));
|
|
38
38
|
}
|
|
39
39
|
function finishOp(id, exit) {
|
|
40
|
-
return
|
|
40
|
+
return tsplus_module_5.flatMap(findOp(id), _ => tsplus_module_5.sync(() => {
|
|
41
41
|
if (tsplus_module_3.isNone(_)) {
|
|
42
42
|
throw new Error("Not found");
|
|
43
43
|
}
|
|
44
44
|
ops.set(id, {
|
|
45
45
|
..._.value,
|
|
46
46
|
updatedAt: new Date(),
|
|
47
|
-
result:
|
|
47
|
+
result: tsplus_module_6.isSuccess(exit)
|
|
48
48
|
? new Success({})
|
|
49
49
|
: new Failure({
|
|
50
|
-
message:
|
|
51
|
-
?
|
|
52
|
-
:
|
|
53
|
-
?
|
|
54
|
-
:
|
|
50
|
+
message: tsplus_module_7.isInterrupted(exit.cause)
|
|
51
|
+
? tsplus_module_8.LongString("Interrupted")
|
|
52
|
+
: tsplus_module_7.isDie(exit.cause)
|
|
53
|
+
? tsplus_module_8.LongString("Unknown error")
|
|
54
|
+
: tsplus_module_9.getOrUndefined(tsplus_module_3.flatMap(_ => typeof _ === "object" && _ !== null && "message" in _ && tsplus_module_8.LongString.Guard(_.message)
|
|
55
55
|
? tsplus_module_3.some(_.message)
|
|
56
|
-
:
|
|
56
|
+
: tsplus_module_9.none)(tsplus_module_7.failureOption(exit.cause))) ?? null
|
|
57
57
|
})
|
|
58
58
|
});
|
|
59
59
|
}));
|
|
60
60
|
}
|
|
61
61
|
function update(id, progress) {
|
|
62
|
-
return
|
|
62
|
+
return tsplus_module_5.flatMap(findOp(id), _ => tsplus_module_5.sync(() => {
|
|
63
63
|
if (tsplus_module_3.isNone(_)) {
|
|
64
64
|
throw new Error("Not found");
|
|
65
65
|
}
|
|
66
66
|
ops.set(id, { ..._.value, updatedAt: new Date(), progress });
|
|
67
67
|
}));
|
|
68
68
|
}
|
|
69
|
-
return
|
|
69
|
+
return tsplus_module_11.make(Operations, {
|
|
70
70
|
cleanup,
|
|
71
|
-
register:
|
|
71
|
+
register: tsplus_module_5.tap(makeOp, id => tsplus_module_5.zipRight(tsplus_module_5.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit)))(tsplus_module_10.logAnnotateScoped("operationId", id))),
|
|
72
72
|
find: findOp,
|
|
73
73
|
update
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
|
-
const cleanupLoop =
|
|
77
|
-
if (
|
|
78
|
-
return
|
|
76
|
+
const cleanupLoop = tsplus_module_5.forkScoped(tsplus_module_5.forever(tsplus_module_5.delay(tsplus_module_5.flatMap(tsplus_module_5.exit(tsplus_module_5.serviceWithEffect(Operations, _ => _.cleanup)), _ => {
|
|
77
|
+
if (tsplus_module_6.isSuccess(_)) {
|
|
78
|
+
return tsplus_module_1.unit;
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
81
|
return reportAppError(_.cause);
|
|
82
82
|
}
|
|
83
|
-
}),
|
|
83
|
+
}), tsplus_module_12.minutes(1))));
|
|
84
84
|
/**
|
|
85
85
|
* @tsplus static Operations.Ops Live
|
|
86
86
|
*/
|
|
87
|
-
export const Live = tsplus_module_13.provideMerge(
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
export const Live = tsplus_module_13.provideMerge(tsplus_module_1.toScopedDiscardLayer(cleanupLoop))(tsplus_module_5.toLayer(make, Operations));
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9saXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFFN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRXhFLE1BQU0sSUFBSSxHQUFHLHFCQUFZLEdBQUcsRUFBRTtJQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQTtJQUM3QyxNQUFNLE1BQU0sR0FBRyxpQ0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUV6QyxNQUFNLE9BQU8sR0FBRyxxQkFBWSxHQUFHLEVBQUU7UUFDL0IsTUFBTSxNQUFNLEdBQUcsNkJBQUEsSUFBSSxJQUFJLEVBQUUsRUFBVSxDQUFDLENBQUMsQ0FBQTtRQUNyQyw4QkFBQSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBRVYsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQixNQUFNLFdBQVcsR0FBRywwQkFBNEMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBOUQsNkJBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBOEIsQ0FBQTtZQUNuRixJQUFJLFdBQVcsR0FBRyxNQUFNLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxN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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/core/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/infra/RequestContext";
|
|
3
|
-
import * as tsplus_module_3 from "@effect
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
4
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
5
5
|
import { CauseException } from "@effect-app/infra/errors";
|
|
6
6
|
import "@effect-app/infra/RequestContext";
|
|
@@ -15,7 +15,7 @@ export class FatalQueueException extends CauseException {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
const reportQueueError_ = reportError(cause => new MessageException(cause));
|
|
18
|
-
export const reportQueueError = (cause, context) =>
|
|
18
|
+
export const reportQueueError = (cause, context) => tsplus_module_3.serviceWithEffect(tsplus_module_2.tag, requestContext => tsplus_module_1.effectSync(() => reportQueueError_(cause, { requestContext, ...context })));
|
|
19
19
|
/**
|
|
20
20
|
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
21
21
|
* new fiber is attached to the global scope, when the fiber executing the
|
|
@@ -26,12 +26,12 @@ export const reportQueueError = (cause, context) => tsplus_module_1.serviceWithE
|
|
|
26
26
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
27
27
|
*/
|
|
28
28
|
export function forkDaemonReportQueue(self) {
|
|
29
|
-
return
|
|
29
|
+
return tsplus_module_3.daemonChildren(tsplus_module_3.fork(tsplus_module_3.tapErrorCause(self, reportQueueError)));
|
|
30
30
|
}
|
|
31
31
|
export const reportFatalQueueError = reportError(cause => new FatalQueueException(cause));
|
|
32
32
|
export function reportFailure(name) {
|
|
33
|
-
return (self) =>
|
|
33
|
+
return (self) => tsplus_module_3.tap(tsplus_module_3.exit(self), exit => exit._tag === "Failure"
|
|
34
34
|
? reportFatalQueueError(exit.cause, { name })
|
|
35
|
-
:
|
|
35
|
+
: tsplus_module_1.unit);
|
|
36
36
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3pELE9BQStCLGtDQUFrQyxDQUFBO0FBRWpFLE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxjQUFpQjtJQUN4RCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQXVCLFNBQVEsY0FBaUI7SUFDM0QsWUFBWSxLQUFlO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDekIsQ0FBQztDQUNGO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFM0UsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQTZDLEVBQUUsRUFBRSxDQUN2Ryx1REFBb0MsY0FBYyxDQUFDLEVBQUUsQ0FDbkQsaUNBQU8saUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUNqRSxDQUFBO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQVUsSUFBcUI7SUFDbEUsMkRBQU8sOEJBQUEsSUFBSSxFQUFlLGdCQUFnQixDQUFDLEdBQW9CO0FBQ2pFLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQzlDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDeEMsQ0FBQTtBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWTtJQUN4QyxPQUFPLENBQVUsSUFBcUIsRUFBRSxFQUFFLENBQ3hDLHlDQUFBLElBQUksR0FBVSxJQUFJLENBQUMsRUFBRSxDQUNuQixJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDckIsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM3QyxDQUFDLHFCQUFZLENBQ2hCLENBQUE7QUFDTCxDQUFDIn0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/infra/RequestContext";
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/core/
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/
|
|
6
|
-
import * as tsplus_module_6 from "@effect-app/prelude/
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/prelude/
|
|
8
|
-
import * as tsplus_module_8 from "@effect-app/
|
|
9
|
-
import * as tsplus_module_9 from "@effect/
|
|
10
|
-
import * as tsplus_module_10 from "@effect
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/_ext/Iterable";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/infra/services/QueueMaker/errors";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/prelude/utils";
|
|
7
|
+
import * as tsplus_module_7 from "@effect-app/prelude/_ext/misc";
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/prelude/schema";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/infra/api/setupRequest";
|
|
10
|
+
import * as tsplus_module_10 from "@effect/io/Cause";
|
|
11
11
|
import * as tsplus_module_11 from "@effect/io/Exit";
|
|
12
12
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
13
13
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
@@ -23,9 +23,9 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
23
23
|
return {
|
|
24
24
|
publish: (...messages) => tsplus_module_1.gen(function* ($) {
|
|
25
25
|
const requestContext = yield* $(tsplus_module_1.service(tsplus_module_2.tag));
|
|
26
|
-
return yield* $(
|
|
26
|
+
return yield* $(tsplus_module_5.forkDaemonReportQueue(tsplus_module_4.ext_forEach(messages, m => tsplus_module_1.asUnit(
|
|
27
27
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
28
|
-
tsplus_module_1.flatMap(
|
|
28
|
+
tsplus_module_1.flatMap(tsplus_module_3.effectSync(() => JSON.stringify(encoder({ body: m, meta: requestContext })))
|
|
29
29
|
// .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
|
|
30
30
|
, _ => q.offer(_))))));
|
|
31
31
|
}),
|
|
@@ -33,12 +33,12 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
33
33
|
const handleEvent = yield* $(makeHandleEvent);
|
|
34
34
|
const processMessage = (msg) =>
|
|
35
35
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
36
|
-
tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.flatMap(
|
|
36
|
+
tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.flatMap(tsplus_module_3.effectSync(() => JSON.parse(msg)), parseDrain)), ({ body, meta }) => provideContext(RequestContext.inherit(meta, {
|
|
37
37
|
id: body.id,
|
|
38
38
|
locale: "en",
|
|
39
|
-
name:
|
|
40
|
-
}))(tsplus_module_1.zipRight(
|
|
41
|
-
return yield* $(tsplus_module_1.forkScoped(
|
|
39
|
+
name: tsplus_module_8.ReasonableString(body._tag)
|
|
40
|
+
}))(tsplus_module_1.zipRight(tsplus_module_7.logAnnotates({ body: tsplus_module_6.RecordPretty(tsplus_module_6.object$(body)), meta: tsplus_module_6.RecordPretty(tsplus_module_6.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)), silence(handleEvent(body)))));
|
|
41
|
+
return yield* $(tsplus_module_1.forkScoped(tsplus_module_9.setupReq3(reportFailure("drain")(tsplus_module_1.forever(tsplus_module_1.flatMap(qReply.take(), x => tsplus_module_1.uninterruptible(processMessage(x))))), "Queue.ReceiveMessage")));
|
|
42
42
|
})
|
|
43
43
|
};
|
|
44
44
|
});
|
|
@@ -49,12 +49,12 @@ export function silence(inp) {
|
|
|
49
49
|
return tsplus_module_1.flatMap(tsplus_module_1.exit(inp), result => tsplus_module_1.gen(function* ($) {
|
|
50
50
|
const requestContext = yield* $(tsplus_module_1.service(tsplus_module_2.tag));
|
|
51
51
|
return yield* $(tsplus_module_11.match(result, cause => {
|
|
52
|
-
if (
|
|
52
|
+
if (tsplus_module_10.isInterrupted(cause)) {
|
|
53
53
|
return tsplus_module_1.failCause(cause);
|
|
54
54
|
}
|
|
55
55
|
reportQueueError(cause, { requestContext });
|
|
56
|
-
return
|
|
57
|
-
}, () =>
|
|
56
|
+
return tsplus_module_3.unit;
|
|
57
|
+
}, () => tsplus_module_3.unit));
|
|
58
58
|
}));
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRWpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHN0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUMxQixTQUFpQixFQUNqQixjQUFzQixFQUN0QixPQUF5RCxFQUN6RCxlQUF3RixFQUN4RixjQUV1QyxFQUN2QyxVQUdtRjtJQUVuRixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyx5QkFBQyxRQUFRLEVBQVEsQ0FBQTtRQUNyQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxFQUFFLENBQ3ZCLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsOENBQTJCLENBQUE7Z0JBQzFELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyx1Q0FDYiw0QkFBQSxRQUFRLEVBQWUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLHVIQUF1SDtnQkFDdkgsd0JBQUEsaUNBQ0Us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
|
|
@@ -4,9 +4,10 @@ import * as tsplus_module_3 from "@effect-app/prelude/utils";
|
|
|
4
4
|
import * as tsplus_module_4 from "@effect-app/prelude/_ext/misc";
|
|
5
5
|
import * as tsplus_module_5 from "@effect-app/prelude/schema";
|
|
6
6
|
import * as tsplus_module_6 from "@effect-app/infra/api/setupRequest";
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/
|
|
8
|
-
import * as tsplus_module_8 from "@effect-app/infra/
|
|
9
|
-
import * as tsplus_module_9 from "@effect/
|
|
7
|
+
import * as tsplus_module_7 from "@effect-app/core/Effect";
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/infra/RequestContext";
|
|
9
|
+
import * as tsplus_module_9 from "@effect-app/infra/services/QueueMaker/errors";
|
|
10
|
+
import * as tsplus_module_10 from "@effect/io/Layer";
|
|
10
11
|
import { LiveReceiver, LiveSender, LiveServiceBusClient, Receiver, Sender, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
11
12
|
import { captureException } from "@effect-app/infra/errorReporter";
|
|
12
13
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
@@ -32,12 +33,12 @@ export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHan
|
|
|
32
33
|
}
|
|
33
34
|
return yield* $(tsplus_module_1.provideSomeLayer(subscribe({
|
|
34
35
|
processMessage: x => tsplus_module_1.uninterruptible(processMessage(x.body)),
|
|
35
|
-
processError: err =>
|
|
36
|
+
processError: err => tsplus_module_7.effectSync(() => captureException(err.error))
|
|
36
37
|
}), receiverLayer));
|
|
37
38
|
}),
|
|
38
39
|
publish: (...messages) => tsplus_module_1.gen(function* ($) {
|
|
39
|
-
const requestContext = yield* $(tsplus_module_1.service(
|
|
40
|
-
return yield* $(
|
|
40
|
+
const requestContext = yield* $(tsplus_module_1.service(tsplus_module_8.tag));
|
|
41
|
+
return yield* $(tsplus_module_9.forkDaemonReportQueue(tsplus_module_1.promise(() => s.sendMessages(messages.map(x => ({
|
|
41
42
|
body: JSON.stringify(encoder({ body: x, meta: requestContext })),
|
|
42
43
|
messageId: x.id,
|
|
43
44
|
contentType: "application/json"
|
|
@@ -50,12 +51,12 @@ export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHan
|
|
|
50
51
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
51
52
|
*/
|
|
52
53
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
53
|
-
return
|
|
54
|
+
return tsplus_module_10.provide((tsplus_module_10.merge(LiveSender(queueName))(LiveReceiver(queueDrainName))))(LiveServiceBusClient(url));
|
|
54
55
|
}
|
|
55
56
|
function report(cause) {
|
|
56
57
|
return tsplus_module_1.gen(function* ($) {
|
|
57
|
-
const requestContext = yield* $(tsplus_module_1.service(
|
|
58
|
+
const requestContext = yield* $(tsplus_module_1.service(tsplus_module_8.tag));
|
|
58
59
|
return reportQueueError(cause, { requestContext });
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zYnF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSx1Q0FBdUMsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQVFqQyxVQUFrQixFQUNsQixjQUFzQixFQUN0QixPQUF5RCxFQUN6RCxlQUF3RixFQUN4RixjQUV1QyxFQUN2QyxVQUdtRjtJQUVuRixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyx5QkFBQyxNQUFNLEVBQVEsQ0FBQTtRQUNqQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLHlCQUFDLFFBQVEsRUFBUSxDQUFBO1FBQzFDLE1BQU0sYUFBYSxHQUFHLDBCQUFBLFFBQVEsRUFBVyxRQUFRLENBQUMsQ0FBQTtRQUVsRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDN0MsOERBQThEO2dCQUM5RCxTQUFTLGNBQWMsQ0FBQyxXQUFnQjtvQkFDdEMsb0RBQU8sMEJBQUEsd0JBQUEsb0RBQUEsd0JBQUEscUJBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUN0QyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUViLE1BQU0sQ0FBQyxFQUNiLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQU90QixjQUFjLENBQ1osY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7d0JBQzNCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTt3QkFDWCxNQUFNLEVBQUUsSUFBYTt3QkFDckIsSUFBSSxFQUFFLGdCQUFBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7cUJBQ2xDLENBQUMsQ0FDSCxDQVpMLDhCQUFBLHlCQUVTLDZCQUFvQixFQUFFLElBQUksdURBQUUsSUFBSSxFQUFVLEVBQUUsSUFBSSx1REFBRSxJQUFJLEVBQVUsRUFBRSxDQUFDLENBRjVFLHlCQUNZLE9BQU8sY0FBYywrQkFBK0IsQ0FBQyxHQUVyRCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDYixNQUFNLENBQUMsQ0FTckIsQ0FDSixFQUNxQixzQkFBc0IsQ0FBQyxHQUV0QztnQkFDWCxDQUFDO2dCQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNiLGlDQUFBLFNBQVMsQ0FBQztvQkFDUixjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsaUNBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBZ0I7b0JBQzNELFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLGlDQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDekQsQ0FBQyxFQUNrQixhQUFhLENBQUMsQ0FDbkMsQ0FBQTtZQUNILENBQUMsQ0FBQztZQUVGLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLEVBQUUsQ0FDdkIsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztnQkFDcEIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyw4Q0FBMkIsQ0FBQTtnQkFDMUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLHVDQUNiLHdCQUFlLEdBQUcsRUFBRSxDQUNsQixDQUFDLENBQUMsWUFBWSxDQUNaLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDbEIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FDM0M7b0JBQ0QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNmLFdBQVcsRUFBRSxrQkFBa0I7aUJBQ2hDLENBQUMsQ0FBQyxDQUNKLENBQ0YsRUFFRixDQUFBO1lBQ0gsQ0FBQyxDQUFDO1NBQzRCLENBQUE7SUFDcEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsR0FBVyxFQUFFLFNBQWlCLEVBQUUsY0FBc0I7SUFDekYsZ0NBQ0ssd0JBQWdDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBcEQsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUF5QixFQURwRCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFDMkI7QUFDN0QsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFJLEtBQWU7SUFDaEMsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsOENBQTJCLENBQUE7UUFDMUQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFBO0lBQ3BELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
|
|
@@ -2,9 +2,9 @@ import * as tsplus_module_1 from "@effect-app/prelude/Pure";
|
|
|
2
2
|
import * as tsplus_module_2 from "@effect-app/prelude/_ext/misc";
|
|
3
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
4
|
import * as tsplus_module_4 from "@fp-ts/data/Chunk";
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/core/
|
|
6
|
-
import * as tsplus_module_6 from "@effect/
|
|
7
|
-
import * as tsplus_module_7 from "@effect
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/core/Effect";
|
|
6
|
+
import * as tsplus_module_6 from "@effect-app/core/Array";
|
|
7
|
+
import * as tsplus_module_7 from "@effect/io/Debug";
|
|
8
8
|
export const get = get_1;
|
|
9
9
|
export const projectEffect = projectEffect_1;
|
|
10
10
|
export const queryEffect = queryEffect_1;
|
|
@@ -64,7 +64,7 @@ function projectEffect_1(self, map) {
|
|
|
64
64
|
* @tsplus fluent Repository project
|
|
65
65
|
*/
|
|
66
66
|
export function project(self, map) {
|
|
67
|
-
return projectEffect_1(self,
|
|
67
|
+
return projectEffect_1(self, tsplus_module_5.effectSync(() => map));
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* @tsplus fluent Repository queryEffect
|
|
@@ -80,7 +80,7 @@ map) {
|
|
|
80
80
|
function queryOneEffect_1(self,
|
|
81
81
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
82
82
|
map) {
|
|
83
|
-
return tsplus_module_3.flatMap(map, f => tsplus_module_3.flatMap(tsplus_module_3.map(tsplus_module_3.flatMap((f.filter ? self.utils.filter(f.filter, { limit: 1 }) : self.utils.all), items => tsplus_module_3.map(tsplus_module_3.service(ContextMap), ({ set }) => items.map(_ => self.utils.mapReverse(_, set)))), _ => _.map(_ => self.utils.parse(_))), _ => tsplus_module_3.map(tsplus_module_2.encaseMaybeInEffect_(
|
|
83
|
+
return tsplus_module_3.flatMap(map, f => tsplus_module_3.flatMap(tsplus_module_3.map(tsplus_module_3.flatMap((f.filter ? self.utils.filter(f.filter, { limit: 1 }) : self.utils.all), items => tsplus_module_3.map(tsplus_module_3.service(ContextMap), ({ set }) => items.map(_ => self.utils.mapReverse(_, set)))), _ => _.map(_ => self.utils.parse(_))), _ => tsplus_module_3.map(tsplus_module_2.encaseMaybeInEffect_(tsplus_module_6.ChunkToNonEmptyReadonlyArray(tsplus_module_4.filterMap(_, f.collect)), () => new NotFoundError(self.itemType, JSON.stringify(f.filter))), _ => _[0])));
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* @tsplus fluent Repository query
|
|
@@ -88,7 +88,7 @@ map) {
|
|
|
88
88
|
export function query(self,
|
|
89
89
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
90
90
|
map) {
|
|
91
|
-
return queryEffect_1(self,
|
|
91
|
+
return queryEffect_1(self, tsplus_module_5.effectSync(() => map));
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
* @tsplus fluent Repository queryOne
|
|
@@ -96,7 +96,7 @@ map) {
|
|
|
96
96
|
export function queryOne(self,
|
|
97
97
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
98
98
|
map) {
|
|
99
|
-
return queryOneEffect_1(self,
|
|
99
|
+
return queryOneEffect_1(self, tsplus_module_5.effectSync(() => map));
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
102
|
* @tsplus fluent Repository queryAndSavePureEffect
|
|
@@ -104,7 +104,7 @@ map) {
|
|
|
104
104
|
function queryAndSavePureEffect_1(self,
|
|
105
105
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
106
106
|
map) {
|
|
107
|
-
return (pure) =>
|
|
107
|
+
return (pure) => tsplus_module_7.untraced(restore => tsplus_module_3.flatMap(queryEffect_1(self, map), restore(_ => saveManyWithPure_1(self, _, pure))));
|
|
108
108
|
}
|
|
109
109
|
/**
|
|
110
110
|
* @tsplus fluent Repository queryAndSavePure
|
|
@@ -112,7 +112,7 @@ map) {
|
|
|
112
112
|
export function queryAndSavePure(self,
|
|
113
113
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
114
114
|
map) {
|
|
115
|
-
return queryAndSavePureEffect_1(self,
|
|
115
|
+
return queryAndSavePureEffect_1(self, tsplus_module_5.effectSync(() => map));
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
118
118
|
* @tsplus getter Repository saveManyWithPure
|
|
@@ -137,7 +137,7 @@ export function handleByIdAndSaveWithPure(self) {
|
|
|
137
137
|
* @tsplus fluent Repository saveManyWithPure_
|
|
138
138
|
*/
|
|
139
139
|
function saveManyWithPure_1(self, items, pure) {
|
|
140
|
-
return saveAllWithEffectInt(self, tsplus_module_1.runTerm(pure,
|
|
140
|
+
return saveAllWithEffectInt(self, tsplus_module_1.runTerm(pure, tsplus_module_6.ext_itToChunk(items)));
|
|
141
141
|
}
|
|
142
142
|
/**
|
|
143
143
|
* @tsplus fluent Repository saveWithPure_
|
|
@@ -146,7 +146,7 @@ function saveWithPure_1(self, item, pure) {
|
|
|
146
146
|
return saveAllWithEffectInt(self, tsplus_module_3.map(tsplus_module_1.runTerm(pure, item), ([item, events, a]) => [[item], events, a]));
|
|
147
147
|
}
|
|
148
148
|
export function saveAllWithEffectInt(self, gen) {
|
|
149
|
-
return
|
|
149
|
+
return tsplus_module_7.untraced(restore => tsplus_module_3.flatMap(gen, ([items, events, a]) => tsplus_module_3.map(restore(() => self.saveAndPublish(items, events))(), () => a)));
|
|
150
150
|
}
|
|
151
151
|
const anyDSL = makeDSL();
|
|
152
152
|
export function makeAllDSL() {
|
|
@@ -157,13 +157,13 @@ export function makeAllDSL() {
|
|
|
157
157
|
* @tsplus fluent DSLExt updateWith
|
|
158
158
|
*/
|
|
159
159
|
export function updateWithOne(self, upd) {
|
|
160
|
-
return self.update((_) =>
|
|
160
|
+
return self.update((_) => tsplus_module_5.effectSync(() => upd(_)));
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
163
|
* @tsplus fluent DSLExt updateWith
|
|
164
164
|
*/
|
|
165
165
|
export function updateWith(self, upd) {
|
|
166
|
-
return self.update((_) =>
|
|
166
|
+
return self.update((_) => tsplus_module_5.effectSync(() => upd(_)));
|
|
167
167
|
}
|
|
168
168
|
export function makeOneDSL() {
|
|
169
169
|
return anyDSL;
|
|
@@ -185,13 +185,13 @@ export function makeDSL() {
|
|
|
185
185
|
});
|
|
186
186
|
}
|
|
187
187
|
export function ifAny(fn) {
|
|
188
|
-
return (items) =>
|
|
188
|
+
return (items) => tsplus_module_5.flatMapOption(tsplus_module_5.effectSync(() => tsplus_module_6.CollectionToNonEmptyReadonlyArray(items)), fn);
|
|
189
189
|
}
|
|
190
190
|
/**
|
|
191
191
|
* @tsplus fluent Iterable ifAny
|
|
192
192
|
*/
|
|
193
193
|
export function ifAny_(items, fn) {
|
|
194
|
-
return
|
|
194
|
+
return tsplus_module_5.flatMapOption(tsplus_module_5.effectSync(() => tsplus_module_6.CollectionToNonEmptyReadonlyArray(items)), fn);
|
|
195
195
|
}
|
|
196
196
|
/**
|
|
197
197
|
* @tsplus getter Repository save
|
|
@@ -205,4 +205,4 @@ export function save(self) {
|
|
|
205
205
|
export function saveWithEvents(self) {
|
|
206
206
|
return (events) => (...items) => self.saveAndPublish(items, events);
|
|
207
207
|
}
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvc2VydmljZXMvUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O2FBc0RnQixHQUFHO2FBdUVILGFBQWE7YUF5Q2IsV0FBVzthQThCWCxjQUFjO2FBc0VkLHNCQUFzQjthQXdEdEIsbUJBQW1CO2FBK0JuQixpQkFBaUI7YUF5QmpCLGFBQWE7QUF2WDdCLE9BQXFCLDBCQUEwQixDQUFBO0FBRy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBcUNqRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQTJCO0lBQ2hELEdBQUcsRUFBRSxxQkFBVTtJQUNmLEdBQUcscUJBQVU7SUFDYixHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxFQUFFLENBQUMsd0JBQWEsR0FBRyxDQUFDO0NBQzFDLENBQUE7QUFFRDs7R0FFRztBQUNILGVBT0UsSUFBMEMsRUFDMUMsRUFBTTtJQUVOLE9BQU8sd0JBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBUyxDQUFDLENBQUMsRUFBRSxDQUFDLHFDQUFBLENBQUMsRUFBZ0IsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDakcsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FNcEIsSUFBMEMsRUFBRSxNQUFvQjtJQUNoRSxPQUFPLG9CQUFBLElBQUksQ0FBQyxHQUFHLEVBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyx1QkFBQSxDQUFDLEVBQVEsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUM1QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQU92QixJQUEwQyxFQUFFLEdB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
|