@effect-app/infra 0.13.0 → 0.14.1
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/api/codec.cjs +2 -4
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +18 -21
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +4 -4
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +5 -7
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +57 -56
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -22
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +6 -17
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing.cjs +70 -70
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +2 -4
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +6 -8
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -13
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +1 -1
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -3
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +6 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +12 -18
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +4 -7
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +23 -26
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +3 -5
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +28 -30
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +58 -58
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +15 -16
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +14 -16
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +22 -23
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +7 -7
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +2 -4
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +16 -17
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +23 -25
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +20 -21
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +11 -13
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +20 -22
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +25 -25
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +4 -6
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +16 -17
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/errors.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/dist/RequestContext.d.ts +12 -12
- package/dist/api/codec.js +3 -5
- package/dist/api/defaultErrorHandler.js +20 -21
- package/dist/api/express/makeJsonSchema.js +3 -5
- package/dist/api/express/makeOpenApiSpecs.js +5 -7
- package/dist/api/express/schema/requestHandler.d.ts +5 -5
- package/dist/api/express/schema/requestHandler.js +50 -52
- package/dist/api/express/schema/routing.js +21 -23
- package/dist/api/reportError.js +6 -18
- package/dist/api/routing.js +65 -67
- package/dist/api/setupRequest.js +3 -5
- package/dist/api/writeDocs.js +7 -9
- package/dist/errorReporter.js +10 -12
- package/dist/errors.js +2 -2
- package/dist/instrument.js +2 -4
- package/dist/rateLimit.js +7 -9
- package/dist/services/Emailer/Sendgrid.js +15 -22
- package/dist/services/Emailer/fake.js +5 -8
- package/dist/services/Emailer/service.d.ts +1 -1
- package/dist/services/Operations/live.js +24 -27
- package/dist/services/Operations/service.js +4 -6
- package/dist/services/Repository.d.ts +4 -4
- package/dist/services/Repository.js +22 -24
- package/dist/services/Store/Cosmos.d.ts +1 -1
- package/dist/services/Store/Cosmos.js +61 -63
- package/dist/services/Store/Disk.js +16 -19
- package/dist/services/Store/Memory.d.ts +1 -1
- package/dist/services/Store/Memory.js +16 -18
- package/dist/services/Store/Redis.d.ts +1 -1
- package/dist/services/Store/Redis.js +21 -24
- package/dist/services/Store/index.js +6 -8
- package/dist/services/Store/service.d.ts +1 -1
- package/dist/services/Store/service.js +3 -5
- package/dist/services/Store/utils.d.ts +2 -2
- package/dist/services/Store/utils.js +18 -19
- package/dist/services/simpledb/cosmosdb.d.ts +2 -2
- package/dist/services/simpledb/cosmosdb.js +23 -25
- package/dist/services/simpledb/diskdb.d.ts +2 -2
- package/dist/services/simpledb/diskdb.js +18 -18
- package/dist/services/simpledb/memdb.d.ts +3 -3
- package/dist/services/simpledb/memdb.js +13 -14
- package/dist/services/simpledb/mongodb.d.ts +2 -2
- package/dist/services/simpledb/mongodb.js +18 -20
- package/dist/services/simpledb/redisdb.d.ts +8 -8
- package/dist/services/simpledb/redisdb.js +21 -23
- package/dist/services/simpledb/shared.d.ts +9 -9
- package/dist/services/simpledb/shared.js +5 -7
- package/dist/services/simpledb/simpledb.d.ts +1 -1
- package/dist/services/simpledb/simpledb.js +19 -19
- package/package.json +12 -12
- package/tsconfig.json +5 -1
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
-
const fileName_1 = "packages/infra/_src/services/Emailer/fake.ts";
|
|
3
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
|
-
import * as tsplus_module_2 from "@effect-app/core/Effect";
|
|
5
2
|
import { pretty } from "@effect-app/prelude/utils";
|
|
6
3
|
import { Emailer } from "./service.js";
|
|
7
|
-
const makeFake =
|
|
4
|
+
const makeFake = tsplus_module_1.map(tsplus_module_1.logDebug("FAKE Emailer Service enabled"), () => ({
|
|
8
5
|
sendMail(msg) {
|
|
9
|
-
return
|
|
6
|
+
return tsplus_module_1.logAnnotate(tsplus_module_1.logDebug(`Fake send mail`), "msg", pretty(msg));
|
|
10
7
|
}
|
|
11
|
-
}))
|
|
8
|
+
}));
|
|
12
9
|
/**
|
|
13
10
|
* @tsplus static Emailer.Ops Fake
|
|
14
11
|
*/
|
|
15
|
-
export const FakeSendgrid =
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
export const FakeSendgrid = tsplus_module_1.toLayer(makeFake, Emailer);
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvRW1haWxlci9mYWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV0QyxNQUFNLFFBQVEsR0FBRyxvQkFBQSx5QkFBZ0IsOEJBQThCLENBQUMsRUFDekQsR0FBWSxFQUFFLENBQUMsQ0FBQztJQUNuQixRQUFRLENBQUMsR0FBRztRQUNWLE9BQU8sNEJBQUEseUJBQWdCLGdCQUFnQixDQUFDLEVBQWEsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzFFLENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQTtBQUVMOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHdCQUFBLFFBQVEsRUFBUyxPQUFPLENBQUMsQ0FBQSJ9
|
|
@@ -2,7 +2,7 @@ import { Effect } from "@effect/io/Effect";
|
|
|
2
2
|
import { Tag } from "@fp-ts/data/Context";
|
|
3
3
|
import { Email, ReasonableString } from "@effect-app/prelude/schema";
|
|
4
4
|
import { ConfigSecret } from "@effect/io/Config/Secret";
|
|
5
|
-
import { NonEmptyReadonlyArray } from "@fp-ts/
|
|
5
|
+
import { NonEmptyReadonlyArray } from "@fp-ts/core/ReadonlyArray";
|
|
6
6
|
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js";
|
|
7
7
|
import type { ResponseError } from "@sendgrid/mail";
|
|
8
8
|
import type sgMail from "@sendgrid/mail";
|
|
@@ -1,27 +1,24 @@
|
|
|
1
|
-
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
-
const fileName_1 = "packages/infra/_src/services/Operations/live.ts";
|
|
3
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
2
|
import * as tsplus_module_2 from "@effect-app/prelude/_ext/date";
|
|
5
|
-
import * as tsplus_module_3 from "@fp-ts/
|
|
3
|
+
import * as tsplus_module_3 from "@fp-ts/core/Option";
|
|
6
4
|
import * as tsplus_module_4 from "@effect-app/core/Array";
|
|
7
5
|
import * as tsplus_module_5 from "@effect/io/Exit";
|
|
8
6
|
import * as tsplus_module_6 from "@effect/io/Cause";
|
|
9
7
|
import * as tsplus_module_7 from "@effect-app/prelude/schema";
|
|
10
8
|
import * as tsplus_module_8 from "@effect-app/core/Option";
|
|
11
9
|
import * as tsplus_module_9 from "@effect-app/prelude/_ext/Prelude.ext";
|
|
12
|
-
import * as tsplus_module_10 from "@effect-app/
|
|
13
|
-
import * as tsplus_module_11 from "@
|
|
14
|
-
import * as tsplus_module_12 from "@
|
|
15
|
-
import * as tsplus_module_13 from "@effect/io/Layer";
|
|
10
|
+
import * as tsplus_module_10 from "@effect-app/core/Effect";
|
|
11
|
+
import * as tsplus_module_11 from "@effect-app/prelude/service";
|
|
12
|
+
import * as tsplus_module_12 from "@fp-ts/data/Duration";
|
|
16
13
|
import { RequestException } from "@effect-app/infra/api/reportError";
|
|
17
14
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
18
15
|
import { Failure, Operation, OperationId, Success } from "@effect-app/prelude/Operations";
|
|
19
16
|
import { Operations } from "./service.js";
|
|
20
17
|
const reportAppError = reportError(cause => new RequestException(cause));
|
|
21
|
-
const make =
|
|
18
|
+
const make = tsplus_module_1.sync(() => {
|
|
22
19
|
const ops = new Map();
|
|
23
|
-
const makeOp =
|
|
24
|
-
const cleanup =
|
|
20
|
+
const makeOp = tsplus_module_1.sync(() => OperationId.make());
|
|
21
|
+
const cleanup = tsplus_module_1.sync(() => {
|
|
25
22
|
const before = tsplus_module_2.DateSubHours(new Date(), 1);
|
|
26
23
|
tsplus_module_4.ext_itToChunk(ops.entries()).forEach(([id, op]) => {
|
|
27
24
|
const lastChanged = tsplus_module_3.getOrElse(() => op.createdAt)(tsplus_module_3.fromNullable(op.updatedAt));
|
|
@@ -29,17 +26,17 @@ const make = tracer_1.withCallTrace(fileName_1 + ":9:14")(tsplus_module_1.sync((
|
|
|
29
26
|
ops.delete(id);
|
|
30
27
|
}
|
|
31
28
|
});
|
|
32
|
-
})
|
|
29
|
+
});
|
|
33
30
|
function addOp(id) {
|
|
34
|
-
return
|
|
31
|
+
return tsplus_module_1.sync(() => {
|
|
35
32
|
ops.set(id, new Operation({ id }));
|
|
36
|
-
})
|
|
33
|
+
});
|
|
37
34
|
}
|
|
38
35
|
function findOp(id) {
|
|
39
|
-
return
|
|
36
|
+
return tsplus_module_1.sync(() => tsplus_module_3.fromNullable(ops.get(id)));
|
|
40
37
|
}
|
|
41
38
|
function finishOp(id, exit) {
|
|
42
|
-
return
|
|
39
|
+
return tsplus_module_1.flatMap(findOp(id), _ => tsplus_module_1.sync(() => {
|
|
43
40
|
if (tsplus_module_3.isNone(_)) {
|
|
44
41
|
throw new Error("Not found");
|
|
45
42
|
}
|
|
@@ -55,36 +52,36 @@ const make = tracer_1.withCallTrace(fileName_1 + ":9:14")(tsplus_module_1.sync((
|
|
|
55
52
|
? tsplus_module_7.LongString("Unknown error")
|
|
56
53
|
: tsplus_module_8.getOrUndefined(tsplus_module_3.flatMap(_ => typeof _ === "object" && _ !== null && "message" in _ && tsplus_module_7.LongString.Guard(_.message)
|
|
57
54
|
? tsplus_module_3.some(_.message)
|
|
58
|
-
:
|
|
55
|
+
: tsplus_module_8.none)(tsplus_module_6.failureOption(exit.cause))) ?? null
|
|
59
56
|
})
|
|
60
57
|
});
|
|
61
|
-
}))
|
|
58
|
+
}));
|
|
62
59
|
}
|
|
63
60
|
function update(id, progress) {
|
|
64
|
-
return
|
|
61
|
+
return tsplus_module_1.flatMap(findOp(id), _ => tsplus_module_1.sync(() => {
|
|
65
62
|
if (tsplus_module_3.isNone(_)) {
|
|
66
63
|
throw new Error("Not found");
|
|
67
64
|
}
|
|
68
65
|
ops.set(id, { ..._.value, updatedAt: new Date(), progress });
|
|
69
|
-
}))
|
|
66
|
+
}));
|
|
70
67
|
}
|
|
71
|
-
return
|
|
68
|
+
return tsplus_module_11.make(Operations, {
|
|
72
69
|
cleanup,
|
|
73
|
-
register:
|
|
70
|
+
register: tsplus_module_1.tap(makeOp, id => tsplus_module_10.EffectZipRight(tsplus_module_1.acquireRelease(addOp(id), (_, exit) => finishOp(id, exit)))(tsplus_module_9.logAnnotateScoped("operationId", id))),
|
|
74
71
|
find: findOp,
|
|
75
72
|
update
|
|
76
73
|
});
|
|
77
|
-
})
|
|
78
|
-
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.forever(
|
|
74
|
+
});
|
|
75
|
+
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.forever(tsplus_module_1.delay(tsplus_module_1.flatMap(tsplus_module_1.exit(tsplus_module_1.serviceWithEffect(Operations, _ => _.cleanup)), _ => {
|
|
79
76
|
if (tsplus_module_5.isSuccess(_)) {
|
|
80
|
-
return
|
|
77
|
+
return tsplus_module_10.unit;
|
|
81
78
|
}
|
|
82
79
|
else {
|
|
83
80
|
return reportAppError(_.cause);
|
|
84
81
|
}
|
|
85
|
-
})
|
|
82
|
+
}), tsplus_module_12.minutes(1))));
|
|
86
83
|
/**
|
|
87
84
|
* @tsplus static Operations.Ops Live
|
|
88
85
|
*/
|
|
89
|
-
export const Live =
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
export const Live = tsplus_module_10.LayerProvideMerge(tsplus_module_10.toScopedDiscardLayer(cleanupLoop))(tsplus_module_1.toLayer(make, Operations));
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9saXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFeEUsTUFBTSxJQUFJLEdBQUcscUJBQU8sR0FBRyxFQUFFO0lBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFBO0lBQzdDLE1BQU0sTUFBTSxHQUFHLHFCQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRS9DLE1BQU0sT0FBTyxHQUFHLHFCQUFPLEdBQUcsRUFBRTtRQUMxQixNQUFNLE1BQU0sR0FBRyw2QkFBQSxJQUFJLElBQUksRUFBRSxFQUFVLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLDhCQUFBLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFFVixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sV0FBVyxHQUFHLDBCQUF5QyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUEzRCw2QkFBaUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUE4QixDQUFBO1lBQ2hGLElBQUksV0FBVyxHQUFHLE1BQU0sRUFBRTtnQkFD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
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
-
const fileName_1 = "packages/infra/_src/services/Operations/service.ts";
|
|
3
1
|
import * as tsplus_module_1 from "@fp-ts/data/Context";
|
|
4
2
|
import * as tsplus_module_2 from "@effect/io/Scope";
|
|
5
3
|
import * as tsplus_module_3 from "@effect-app/infra/api/reportError";
|
|
@@ -11,7 +9,7 @@ export const Operations = tsplus_module_1.Tag();
|
|
|
11
9
|
* @tsplus getter effect/io/Effect forkOperation
|
|
12
10
|
*/
|
|
13
11
|
function forkOperation_1(self) {
|
|
14
|
-
return
|
|
12
|
+
return tsplus_module_4.serviceWithEffect(Operations, Operations => tsplus_module_4.flatMap(tsplus_module_2.make(), scope => tsplus_module_4.tap(tsplus_module_2.extend(Operations.register, scope), () => tsplus_module_3.forkDaemonReportRequestUnexpected(tsplus_module_2.use(self, scope)))));
|
|
15
13
|
}
|
|
16
14
|
/**
|
|
17
15
|
* @tsplus getter function forkOperation
|
|
@@ -23,12 +21,12 @@ export function forkOperationFunction(fnc) {
|
|
|
23
21
|
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
24
22
|
*/
|
|
25
23
|
export function forkOperation2(self) {
|
|
26
|
-
return
|
|
24
|
+
return tsplus_module_4.serviceWithEffect(Operations, Operations => tsplus_module_4.flatMap(tsplus_module_2.make(), scope => tsplus_module_4.tap(tsplus_module_2.extend(Operations.register, scope), id => tsplus_module_3.forkDaemonReportRequestUnexpected(tsplus_module_2.use(self(id), scope)))));
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
27
|
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
30
28
|
*/
|
|
31
29
|
export function forkOperationWithEffect(self, fnc) {
|
|
32
|
-
return
|
|
30
|
+
return tsplus_module_4.serviceWithEffect(Operations, Operations => tsplus_module_4.flatMap(tsplus_module_2.make(), scope => tsplus_module_4.tap(tsplus_module_4.tap(tsplus_module_2.extend(Operations.register, scope), opId => tsplus_module_3.forkDaemonReportRequestUnexpected(tsplus_module_2.use(self(opId), scope))), opId => tsplus_module_2.extend(tsplus_module_4.forkScoped(tsplus_module_4.interruptible(fnc(opId))), scope))));
|
|
33
31
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7YUFvQmdCLGFBQWE7QUFsQjdCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7QUFhbEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFrQixnQkFBQSxHQUFHLEVBQWMsQ0FBQTtBQUUxRDs7R0FFRztBQUNILHlCQUF1QyxJQUFxQjtJQUMxRCxPQUFPLGtDQUFBLFVBQVUsRUFDZixVQUFVLENBQUMsRUFBRSxDQUNYLHdCQUFBLHNCQUFZLEVBQ0QsS0FBSyxDQUFDLEVBQUUsQ0FDZixvQkFBQSx1QkFBQSxVQUFVLENBQUMsUUFBUSxFQUFRLEtBQUssQ0FBQyxFQUMxQixHQUFHLEVBQUUsbURBQUMsb0JBQUEsSUFBSSxFQUFLLEtBQUssQ0FBQyxDQUFrQyxDQUFDLENBQ2hFLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBZSxHQUFrQztJQUNwRixPQUFPLENBQUMsR0FBUSxFQUFFLEVBQUUsaUJBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFjLENBQUE7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBVSxJQUE0QztJQUNsRixPQUFPLGtDQUFBLFVBQVUsRUFDZixVQUFVLENBQUMsRUFBRSxDQUNYLHdCQUFBLHNCQUFZLEVBQ0QsS0FBSyxDQUFDLEVBQUUsQ0FDZixvQkFBQSx1QkFBQSxVQUFVLENBQUMsUUFBUSxFQUFRLEtBQUssQ0FBQyxFQUMxQixFQUFFLENBQUMsRUFBRSxtREFBQyxvQkFBQSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUssS0FBSyxDQUFDLENBQWtDLENBQUMsQ0FDcEUsQ0FDTixDQUFBO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUEwQyxFQUMxQyxHQUE0QztJQUU1QyxPQUFPLGtDQUFBLFVBQVUsRUFDZixVQUFVLENBQUMsRUFBRSxDQUNYLHdCQUFBLHNCQUFZLEVBQ0QsS0FBSyxDQUFDLEVBQUUsQ0FDZixvQkFBQSxvQkFBQSx1QkFBQSxVQUFVLENBQUMsUUFBUSxFQUFRLEtBQUssQ0FBQyxFQUMxQixJQUFJLENBQUMsRUFBRSxtREFBQyxvQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUssS0FBSyxDQUFDLENBQWtDLENBQUMsRUFDaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnRkFBQSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQWlDLEtBQUssQ0FBQyxDQUFDLENBQ2pFLENBQ04sQ0FBQTtBQUNILENBQUMifQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Effect } from "@effect/io/Effect";
|
|
2
2
|
import { Opt } from "@effect-app/core/Option";
|
|
3
3
|
import { Chunk } from "@fp-ts/data/Chunk";
|
|
4
|
-
import { Predicate } from "@fp-ts/
|
|
4
|
+
import { Predicate } from "@fp-ts/core/Predicate";
|
|
5
5
|
import { PureEnvEnv } from "@effect-app/prelude/_ext/Pure";
|
|
6
|
-
import { NonEmptyReadonlyArray, NonEmptyArray } from "@fp-ts/
|
|
6
|
+
import { NonEmptyReadonlyArray, NonEmptyArray } from "@fp-ts/core/ReadonlyArray";
|
|
7
7
|
import type { FixEnv, PureLogT } from "@effect-app/prelude/_ext/Pure";
|
|
8
8
|
import { Pure } from "@effect-app/prelude/_ext/Pure";
|
|
9
9
|
import type { ParserEnv } from "@effect-app/schema/custom/Parser";
|
|
@@ -291,12 +291,12 @@ export declare function makeDSL<S1, S2, Evt>(): (<R, A, E>(pure: (dsl: PureDSL<S
|
|
|
291
291
|
};
|
|
292
292
|
export interface DSLExt<S1, S2, Evt> extends ReturnType<typeof makeDSL<S1, S2, Evt>> {
|
|
293
293
|
}
|
|
294
|
-
export declare function ifAny<T, R, E, A>(fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>): (items: Iterable<T>) => import("@effect/io/Effect").Effect<R, E, import("@fp-ts/
|
|
294
|
+
export declare function ifAny<T, R, E, A>(fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>): (items: Iterable<T>) => import("@effect/io/Effect").Effect<R, E, import("@fp-ts/core/Option").Option<A>>;
|
|
295
295
|
/**
|
|
296
296
|
* @tsplus fluent Iterable ifAny
|
|
297
297
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
298
298
|
*/
|
|
299
|
-
export declare function ifAny_<T, R, E, A>(items: Iterable<T>, fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>): import("@effect/io/Effect").Effect<R, E, import("@fp-ts/
|
|
299
|
+
export declare function ifAny_<T, R, E, A>(items: Iterable<T>, fn: (items: NonEmptyReadonlyArray<T>) => Effect<R, E, A>): import("@effect/io/Effect").Effect<R, E, import("@fp-ts/core/Option").Option<A>>;
|
|
300
300
|
/**
|
|
301
301
|
* @tsplus getter Repository save
|
|
302
302
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
-
const fileName_1 = "packages/infra/_src/services/Repository.ts";
|
|
3
1
|
import * as tsplus_module_1 from "@effect-app/prelude/_ext/Pure";
|
|
4
2
|
import * as tsplus_module_2 from "@effect-app/prelude/_ext/Prelude.ext";
|
|
5
3
|
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
@@ -26,25 +24,25 @@ export const AnyPureDSL = {
|
|
|
26
24
|
* @tsplus fluent Repository get
|
|
27
25
|
*/
|
|
28
26
|
function get_1(self, id) {
|
|
29
|
-
return
|
|
27
|
+
return tsplus_module_3.flatMap(self.find(id), _ => tsplus_module_2.encaseMaybeInEffect_(_, () => new NotFoundError(self.itemType, id)));
|
|
30
28
|
}
|
|
31
29
|
/**
|
|
32
30
|
* @tsplus fluent Repository filter
|
|
33
31
|
*/
|
|
34
32
|
export function filter(self, filter) {
|
|
35
|
-
return
|
|
33
|
+
return tsplus_module_3.map(self.all, _ => tsplus_module_4.filter(filter)(_));
|
|
36
34
|
}
|
|
37
35
|
/**
|
|
38
36
|
* @tsplus fluent Repository filterAll
|
|
39
37
|
*/
|
|
40
38
|
export function filterAll(self, map) {
|
|
41
|
-
return
|
|
39
|
+
return tsplus_module_3.map(self.all, map);
|
|
42
40
|
}
|
|
43
41
|
/**
|
|
44
42
|
* @tsplus fluent Repository collect
|
|
45
43
|
*/
|
|
46
44
|
export function collect(self, collect) {
|
|
47
|
-
return
|
|
45
|
+
return tsplus_module_3.map(self.all, _ => tsplus_module_4.filterMap(collect)(_));
|
|
48
46
|
}
|
|
49
47
|
/**
|
|
50
48
|
* @tsplus getter Repository log
|
|
@@ -58,14 +56,14 @@ export function log(_) {
|
|
|
58
56
|
*/
|
|
59
57
|
function projectEffect_1(self, map) {
|
|
60
58
|
// TODO: a projection that gets sent to the db instead.
|
|
61
|
-
return
|
|
59
|
+
return tsplus_module_3.flatMap(map, f => tsplus_module_3.map((f.filter ? self.utils.filter(f.filter, { limit: f.limit, skip: f.skip }) : self.utils.all), _ => tsplus_module_4.filterMap(f.collect)(_)));
|
|
62
60
|
}
|
|
63
61
|
/**
|
|
64
62
|
* TODO: project inside the db.
|
|
65
63
|
* @tsplus fluent Repository project
|
|
66
64
|
*/
|
|
67
65
|
export function project(self, map) {
|
|
68
|
-
return projectEffect_1(self,
|
|
66
|
+
return projectEffect_1(self, tsplus_module_3.sync(() => map));
|
|
69
67
|
}
|
|
70
68
|
/**
|
|
71
69
|
* @tsplus fluent Repository queryEffect
|
|
@@ -73,7 +71,7 @@ export function project(self, map) {
|
|
|
73
71
|
function queryEffect_1(self,
|
|
74
72
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
75
73
|
map) {
|
|
76
|
-
return
|
|
74
|
+
return tsplus_module_3.flatMap(map, f => tsplus_module_3.map(tsplus_module_3.map(tsplus_module_3.flatMap((f.filter ? self.utils.filter(f.filter, { limit: f.limit, skip: f.skip }) : 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_4.filterMap(f.collect)(_)));
|
|
77
75
|
}
|
|
78
76
|
/**
|
|
79
77
|
* @tsplus fluent Repository queryOneEffect
|
|
@@ -81,7 +79,7 @@ map) {
|
|
|
81
79
|
function queryOneEffect_1(self,
|
|
82
80
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
83
81
|
map) {
|
|
84
|
-
return
|
|
82
|
+
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_5.ChunkToNonEmptyReadonlyArray(tsplus_module_4.filterMap(f.collect)(_)), () => new NotFoundError(self.itemType, JSON.stringify(f.filter))), _ => _[0])));
|
|
85
83
|
}
|
|
86
84
|
/**
|
|
87
85
|
* @tsplus fluent Repository query
|
|
@@ -89,7 +87,7 @@ map) {
|
|
|
89
87
|
export function query(self,
|
|
90
88
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
91
89
|
map) {
|
|
92
|
-
return queryEffect_1(self,
|
|
90
|
+
return queryEffect_1(self, tsplus_module_3.sync(() => map));
|
|
93
91
|
}
|
|
94
92
|
/**
|
|
95
93
|
* @tsplus fluent Repository queryOne
|
|
@@ -97,7 +95,7 @@ map) {
|
|
|
97
95
|
export function queryOne(self,
|
|
98
96
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
99
97
|
map) {
|
|
100
|
-
return queryOneEffect_1(self,
|
|
98
|
+
return queryOneEffect_1(self, tsplus_module_3.sync(() => map));
|
|
101
99
|
}
|
|
102
100
|
/**
|
|
103
101
|
* @tsplus fluent Repository queryAndSavePureEffect
|
|
@@ -105,7 +103,7 @@ map) {
|
|
|
105
103
|
function queryAndSavePureEffect_1(self,
|
|
106
104
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
107
105
|
map) {
|
|
108
|
-
return (pure) =>
|
|
106
|
+
return (pure) => tsplus_module_3.flatMap(queryEffect_1(self, map), _ => saveManyWithPure_1(self, _, pure));
|
|
109
107
|
}
|
|
110
108
|
/**
|
|
111
109
|
* @tsplus fluent Repository queryAndSavePure
|
|
@@ -113,7 +111,7 @@ map) {
|
|
|
113
111
|
export function queryAndSavePure(self,
|
|
114
112
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
115
113
|
map) {
|
|
116
|
-
return queryAndSavePureEffect_1(self,
|
|
114
|
+
return queryAndSavePureEffect_1(self, tsplus_module_3.sync(() => map));
|
|
117
115
|
}
|
|
118
116
|
/**
|
|
119
117
|
* @tsplus getter Repository saveManyWithPure
|
|
@@ -125,7 +123,7 @@ export function saveManyWithPure(self) {
|
|
|
125
123
|
* @tsplus fluent Repository byIdAndSaveWithPure
|
|
126
124
|
*/
|
|
127
125
|
function byIdAndSaveWithPure_1(self, id) {
|
|
128
|
-
return (pure) =>
|
|
126
|
+
return (pure) => tsplus_module_3.flatMap(get_1(self, id), item => saveWithPure_1(self, item, pure));
|
|
129
127
|
}
|
|
130
128
|
/**
|
|
131
129
|
* NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
|
|
@@ -144,10 +142,10 @@ function saveManyWithPure_1(self, items, pure) {
|
|
|
144
142
|
* @tsplus fluent Repository saveWithPure_
|
|
145
143
|
*/
|
|
146
144
|
function saveWithPure_1(self, item, pure) {
|
|
147
|
-
return saveAllWithEffectInt(self,
|
|
145
|
+
return saveAllWithEffectInt(self, tsplus_module_3.map(tsplus_module_1.runTerm(pure, item), ([item, events, a]) => [[item], events, a]));
|
|
148
146
|
}
|
|
149
147
|
function saveAllWithEffectInt(self, gen) {
|
|
150
|
-
return
|
|
148
|
+
return tsplus_module_3.flatMap(gen, ([items, events, a]) => tsplus_module_3.map(self.saveAndPublish(items, events), () => a));
|
|
151
149
|
}
|
|
152
150
|
const anyDSL = makeDSL();
|
|
153
151
|
export function makeAllDSL() {
|
|
@@ -158,13 +156,13 @@ export function makeAllDSL() {
|
|
|
158
156
|
* @tsplus fluent DSLExt updateWith
|
|
159
157
|
*/
|
|
160
158
|
export function updateWithOne(self, upd) {
|
|
161
|
-
return self.update((_) =>
|
|
159
|
+
return self.update((_) => tsplus_module_3.sync(() => upd(_)));
|
|
162
160
|
}
|
|
163
161
|
/**
|
|
164
162
|
* @tsplus fluent DSLExt updateWith
|
|
165
163
|
*/
|
|
166
164
|
export function updateWith(self, upd) {
|
|
167
|
-
return self.update((_) =>
|
|
165
|
+
return self.update((_) => tsplus_module_3.sync(() => upd(_)));
|
|
168
166
|
}
|
|
169
167
|
export function makeOneDSL() {
|
|
170
168
|
return anyDSL;
|
|
@@ -172,10 +170,10 @@ export function makeOneDSL() {
|
|
|
172
170
|
export function makeDSL() {
|
|
173
171
|
const dsl = AnyPureDSL;
|
|
174
172
|
function modify(pure) {
|
|
175
|
-
return
|
|
173
|
+
return tsplus_module_3.flatMap(dsl.get, items => pure(items, dsl));
|
|
176
174
|
}
|
|
177
175
|
function update(pure) {
|
|
178
|
-
return
|
|
176
|
+
return tsplus_module_3.flatMap(dsl.get, items => tsplus_module_3.tap(pure(items, dsl.log), dsl.set));
|
|
179
177
|
}
|
|
180
178
|
function withDSL(pure) {
|
|
181
179
|
return pure(AnyPureDSL);
|
|
@@ -186,13 +184,13 @@ export function makeDSL() {
|
|
|
186
184
|
});
|
|
187
185
|
}
|
|
188
186
|
export function ifAny(fn) {
|
|
189
|
-
return (items) =>
|
|
187
|
+
return (items) => tsplus_module_6.flatMapOpt(tsplus_module_3.sync(() => tsplus_module_5.CollectionToNonEmptyReadonlyArray(items)), fn);
|
|
190
188
|
}
|
|
191
189
|
/**
|
|
192
190
|
* @tsplus fluent Iterable ifAny
|
|
193
191
|
*/
|
|
194
192
|
export function ifAny_(items, fn) {
|
|
195
|
-
return
|
|
193
|
+
return tsplus_module_6.flatMapOpt(tsplus_module_3.sync(() => tsplus_module_5.CollectionToNonEmptyReadonlyArray(items)), fn);
|
|
196
194
|
}
|
|
197
195
|
/**
|
|
198
196
|
* @tsplus getter Repository save
|
|
@@ -206,4 +204,4 @@ export function save(self) {
|
|
|
206
204
|
export function saveWithEvents(self) {
|
|
207
205
|
return (events) => (...items) => self.saveAndPublish(items, events);
|
|
208
206
|
}
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvc2VydmljZXMvUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7YUFzRGdCLEdBQUc7YUF1RUgsYUFBYTthQXlDYixXQUFXO2FBOEJYLGNBQWM7YUFzRWQsc0JBQXNCO2FBc0R0QixtQkFBbUI7YUErQm5CLGlCQUFpQjthQXlCakIsYUFBYTtBQXJYN0IsT0FBcUIsK0JBQStCLENBQUE7QUFHcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFxQ2pELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBMkI7SUFDaEQsR0FBRyxFQUFFLHFCQUFVO0lBQ2YsR0FBRyxxQkFBVTtJQUNiLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUFFLEVBQUUsQ0FBQyx3QkFBYSxHQUFHLENBQUM7Q0FDMUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsZUFPRSxJQUEwQyxFQUMxQyxFQUFNO0lBRU4sT0FBTyx3QkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMscUNBQUEsQ0FBQyxFQUFnQixHQUFHLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNqRyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQU1wQixJQUEwQyxFQUFFLE1BQW9CO0lBQ2hFLE9BQU8sb0JBQUEsSUFBSSxDQUFDLEdBQUcsRUFBSyxDQUFDLENBQUMsRUFBRSxDQUFDLHVCQUFTLE1BQU0sRUFBZixDQUFDLENBQWUsQ0FBQyxDQUFBO0FBQzVDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxTQUFTLENBT3ZCLElBQTBDLEVBQUUsR0FB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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "@effect/io/Effect";
|
|
2
|
-
import { NonEmptyReadonlyArray } from "@fp-ts/
|
|
2
|
+
import { NonEmptyReadonlyArray } from "@fp-ts/core/ReadonlyArray";
|
|
3
3
|
import { Config } from "@effect/io/Config";
|
|
4
4
|
import * as CosmosClient from "@effect-app/infra-adapters/cosmos-client";
|
|
5
5
|
import type { FilterJoinSelect, JoinFindFilter, LegacyFilter, PersistenceModelType, StorageConfig, Store, StoreConfig, StoreWhereFilter, SupportedValues } from "./service.js";
|