@effect-app/infra 3.10.0 → 4.0.0-beta.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 +19 -0
- package/_check.sh +3 -0
- package/dist/CUPS.d.ts +22 -12
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +28 -29
- package/dist/Emailer/Sendgrid.js +13 -12
- package/dist/Emailer/service.d.ts +3 -13
- package/dist/Emailer/service.d.ts.map +1 -1
- package/dist/Emailer/service.js +3 -3
- package/dist/MainFiberSet.d.ts +18 -41
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +10 -10
- package/dist/Model/Repository/ext.d.ts.map +1 -1
- package/dist/Model/Repository/ext.js +13 -10
- package/dist/Model/Repository/internal/internal.d.ts +5 -5
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +52 -42
- package/dist/Model/Repository/legacy.d.ts +9 -9
- package/dist/Model/Repository/legacy.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +4 -4
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +1 -1
- package/dist/Model/Repository/service.d.ts +11 -11
- package/dist/Model/Repository/service.d.ts.map +1 -1
- package/dist/Model/Repository/validation.d.ts +17 -47
- package/dist/Model/Repository/validation.d.ts.map +1 -1
- package/dist/Model/Repository/validation.js +2 -2
- package/dist/Model/query/dsl.d.ts +22 -22
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/dsl.js +1 -1
- package/dist/Model/query/new-kid-interpreter.d.ts +1 -1
- package/dist/Model/query/new-kid-interpreter.js +7 -7
- package/dist/Operations.d.ts +22 -63
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Operations.js +14 -14
- package/dist/OperationsRepo.d.ts +23 -7
- package/dist/OperationsRepo.d.ts.map +1 -1
- package/dist/OperationsRepo.js +4 -5
- package/dist/QueueMaker/SQLQueue.d.ts +6 -8
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +20 -24
- package/dist/QueueMaker/errors.js +1 -1
- package/dist/QueueMaker/memQueue.d.ts +2 -5
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +22 -26
- package/dist/QueueMaker/sbqueue.d.ts +2 -5
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +24 -28
- package/dist/RequestContext.d.ts +28 -41
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +4 -4
- package/dist/RequestFiberSet.d.ts +23 -50
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +14 -14
- package/dist/Store/ContextMapContainer.d.ts +4 -4
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +5 -5
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +21 -28
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +12 -16
- package/dist/Store/Memory.d.ts +2 -2
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +25 -33
- package/dist/Store/index.js +2 -2
- package/dist/Store/service.d.ts +9 -34
- package/dist/Store/service.d.ts.map +1 -1
- package/dist/Store/service.js +4 -4
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +10 -2
- package/dist/adapters/SQL/Model.d.ts +106 -162
- package/dist/adapters/SQL/Model.d.ts.map +1 -1
- package/dist/adapters/SQL/Model.js +92 -130
- package/dist/adapters/ServiceBus.d.ts +13 -44
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +13 -15
- package/dist/adapters/cosmos-client.d.ts +7 -3
- package/dist/adapters/cosmos-client.d.ts.map +1 -1
- package/dist/adapters/cosmos-client.js +5 -4
- package/dist/adapters/logger.d.ts +1 -1
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/adapters/memQueue.d.ts +8 -21
- package/dist/adapters/memQueue.d.ts.map +1 -1
- package/dist/adapters/memQueue.js +4 -4
- package/dist/adapters/mongo-client.d.ts +6 -6
- package/dist/adapters/mongo-client.d.ts.map +1 -1
- package/dist/adapters/mongo-client.js +5 -4
- package/dist/adapters/redis-client.d.ts +14 -4
- package/dist/adapters/redis-client.d.ts.map +1 -1
- package/dist/adapters/redis-client.js +19 -18
- package/dist/api/ContextProvider.d.ts +10 -15
- package/dist/api/ContextProvider.d.ts.map +1 -1
- package/dist/api/ContextProvider.js +8 -8
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/codec.d.ts.map +1 -1
- package/dist/api/codec.js +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/auth.d.ts +3 -3
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/auth.js +8 -8
- package/dist/api/internal/events.d.ts +2 -2
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +9 -9
- package/dist/api/internal/health.d.ts +1 -1
- package/dist/api/internal/health.d.ts.map +1 -1
- package/dist/api/internal/health.js +2 -2
- package/dist/api/layerUtils.d.ts +14 -14
- package/dist/api/layerUtils.d.ts.map +1 -1
- package/dist/api/layerUtils.js +5 -5
- package/dist/api/middlewares.d.ts +0 -75
- package/dist/api/middlewares.d.ts.map +1 -1
- package/dist/api/middlewares.js +6 -51
- package/dist/api/reportError.js +4 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +6 -7
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +9 -13
- package/dist/api/routing/schema/jwt.d.ts +1 -1
- package/dist/api/routing/schema/jwt.d.ts.map +1 -1
- package/dist/api/routing/schema/jwt.js +5 -4
- package/dist/api/routing/utils.d.ts +2 -2
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing/utils.js +10 -8
- package/dist/api/routing.d.ts +39 -37
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +17 -21
- package/dist/api/setupRequest.d.ts +4 -6
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +10 -9
- package/dist/arbs.d.ts +3 -3
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +2 -2
- package/dist/errorReporter.d.ts +1 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -12
- package/dist/fileUtil.d.ts +6 -6
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +19 -18
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +11 -13
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +7 -9
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/rateLimit.d.ts +2 -2
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +5 -5
- package/dist/test.d.ts +2 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +6 -24
- package/package.json +19 -22
- package/src/CUPS.ts +15 -14
- package/src/Emailer/Sendgrid.ts +15 -13
- package/src/Emailer/service.ts +3 -3
- package/src/MainFiberSet.ts +16 -12
- package/src/Model/Repository/ext.ts +18 -16
- package/src/Model/Repository/internal/internal.ts +80 -69
- package/src/Model/Repository/legacy.ts +9 -9
- package/src/Model/Repository/makeRepo.ts +5 -5
- package/src/Model/Repository/service.ts +12 -12
- package/src/Model/Repository/validation.ts +1 -1
- package/src/Model/query/dsl.ts +13 -13
- package/src/Model/query/new-kid-interpreter.ts +8 -8
- package/src/Operations.ts +17 -14
- package/src/OperationsRepo.ts +3 -4
- package/src/QueueMaker/SQLQueue.ts +86 -89
- package/src/QueueMaker/errors.ts +1 -1
- package/src/QueueMaker/memQueue.ts +90 -91
- package/src/QueueMaker/sbqueue.ts +90 -92
- package/src/RequestContext.ts +3 -3
- package/src/RequestFiberSet.ts +17 -15
- package/src/Store/ContextMapContainer.ts +4 -4
- package/src/Store/Cosmos.ts +20 -27
- package/src/Store/Disk.ts +13 -17
- package/src/Store/Memory.ts +28 -34
- package/src/Store/index.ts +1 -1
- package/src/Store/service.ts +4 -4
- package/src/Store/utils.ts +9 -5
- package/src/adapters/SQL/Model.ts +255 -268
- package/src/adapters/ServiceBus.ts +17 -20
- package/src/adapters/cosmos-client.ts +5 -5
- package/src/adapters/memQueue.ts +3 -3
- package/src/adapters/mongo-client.ts +5 -5
- package/src/adapters/redis-client.ts +25 -19
- package/src/api/ContextProvider.ts +24 -34
- package/src/api/codec.ts +1 -1
- package/src/api/internal/auth.ts +11 -13
- package/src/api/internal/events.ts +11 -11
- package/src/api/internal/health.ts +1 -1
- package/src/api/layerUtils.ts +20 -20
- package/src/api/middlewares.ts +0 -97
- package/src/api/reportError.ts +3 -3
- package/src/api/routing/middleware/RouterMiddleware.ts +5 -6
- package/src/api/routing/middleware/middleware.ts +13 -25
- package/src/api/routing/schema/jwt.ts +9 -7
- package/src/api/routing/utils.ts +12 -10
- package/src/api/routing.ts +77 -79
- package/src/api/setupRequest.ts +9 -8
- package/src/arbs.ts +3 -3
- package/src/errorReporter.ts +12 -12
- package/src/logger/jsonLogger.ts +18 -17
- package/src/logger/logFmtLogger.ts +10 -12
- package/src/logger/shared.ts +6 -8
- package/src/rateLimit.ts +7 -7
- package/src/test.ts +7 -29
- package/test/contextProvider.test.ts +77 -70
- package/test/controller.test.ts +51 -39
- package/test/dist/contextProvider.test.d.ts.map +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/fixtures.d.ts +33 -81
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +9 -8
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/fixtures.ts +9 -7
- package/test/query.test.ts +49 -41
- package/test/rawQuery.test.ts +44 -40
- package/test/requires.test.ts +40 -31
- package/test/rpc-multi-middleware.test.ts +13 -14
- package/test/validateSample.test.ts +2 -2
- package/tsconfig.json +1 -27
- package/dist/api/internal/middlewares.d.ts +0 -15
- package/dist/api/internal/middlewares.d.ts.map +0 -1
- package/dist/api/internal/middlewares.js +0 -168
- package/src/api/internal/middlewares.ts +0 -279
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 64786af: Beta25
|
|
8
|
+
- Updated dependencies [64786af]
|
|
9
|
+
- effect-app@4.0.0-beta.1
|
|
10
|
+
|
|
11
|
+
## 4.0.0-beta.0
|
|
12
|
+
|
|
13
|
+
### Major Changes
|
|
14
|
+
|
|
15
|
+
- 880df28: Effect v4 beta
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [880df28]
|
|
20
|
+
- effect-app@4.0.0-beta.0
|
|
21
|
+
|
|
3
22
|
## 3.10.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
package/_check.sh
ADDED
package/dist/CUPS.d.ts
CHANGED
|
@@ -1,26 +1,36 @@
|
|
|
1
1
|
import { type FileOptions } from "@effect-app/infra/fileUtil";
|
|
2
|
-
import { Config, Effect, Layer, S } from "effect-app";
|
|
3
|
-
export declare const PrinterId: S.WithDefaults<S.
|
|
2
|
+
import { Config, Effect, Layer, Option, S, ServiceMap } from "effect-app";
|
|
3
|
+
export declare const PrinterId: S.WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">;
|
|
4
4
|
export type PrinterId = S.NonEmptyString255;
|
|
5
5
|
export declare const prepareTempDir: Effect.Effect<void, never, never>;
|
|
6
|
-
export declare const makePrintJobTempFile: (data: string | import("node:stream") | NodeJS.ArrayBufferView<ArrayBufferLike> | Iterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | AsyncIterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>>, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").
|
|
7
|
-
export declare const makePrintJobTempFileArrayBuffer: (buffer: ArrayBuffer, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").
|
|
6
|
+
export declare const makePrintJobTempFile: (data: string | import("node:stream") | NodeJS.ArrayBufferView<ArrayBufferLike> | Iterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | AsyncIterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>>, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
|
|
7
|
+
export declare const makePrintJobTempFileArrayBuffer: (buffer: ArrayBuffer, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
|
|
8
8
|
export declare const CUPSConfig: Config.Config<{
|
|
9
|
-
server:
|
|
9
|
+
server: Option.Option<import("node:url").URL>;
|
|
10
10
|
}>;
|
|
11
|
-
declare const CUPS_base:
|
|
12
|
-
|
|
11
|
+
declare const CUPS_base: ServiceMap.ServiceClass<CUPS, "effect-app/CUPS", {
|
|
12
|
+
print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
|
|
13
|
+
stdout: string;
|
|
14
|
+
stderr: string;
|
|
15
|
+
}, import("effect/Cause").UnknownError, never>;
|
|
16
|
+
printFile: (filePath: string, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
|
|
17
|
+
stdout: string;
|
|
18
|
+
stderr: string;
|
|
19
|
+
}, import("effect/Cause").UnknownError, never>;
|
|
20
|
+
getAvailablePrinters: Effect.Effect<(string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">)[], import("effect/Cause").UnknownError, never>;
|
|
21
|
+
}> & {
|
|
22
|
+
readonly make: Effect.Effect<{
|
|
13
23
|
print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
|
|
14
24
|
stdout: string;
|
|
15
25
|
stderr: string;
|
|
16
|
-
}, import("effect/Cause").
|
|
26
|
+
}, import("effect/Cause").UnknownError, never>;
|
|
17
27
|
printFile: (filePath: string, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
|
|
18
28
|
stdout: string;
|
|
19
29
|
stderr: string;
|
|
20
|
-
}, import("effect/Cause").
|
|
21
|
-
getAvailablePrinters: Effect.Effect<(string & S.
|
|
22
|
-
},
|
|
23
|
-
}
|
|
30
|
+
}, import("effect/Cause").UnknownError, never>;
|
|
31
|
+
getAvailablePrinters: Effect.Effect<(string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">)[], import("effect/Cause").UnknownError, never>;
|
|
32
|
+
}, Config.ConfigError, never>;
|
|
33
|
+
};
|
|
24
34
|
export declare class CUPS extends CUPS_base {
|
|
25
35
|
static readonly Fake: Layer.Layer<CUPS, never, never>;
|
|
26
36
|
}
|
package/dist/CUPS.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../src/CUPS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAa,CAAC,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../src/CUPS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAa,CAAC,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAQpF,eAAO,MAAM,SAAS,6NAAsB,CAAA;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAA;AAuC3C,eAAO,MAAM,cAAc,mCAUzB,CAAA;AAGF,eAAO,MAAM,oBAAoB,oUAA4B,CAAA;AAC7D,eAAO,MAAM,+BAA+B,GAAI,QAAQ,WAAW,EAAE,UAAU,WAAW,6FACtC,CAAA;AA2BpD,eAAO,MAAM,UAAU;;EAQrB,CAAA;;oBAMyB,WAAW,aAAa,SAAS,cAAc,MAAM,EAAE;;;;0BAStD,MAAM,aAAa,SAAS,cAAc,MAAM,EAAE;;;;;;;wBATnD,WAAW,aAAa,SAAS,cAAc,MAAM,EAAE;;;;8BAStD,MAAM,aAAa,SAAS,cAAc,MAAM,EAAE;;;;;;;AAb9E,qBAAa,IAAK,SAAQ,SAqBxB;IACA,MAAM,CAAC,QAAQ,CAAC,IAAI,kCA+BnB;CACF"}
|
package/dist/CUPS.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tempFile } from "@effect-app/infra/fileUtil";
|
|
2
2
|
import cp from "child_process";
|
|
3
|
-
import { Config, Effect, Layer, Predicate, S } from "effect-app";
|
|
3
|
+
import { Config, Effect, Layer, Option, Predicate, S, ServiceMap } from "effect-app";
|
|
4
4
|
import { pretty } from "effect-app/utils";
|
|
5
5
|
import fs from "fs";
|
|
6
6
|
import os from "os";
|
|
@@ -56,7 +56,7 @@ function getAvailablePrinters(host) {
|
|
|
56
56
|
const { stdout } = yield* exec(["lpstat", ...buildListArgs({ host }), "-s"].join(" "));
|
|
57
57
|
return [...stdout.matchAll(/device for (\w+):/g)]
|
|
58
58
|
.map((_) => _[1])
|
|
59
|
-
.filter(Predicate.
|
|
59
|
+
.filter(Predicate.isNotNullish)
|
|
60
60
|
.map((_) => S.NonEmptyString255(_));
|
|
61
61
|
});
|
|
62
62
|
}
|
|
@@ -70,13 +70,14 @@ export const CUPSConfig = Config.all({
|
|
|
70
70
|
.string("server")
|
|
71
71
|
.pipe(Config.map((s) => new URL(s)), Config.option, Config.nested("cups"))
|
|
72
72
|
});
|
|
73
|
-
export class CUPS extends
|
|
74
|
-
|
|
73
|
+
export class CUPS extends ServiceMap.Service()("effect-app/CUPS", {
|
|
74
|
+
make: Effect.gen(function* () {
|
|
75
75
|
const config = yield* CUPSConfig;
|
|
76
|
+
const serverUrl = Option.getOrUndefined(config.server);
|
|
76
77
|
function print(buffer, printerId, ...options) {
|
|
77
78
|
const _print = printBuffer({
|
|
78
79
|
id: printerId,
|
|
79
|
-
url:
|
|
80
|
+
url: serverUrl
|
|
80
81
|
}, options);
|
|
81
82
|
return _print(buffer);
|
|
82
83
|
}
|
|
@@ -84,32 +85,30 @@ export class CUPS extends Effect.Service()("effect-app/CUPS", {
|
|
|
84
85
|
print,
|
|
85
86
|
printFile: (filePath, printerId, ...options) => printFile({
|
|
86
87
|
id: printerId,
|
|
87
|
-
url:
|
|
88
|
+
url: serverUrl
|
|
88
89
|
}, options)(filePath),
|
|
89
|
-
getAvailablePrinters: getAvailablePrinters(
|
|
90
|
+
getAvailablePrinters: getAvailablePrinters(serverUrl?.host)
|
|
90
91
|
};
|
|
91
92
|
})
|
|
92
93
|
}) {
|
|
93
|
-
static Fake = Layer.effect(this, Effect.sync(() => {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
});
|
|
113
|
-
}));
|
|
94
|
+
static Fake = Layer.effect(this, Effect.sync(() => CUPS.of({
|
|
95
|
+
print: (buffer, printerId, ...options) => InfraLogger
|
|
96
|
+
.logInfo("Printing to fake printer")
|
|
97
|
+
.pipe(Effect.andThen(Effect.sync(() => ({ stdout: "fake", stderr: "" }))), Effect
|
|
98
|
+
.annotateLogs({
|
|
99
|
+
printerId,
|
|
100
|
+
"options": pretty(options),
|
|
101
|
+
"bufferSize": buffer.byteLength.toString()
|
|
102
|
+
})),
|
|
103
|
+
printFile: (filePath, printerId, ...options) => InfraLogger
|
|
104
|
+
.logInfo("Printing to fake printer")
|
|
105
|
+
.pipe(Effect.andThen(Effect.sync(() => ({ stdout: "fake", stderr: "" }))), Effect
|
|
106
|
+
.annotateLogs({
|
|
107
|
+
printerId,
|
|
108
|
+
filePath,
|
|
109
|
+
"options": pretty(options)
|
|
110
|
+
})),
|
|
111
|
+
getAvailablePrinters: Effect.sync(() => [])
|
|
112
|
+
})));
|
|
114
113
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DVVBTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUE7QUFHNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUMvQixNQUFNLENBQUMsT0FBTyxDQUNaLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxPQUFPLEVBQUUsQ0FBQyxFQUM3QyxNQUFNLENBQUMsR0FBRyxDQUNSLE1BQU07S0FDSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ25DLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDekYsQ0FDRixDQUFBO0FBSUgsU0FBUyxTQUFTLENBQUMsT0FBa0MsRUFBRSxPQUFpQjtJQUN0RSxPQUFPLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDckUsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsT0FBa0MsRUFBRSxPQUFpQjtJQUN6RixPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUVELFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFnQixFQUFFLE9BQWtDLEVBQUUsT0FBaUI7SUFDOUYsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQzlCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDcEMsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLE9BQU8sT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFBO1FBQzFCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDeEIsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUFBO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLFFBQVEsR0FBRyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDN0MsT0FBTztJQUNQLElBQUksQ0FBQztRQUNILEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sR0FBRyxDQUFBO0lBQ1gsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUM3RCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLE1BQW1CLEVBQUUsT0FBcUIsRUFBRSxFQUFFLENBQzVGLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFFcEQsU0FBUyxXQUFXLENBQUMsT0FBc0IsRUFBRSxPQUFpQjtJQUM1RCxPQUFPLENBQUMsTUFBbUIsRUFBRSxFQUFFLENBQzdCLCtCQUErQixDQUFDLE1BQU0sQ0FBQztTQUNwQyxJQUFJLENBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQ2QsQ0FBQTtBQUNQLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLElBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN0RixPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDOUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7YUFDOUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBc0M7SUFDNUQsSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDakIsTUFBTSxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMzQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ25DLE1BQU0sRUFBRSxNQUFNO1NBQ1gsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNoQixJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDN0IsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUN0QjtDQUNKLENBQUMsQ0FBQTtBQUVGLE1BQU0sT0FBTyxJQUFLLFNBQVEsVUFBVSxDQUFDLE9BQU8sRUFBUSxDQUFDLGlCQUFpQixFQUFFO0lBQ3RFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN4QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUE7UUFDaEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEQsU0FBUyxLQUFLLENBQUMsTUFBbUIsRUFBRSxTQUFvQixFQUFFLEdBQUcsT0FBaUI7WUFDNUUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixFQUFFLEVBQUUsU0FBUztnQkFDYixHQUFHLEVBQUUsU0FBUzthQUNmLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDWCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN2QixDQUFDO1FBQ0QsT0FBTztZQUNMLEtBQUs7WUFDTCxTQUFTLEVBQUUsQ0FBQyxRQUFnQixFQUFFLFNBQW9CLEVBQUUsR0FBRyxPQUFpQixFQUFFLEVBQUUsQ0FDMUUsU0FBUyxDQUFDO2dCQUNSLEVBQUUsRUFBRSxTQUFTO2dCQUNiLEdBQUcsRUFBRSxTQUFTO2FBQ2YsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDdkIsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQztTQUM1RCxDQUFBO0lBQ0gsQ0FBQyxDQUFDO0NBQ0gsQ0FBQztJQUNBLE1BQU0sQ0FBVSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDakMsSUFBSSxFQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQ2YsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNOLEtBQUssRUFBRSxDQUFDLE1BQW1CLEVBQUUsU0FBb0IsRUFBRSxHQUFHLE9BQWlCLEVBQUUsRUFBRSxDQUN6RSxXQUFXO2FBQ1IsT0FBTyxDQUFDLDBCQUEwQixDQUFDO2FBQ25DLElBQUksQ0FDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNuRSxNQUFNO2FBQ0gsWUFBWSxDQUFDO1lBQ1osU0FBUztZQUNULFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQzFCLFlBQVksRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtTQUMzQyxDQUFDLENBQ0w7UUFDTCxTQUFTLEVBQUUsQ0FBQyxRQUFnQixFQUFFLFNBQW9CLEVBQUUsR0FBRyxPQUFpQixFQUFFLEVBQUUsQ0FDMUUsV0FBVzthQUNSLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQzthQUNuQyxJQUFJLENBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbkUsTUFBTTthQUNILFlBQVksQ0FBQztZQUNaLFNBQVM7WUFDVCxRQUFRO1lBQ1IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDM0IsQ0FBQyxDQUNMO1FBQ0wsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7S0FDNUMsQ0FBQyxDQUNILENBQ0YsQ0FBQSJ9
|
package/dist/Emailer/Sendgrid.js
CHANGED
|
@@ -24,10 +24,10 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
|
|
|
24
24
|
};
|
|
25
25
|
yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)));
|
|
26
26
|
const ret = yield* Effect
|
|
27
|
-
.
|
|
27
|
+
.callback((resume) => void sgMail.send(renderedMsg, // sue me
|
|
28
28
|
msg.isMultiple ?? true, (err, result) => err
|
|
29
|
-
?
|
|
30
|
-
:
|
|
29
|
+
? resume(Effect.fail(err))
|
|
30
|
+
: resume(Effect.sync(() => result))))
|
|
31
31
|
.pipe(Effect.mapError((raw) => new SendMailError({ raw })));
|
|
32
32
|
// const event = {
|
|
33
33
|
// name: "EmailSent",
|
|
@@ -80,19 +80,20 @@ function renderFake(addr, makeId) {
|
|
|
80
80
|
email: `test+${makeId()}@nomizz.com`
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
-
const eq = Equivalence.mapInput(Equivalence.
|
|
83
|
+
const eq = Equivalence.mapInput(Equivalence.String, (to) => typeof to === "string" ? to.toLowerCase() : to.email.toLowerCase());
|
|
84
|
+
function isEmailDataArray(md) {
|
|
85
|
+
return globalThis.Array.isArray(md);
|
|
86
|
+
}
|
|
84
87
|
// TODO: should just not add any already added email address
|
|
85
88
|
// https://stackoverflow.com/a/53603076/11595834
|
|
86
89
|
function renderFakeIfTest(addr, makeId) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
? renderFake(addr, makeId)
|
|
92
|
-
: addr;
|
|
90
|
+
if (isEmailDataArray(addr)) {
|
|
91
|
+
return Array.dedupeWith(addr.map((x) => (isTestAddress(x) ? renderFake(x, makeId) : x)), eq);
|
|
92
|
+
}
|
|
93
|
+
return isTestAddress(addr) ? renderFake(addr, makeId) : addr;
|
|
93
94
|
}
|
|
94
95
|
function renderMailData(md) {
|
|
95
|
-
if (
|
|
96
|
+
if (isEmailDataArray(md)) {
|
|
96
97
|
return md.map(renderMailData).join(", ");
|
|
97
98
|
}
|
|
98
99
|
if (typeof md === "string") {
|
|
@@ -100,4 +101,4 @@ function renderMailData(md) {
|
|
|
100
101
|
}
|
|
101
102
|
return md.email;
|
|
102
103
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRW1haWxlci9TZW5kZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBaUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXBILE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFrQixFQUFFLEVBQUUsQ0FDeEcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDZixNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUV4QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUEwQjtZQUMzRSxNQUFNLEdBQUcsR0FBYSxjQUFjLENBQUM7Z0JBQ25DLEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO2dCQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2FBQ2xFLENBQUMsQ0FB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
|
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js";
|
|
2
2
|
import type { ResponseError } from "@sendgrid/mail";
|
|
3
|
-
import {
|
|
3
|
+
import { type Effect, type NonEmptyReadonlyArray, type Redacted, ServiceMap } from "effect-app";
|
|
4
4
|
import type { Email } from "effect-app/Schema";
|
|
5
|
-
declare const SendMailError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
5
|
+
declare const SendMailError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").MatchRecord<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }, void, { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
6
6
|
readonly _tag: "SendMailError";
|
|
7
7
|
} & Readonly<A>;
|
|
8
8
|
export declare class SendMailError extends SendMailError_base<{
|
|
9
9
|
readonly raw: Error | ResponseError;
|
|
10
10
|
}> {
|
|
11
11
|
}
|
|
12
|
-
declare const Emailer_base:
|
|
13
|
-
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>;
|
|
14
|
-
}) => Readonly<{
|
|
15
|
-
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>;
|
|
16
|
-
}> & Context.TagClassShape<"effect-app/Emailer", {
|
|
17
|
-
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>;
|
|
18
|
-
}>) & {
|
|
19
|
-
toLayer: <E, R>(eff: Effect.Effect<Omit<Emailer, keyof Context.TagClassShape<any, any>>, E, R>) => import("effect/Layer").Layer<Emailer, E, R>;
|
|
20
|
-
toLayerScoped: <E, R_1>(eff: Effect.Effect<Omit<Emailer, keyof Context.TagClassShape<any, any>>, E, R_1>) => import("effect/Layer").Layer<Emailer, E, Exclude<R_1, import("effect/Scope").Scope>>;
|
|
21
|
-
of: (service: Omit<Emailer, keyof Context.TagClassShape<any, any>>) => Emailer;
|
|
22
|
-
} & Context.Tag<Emailer, Emailer> & Context.ServiceUse<Emailer, {
|
|
12
|
+
declare const Emailer_base: ServiceMap.OpaqueClass<Emailer, "effect-app/Emailer", {
|
|
23
13
|
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>;
|
|
24
14
|
}>;
|
|
25
15
|
export declare class Emailer extends Emailer_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Emailer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Emailer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAQ,KAAK,MAAM,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACrG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;;;;AAE9C,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,aAAa,CAAA;CACpC,CAAC;CAAG;;cAGO,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;;AAD7E,qBAAa,OAAQ,SAAQ,YAEH;CAAG;AAE7B,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,SAAS,CAAA;IACtB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CAClC;AACD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;AAE1E,MAAM,MAAM,YAAY,GACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GACxD;IACA,EAAE,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAChD,EAAE,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IACjD,GAAG,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,EAAE,SAAS,CAAA;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IACxF,OAAO,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,CAAA;AAEhB,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,YAAY,CAAA"}
|
package/dist/Emailer/service.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Data, ServiceMap } from "effect-app";
|
|
2
2
|
export class SendMailError extends Data.TaggedError("SendMailError") {
|
|
3
3
|
}
|
|
4
|
-
export class Emailer extends
|
|
4
|
+
export class Emailer extends ServiceMap.Opaque()("effect-app/Emailer") {
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLElBQUksRUFBMEQsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBR3JHLE1BQU0sT0FBTyxhQUFjLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBRWpFO0NBQUc7QUFFTCxNQUFNLE9BQU8sT0FBUSxTQUFRLFVBQVUsQ0FBQyxNQUFNLEVBRTFDLENBQUMsb0JBQW9CLENBQUM7Q0FBRyJ9
|
package/dist/MainFiberSet.d.ts
CHANGED
|
@@ -1,44 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const MainFiberSet_base:
|
|
1
|
+
import { Effect, Fiber, Layer, ServiceMap } from "effect-app";
|
|
2
|
+
declare const MainFiberSet_base: ServiceMap.ServiceClass<MainFiberSet, "MainFiberSet", {
|
|
3
3
|
interrupt: Effect.Effect<void, never, never>;
|
|
4
4
|
join: Effect.Effect<void, never, never>;
|
|
5
|
-
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.
|
|
6
|
-
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.
|
|
7
|
-
add: (...fibers: Fiber.
|
|
8
|
-
addAll: (fibers: readonly Fiber.
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, never>, never, R>;
|
|
20
|
-
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
21
|
-
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
22
|
-
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
23
|
-
}>) & {
|
|
24
|
-
toLayer: {
|
|
25
|
-
(): Layer.Layer<MainFiberSet, never, import("effect/Scope").Scope>;
|
|
26
|
-
<E_1, R_1>(eff: Effect.Effect<Omit<MainFiberSet, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<MainFiberSet, E_1, R_1>;
|
|
27
|
-
};
|
|
28
|
-
toLayerScoped: {
|
|
29
|
-
(): Layer.Layer<MainFiberSet, never, never>;
|
|
30
|
-
<E_1, R_2>(eff: Effect.Effect<Omit<MainFiberSet, keyof Context.TagClassShape<any, any>>, E_1, R_2>): Layer.Layer<MainFiberSet, E_1, Exclude<R_2, import("effect/Scope").Scope>>;
|
|
31
|
-
};
|
|
32
|
-
of: (service: Context.TagClassShape<any, any>) => MainFiberSet;
|
|
33
|
-
make: Effect.Effect<MainFiberSet, never, import("effect/Scope").Scope>;
|
|
34
|
-
} & Context.Tag<MainFiberSet, MainFiberSet> & Context.ServiceUse<MainFiberSet, {
|
|
35
|
-
interrupt: Effect.Effect<void, never, never>;
|
|
36
|
-
join: Effect.Effect<void, never, never>;
|
|
37
|
-
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.RuntimeFiber<void, never>, never, R>;
|
|
38
|
-
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
39
|
-
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
40
|
-
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
41
|
-
}>;
|
|
5
|
+
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never, R>;
|
|
6
|
+
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
|
|
7
|
+
add: (...fibers: Fiber.Fiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
8
|
+
addAll: (fibers: readonly Fiber.Fiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
9
|
+
}> & {
|
|
10
|
+
readonly make: Effect.Effect<{
|
|
11
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
12
|
+
join: Effect.Effect<void, never, never>;
|
|
13
|
+
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never, R>;
|
|
14
|
+
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
|
|
15
|
+
add: (...fibers: Fiber.Fiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
16
|
+
addAll: (fibers: readonly Fiber.Fiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
17
|
+
}, never, import("effect/Scope").Scope>;
|
|
18
|
+
};
|
|
42
19
|
/**
|
|
43
20
|
* Whenever you fork long running (e.g worker) fibers via e.g `Effect.forkScoped` or `Effect.forkDaemon`
|
|
44
21
|
* you should register these long running fibers in a FiberSet, and join them at the end of your main program.
|
|
@@ -47,8 +24,8 @@ declare const MainFiberSet_base: (abstract new (service: {
|
|
|
47
24
|
export declare class MainFiberSet extends MainFiberSet_base {
|
|
48
25
|
static readonly Live: Layer.Layer<MainFiberSet, never, never>;
|
|
49
26
|
static readonly JoinLive: Layer.Layer<never, never, never>;
|
|
50
|
-
static readonly run: <A, R>(self: Effect.Effect<A, never, R>) => Effect.Effect<Fiber.
|
|
51
|
-
static readonly forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.
|
|
27
|
+
static readonly run: <A, R>(self: Effect.Effect<A, never, R>) => Effect.Effect<Fiber.Fiber<A, never>, never, MainFiberSet | R>;
|
|
28
|
+
static readonly forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never, MainFiberSet | R>;
|
|
52
29
|
}
|
|
53
30
|
export {};
|
|
54
31
|
//# sourceMappingURL=MainFiberSet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../src/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../src/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;;;;uBAwC3C,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;qBAhCvC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAE3B,SAAS,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;2BA8BlC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;yBAhCvC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBAE3B,SAAS,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;AAiD9D;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAA4D;IAC5F,MAAM,CAAC,QAAQ,CAAC,IAAI,0CAAgC;IACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAIvB;IACD,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,mEACH;IAC1D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sEACF;CACxE"}
|
package/dist/MainFiberSet.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, Fiber, FiberSet, Layer, ServiceMap } from "effect-app";
|
|
2
2
|
import { InfraLogger } from "./logger.js";
|
|
3
3
|
import { reportNonInterruptedFailureCause } from "./QueueMaker/errors.js";
|
|
4
4
|
import { setRootParentSpan } from "./RequestFiberSet.js";
|
|
5
5
|
const make = Effect.gen(function* () {
|
|
6
6
|
const set = yield* FiberSet.make();
|
|
7
|
-
const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.
|
|
8
|
-
const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.
|
|
7
|
+
const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)));
|
|
8
|
+
const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)));
|
|
9
9
|
const join = FiberSet.size(set).pipe(Effect.andThen((count) => InfraLogger.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), Effect.andThen(FiberSet.join(set)));
|
|
10
10
|
const run = FiberSet.run(set);
|
|
11
11
|
// const waitUntilEmpty = Effect.gen(function*() {
|
|
@@ -29,7 +29,7 @@ const make = Effect.gen(function* () {
|
|
|
29
29
|
* Reports and then swallows errors.
|
|
30
30
|
*/
|
|
31
31
|
function forkDaemonReport(self) {
|
|
32
|
-
return self.pipe(Effect.asVoid, Effect.
|
|
32
|
+
return self.pipe(Effect.asVoid, Effect.catchCause(reportNonInterruptedFailureCause({})), setRootParentSpan, Effect.uninterruptible, run);
|
|
33
33
|
}
|
|
34
34
|
return {
|
|
35
35
|
interrupt,
|
|
@@ -45,10 +45,10 @@ const make = Effect.gen(function* () {
|
|
|
45
45
|
* you should register these long running fibers in a FiberSet, and join them at the end of your main program.
|
|
46
46
|
* This way any errors will blow up the main program instead of fibers dying unknowingly.
|
|
47
47
|
*/
|
|
48
|
-
export class MainFiberSet extends
|
|
49
|
-
static Live = this.
|
|
50
|
-
static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
|
|
51
|
-
static run = (self) => this.
|
|
52
|
-
static forkDaemonReport = (self) => this.
|
|
48
|
+
export class MainFiberSet extends ServiceMap.Service()("MainFiberSet", { make }) {
|
|
49
|
+
static Live = Layer.effect(this, this.make);
|
|
50
|
+
static JoinLive = this.asEffect().pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
|
|
51
|
+
static run = (self) => this.asEffect().pipe(Effect.andThen((_) => _.run(self)));
|
|
52
|
+
static forkDaemonReport = (self) => this.asEffect().pipe(Effect.andThen((_) => _.forkDaemonReport(self)));
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXhELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQy9CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQWtCLENBQUE7SUFDbEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQW1DLEVBQUUsRUFBRSxDQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQTRDLEVBQUUsRUFBRSxDQUM5RCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUsscUNBQXFDLENBQUMsQ0FBQyxFQUN0RyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbkMsQ0FBQTtJQUNELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFN0Isa0RBQWtEO0lBQ2xELGtEQUFrRDtJQUNsRCw2QkFBNkI7SUFDN0IsYUFBYTtJQUNiLE1BQU07SUFDTixtRkFBbUY7SUFDbkYsOEVBQThFO0lBQzlFLHlEQUF5RDtJQUN6RCxLQUFLO0lBRUwsK0RBQStEO0lBQy9ELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFekM7Ozs7Ozs7O09BUUc7SUFDSCxTQUFTLGdCQUFnQixDQUFVLElBQTRCO1FBQzdELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FDZCxNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDdkQsaUJBQWlCLEVBQ2pCLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLEdBQUcsQ0FDSixDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU87UUFDTCxTQUFTO1FBQ1QsSUFBSTtRQUNKLGdCQUFnQjtRQUNoQixHQUFHO1FBQ0gsR0FBRztRQUNILE1BQU07S0FDUCxDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxVQUFVLENBQUMsT0FBTyxFQUFnQixDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVGLE1BQU0sQ0FBVSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BELE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUM3QixLQUFLLENBQUMsYUFBYSxFQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDekIsQ0FBQTtJQUNELE1BQU0sQ0FBVSxHQUFHLEdBQUcsQ0FBTyxJQUFnQyxFQUFFLEVBQUUsQ0FDL0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxRCxNQUFNLENBQVUsZ0JBQWdCLEdBQUcsQ0FBVSxJQUE0QixFQUFFLEVBQUUsQ0FDM0UsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/ext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,MAAM,EAAQ,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/ext.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,10 @@ import { runTerm } from "effect-app/Pure";
|
|
|
6
6
|
import { AnyPureDSL } from "../dsl.js";
|
|
7
7
|
import * as Q from "../query.js";
|
|
8
8
|
export const extendRepo = (repo) => {
|
|
9
|
-
const get = (id) =>
|
|
9
|
+
const get = (id) => repo.find(id).pipe(Effect.flatMap(Option.match({
|
|
10
|
+
onNone: () => Effect.fail(new NotFoundError({ type: repo.itemType, id })),
|
|
11
|
+
onSome: Effect.succeed
|
|
12
|
+
})));
|
|
10
13
|
function saveManyWithPure_(items, pure) {
|
|
11
14
|
return saveAllWithEffectInt(runTerm(pure, [...items]));
|
|
12
15
|
}
|
|
@@ -19,7 +22,7 @@ export const extendRepo = (repo) => {
|
|
|
19
22
|
return Effect.flatMap(gen, ([items, events, a]) => repo.saveAndPublish(items, events).pipe(Effect.map(() => a)));
|
|
20
23
|
}
|
|
21
24
|
function saveManyWithPureBatched_(items, pure, batchSize = 100) {
|
|
22
|
-
return Effect.forEach(Array.
|
|
25
|
+
return Effect.forEach(Array.chunksOf(items, batchSize), (batch) => saveAllWithEffectInt(runTerm(pure, batch)));
|
|
23
26
|
}
|
|
24
27
|
const queryAndSavePure = (q, pure, batch) => repo.query(q).pipe(Effect.andThen((_) => Array.isArray(_)
|
|
25
28
|
? batch === undefined
|
|
@@ -27,20 +30,20 @@ export const extendRepo = (repo) => {
|
|
|
27
30
|
: saveManyWithPureBatched_(_, pure, batch === "batched" ? 100 : batch)
|
|
28
31
|
: saveWithPure_(_, pure)));
|
|
29
32
|
const saveManyWithPure = (items, pure, batch) => batch
|
|
30
|
-
? Effect.forEach(Array.
|
|
33
|
+
? Effect.forEach(Array.chunksOf(items, batch === "batched" ? 100 : batch), (batch) => saveAllWithEffectInt(runTerm(pure, batch)))
|
|
31
34
|
: saveAllWithEffectInt(runTerm(pure, [...items]));
|
|
32
35
|
const byIdAndSaveWithPure = (id, pure) => get(id).pipe(Effect.flatMap((item) => saveWithPure_(item, pure)));
|
|
33
36
|
const _request = Request.tagged(`Get${repo.itemType}`);
|
|
34
37
|
const requestResolver = RequestResolver
|
|
35
|
-
.
|
|
38
|
+
.make((entries, _key) => repo.query(Q.where(repo.idKey, "in", entries.map((_) => _.request.id)))
|
|
36
39
|
// TODO
|
|
37
|
-
.pipe(Effect.andThen((items) => Effect.forEach(
|
|
38
|
-
.findFirst(items, (_) => _[repo.idKey] ===
|
|
40
|
+
.pipe(Effect.andThen((items) => Effect.forEach(entries, (entry) => Request.complete(Array
|
|
41
|
+
.findFirst(items, (_) => _[repo.idKey] === entry.request.id)
|
|
39
42
|
.pipe(Option.match({
|
|
40
|
-
onNone: () => Exit.fail(new NotFoundError({ type: repo.itemType, id:
|
|
43
|
+
onNone: () => Exit.fail(new NotFoundError({ type: repo.itemType, id: entry.request.id })),
|
|
41
44
|
onSome: Exit.succeed
|
|
42
|
-
}))), { discard: true })), Effect
|
|
43
|
-
.
|
|
45
|
+
})))(entry), { discard: true })), Effect
|
|
46
|
+
.catchCause((cause) => Effect.forEach(entries, (entry) => Request.complete(Exit.failCause(cause))(entry), { discard: true }))))
|
|
44
47
|
.pipe(RequestResolver.batchN(20));
|
|
45
48
|
const exts = {
|
|
46
49
|
request: (id) => Effect.request(_request({ id }), requestResolver),
|
|
@@ -59,4 +62,4 @@ export const extendRepo = (repo) => {
|
|
|
59
62
|
...exts
|
|
60
63
|
};
|
|
61
64
|
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01vZGVsL1JlcG9zaXRvcnkvZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFzQixNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0RyxPQUFPLEVBQTBCLGFBQWEsRUFBdUMsTUFBTSwwQkFBMEIsQ0FBQTtBQUNySCxPQUFPLEVBQTZCLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFHdEMsT0FBTyxLQUFLLENBQUMsTUFBTSxhQUFhLENBQUE7QUFHaEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBU3hCLElBQXFFLEVBQ3JFLEVBQUU7SUFDRixNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQVksRUFBRSxFQUFFLENBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTztLQUN2QixDQUFDLENBQUMsQ0FDSixDQUFBO0lBQ0gsU0FBUyxpQkFBaUIsQ0FPeEIsS0FBbUIsRUFDbkIsSUFBdUU7UUFFdkUsT0FBTyxvQkFBb0IsQ0FDekIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FDMUIsQ0FBQTtJQUNILENBQUM7SUFF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
|