@effect-app/infra 0.83.11 → 0.84.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.content +2 -36
- package/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.hash +1 -1
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.content +6 -24
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.hash +1 -1
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.content +40 -75
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.hash +1 -1
- package/.cache/effect/1bfd92946b11da4292f2ed99dc0e322462b60559148f9524abc20e26f70779e1.hash +1 -1
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.content +1 -3
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.hash +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.content +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.hash +1 -1
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.content +7 -15
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.hash +1 -1
- package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.hash +1 -1
- package/.cache/effect/8594f0f42afc0641b00e88998000cc47382a1d07da31f4a148f7976701ca22d5.hash +1 -1
- package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.hash +1 -1
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.content +1 -5
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.hash +1 -1
- package/CHANGELOG.md +23 -0
- package/_cjs/_ext/Array.cjs +3 -2
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +11 -10
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +3 -2
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +4 -3
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +24 -22
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -20
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +1 -1
- package/_cjs/api/routing.cjs +55 -53
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +3 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +5 -4
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -10
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +8 -8
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +2 -1
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +4 -4
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +5 -5
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +4 -4
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +8 -7
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +13 -11
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -4
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +31 -29
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +7 -6
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +18 -17
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +16 -15
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +17 -16
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +35 -33
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +11 -10
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +49 -46
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +19 -18
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +27 -25
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +16 -14
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +6 -5
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +13 -13
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +19 -17
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +9 -8
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +11 -9
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +20 -18
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +11 -10
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +5 -5
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +18 -17
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/authorization.jwt.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +2 -2
- package/_src/api/express/routing.ts.bak +8 -8
- package/_src/api/express/schema/requestHandler.ts +12 -12
- package/_src/api/express/schema/routing.ts +11 -11
- package/_src/api/routing.ts +14 -13
- package/_src/errorReporter.ts +1 -1
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +5 -5
- package/_src/services/QueueMaker/errors.ts +1 -1
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/QueueMaker/sbqueue.ts +1 -1
- package/_src/services/Repository.ts +9 -9
- package/_src/services/RepositoryBase.ts +8 -6
- package/_src/services/RequestContextContainer.ts +1 -1
- package/_src/services/Store/Cosmos.ts +17 -12
- package/_src/services/Store/Disk.ts +4 -4
- package/_src/services/Store/Memory.ts +4 -4
- package/_src/services/Store/Redis.ts +1 -1
- package/_src/services/Store/index.test.ts.bak +5 -5
- package/_src/services/Store/index.ts +1 -1
- package/_src/services/Store/utils.ts +16 -16
- package/_src/services/simpledb/diskdb.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/_src/services/simpledb/redisdb.ts +1 -1
- package/_src/services/simpledb/shared.ts +1 -1
- package/_src/services/simpledb/simpledb.ts +3 -3
- package/dist/RequestContext.d.ts +20 -20
- package/dist/_ext/Array.js +4 -3
- package/dist/api/defaultErrorHandler.js +12 -11
- package/dist/api/express/makeJsonSchema.js +4 -3
- package/dist/api/express/makeOpenApiSpecs.js +5 -4
- package/dist/api/express/schema/requestHandler.d.ts +1 -1
- package/dist/api/express/schema/requestHandler.js +35 -33
- package/dist/api/express/schema/routing.d.ts +1 -1
- package/dist/api/express/schema/routing.js +23 -21
- package/dist/api/reportError.d.ts +3 -3
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +1 -1
- package/dist/api/routing.d.ts +2 -2
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +59 -57
- package/dist/api/setupRequest.d.ts +1 -1
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +4 -3
- package/dist/api/writeDocs.js +6 -5
- package/dist/errorReporter.js +12 -11
- package/dist/errors.d.ts +7 -7
- package/dist/errors.js +9 -9
- package/dist/filter.d.ts.map +1 -1
- package/dist/instrument.js +3 -2
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +5 -5
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +6 -6
- package/dist/logger/shared.js +5 -5
- package/dist/rateLimit.d.ts +2 -2
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +9 -8
- package/dist/services/Emailer/Sendgrid.d.ts +1 -1
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +16 -14
- package/dist/services/Emailer/fake.d.ts +1 -1
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +6 -5
- package/dist/services/Emailer/service.d.ts +2 -2
- package/dist/services/Operations/live.d.ts +1 -1
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +39 -37
- package/dist/services/Operations/service.d.ts +7 -7
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +1 -1
- package/dist/services/QueueMaker/errors.d.ts +4 -4
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +7 -6
- package/dist/services/QueueMaker/memQueue.d.ts +1 -1
- package/dist/services/QueueMaker/memQueue.js +17 -16
- package/dist/services/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +16 -15
- package/dist/services/Repository.d.ts +8 -8
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +18 -17
- package/dist/services/RepositoryBase.d.ts +24 -75
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +37 -35
- package/dist/services/RequestContextContainer.d.ts +4 -4
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +14 -13
- package/dist/services/Store/Cosmos.d.ts +2 -2
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +54 -51
- package/dist/services/Store/Disk.d.ts +2 -2
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +20 -19
- package/dist/services/Store/Memory.d.ts +3 -3
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +28 -26
- package/dist/services/Store/Redis.d.ts +2 -2
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +17 -15
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +7 -6
- package/dist/services/Store/service.d.ts +5 -5
- package/dist/services/Store/service.js +2 -2
- package/dist/services/Store/utils.d.ts +3 -3
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +21 -21
- package/dist/services/simpledb/cosmosdb.d.ts +2 -2
- package/dist/services/simpledb/cosmosdb.d.ts.map +1 -1
- package/dist/services/simpledb/cosmosdb.js +19 -17
- package/dist/services/simpledb/diskdb.d.ts +2 -2
- package/dist/services/simpledb/diskdb.d.ts.map +1 -1
- package/dist/services/simpledb/diskdb.js +10 -9
- package/dist/services/simpledb/memdb.d.ts +3 -3
- package/dist/services/simpledb/memdb.d.ts.map +1 -1
- package/dist/services/simpledb/memdb.js +13 -11
- package/dist/services/simpledb/mongodb.d.ts +2 -2
- package/dist/services/simpledb/mongodb.d.ts.map +1 -1
- package/dist/services/simpledb/mongodb.js +16 -14
- package/dist/services/simpledb/redisdb.d.ts +8 -8
- package/dist/services/simpledb/redisdb.d.ts.map +1 -1
- package/dist/services/simpledb/redisdb.js +12 -11
- package/dist/services/simpledb/shared.d.ts +13 -13
- package/dist/services/simpledb/shared.js +6 -6
- package/dist/services/simpledb/simpledb.d.ts +4 -4
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +16 -15
- package/package.json +5 -5
|
@@ -7,8 +7,7 @@ import type { Repository, RequestCTX } from "./Repository.js";
|
|
|
7
7
|
import type { RequestContextContainer } from "./RequestContextContainer.js";
|
|
8
8
|
import { ContextMap, StoreMaker } from "./Store.js";
|
|
9
9
|
import type { Filter, StoreConfig, Where } from "./Store.js";
|
|
10
|
-
import type {
|
|
11
|
-
import type { Schema } from "@effect-app/prelude";
|
|
10
|
+
import type { Option, Schema } from "@effect-app/prelude";
|
|
12
11
|
import type { InvalidStateError, OptimisticConcurrencyException } from "../errors.js";
|
|
13
12
|
/**
|
|
14
13
|
* A base for creating an abstract class usable as Tag, Companion and interface to create your own implementation.
|
|
@@ -20,19 +19,19 @@ export declare const RepositoryBase: <Service>() => <T extends {
|
|
|
20
19
|
_etag: string | undefined;
|
|
21
20
|
}, Evt, ItemType extends string>(itemType: ItemType) => ((abstract new () => {
|
|
22
21
|
itemType: ItemType;
|
|
23
|
-
find: (id: T["id"]) =>
|
|
24
|
-
all:
|
|
25
|
-
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt>
|
|
22
|
+
find: (id: T["id"]) => Effect<ContextMap | RequestContextContainer, never, Option<T>>;
|
|
23
|
+
all: Effect<ContextMap, never, T[]>;
|
|
24
|
+
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<ContextMap | RequestContextContainer, InvalidStateError | OptimisticConcurrencyException, void>;
|
|
26
25
|
utils: {
|
|
27
26
|
mapReverse: (pm: PM, setEtag: (id: string, eTag: string | undefined) => void) => unknown;
|
|
28
27
|
parse: (a: unknown, env?: ParserEnv | undefined) => T;
|
|
29
|
-
all:
|
|
28
|
+
all: Effect<ContextMap, never, PM[]>;
|
|
30
29
|
filter: (filter: Filter<PM>, cursor?: {
|
|
31
30
|
limit?: number;
|
|
32
31
|
skip?: number;
|
|
33
|
-
}) =>
|
|
32
|
+
}) => Effect<ContextMap, never, PM[]>;
|
|
34
33
|
};
|
|
35
|
-
removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>
|
|
34
|
+
removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<ContextMap | RequestContextContainer, never, void>;
|
|
36
35
|
}) & {
|
|
37
36
|
where: (makeWhere: (f: {
|
|
38
37
|
<TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
|
|
@@ -60,10 +59,10 @@ export declare const RepositoryBase: <Service>() => <T extends {
|
|
|
60
59
|
readonly S: PM;
|
|
61
60
|
};
|
|
62
61
|
}) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
|
|
63
|
-
flatMap<R1, E1, B>(f: (a: Service) =>
|
|
62
|
+
flatMap<R1, E1, B>(f: (a: Service) => Effect<R1, E1, B>): Effect<Service | R1, E1, B>;
|
|
64
63
|
map<B_1>(f: (a: Service) => B_1): import("effect/Effect").Effect<Service, never, B_1>;
|
|
65
|
-
makeLayer(svc: Service): import("effect/Layer")
|
|
66
|
-
}) & import("effect/Context").Tag<Service, Service>;
|
|
64
|
+
makeLayer(svc: Service): import("effect/Layer")<never, never, Service>;
|
|
65
|
+
}) & import("effect/Context.int").Tag<Service, Service>;
|
|
67
66
|
/**
|
|
68
67
|
* A base implementation to create a repository.
|
|
69
68
|
*/
|
|
@@ -75,7 +74,7 @@ export declare function makeRepo<PM extends {
|
|
|
75
74
|
}, ConstructorInput, Api, E extends {
|
|
76
75
|
id: string;
|
|
77
76
|
}>(name: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => {
|
|
78
|
-
make: (publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?:
|
|
77
|
+
make: (publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?: Effect<never, never, readonly T[]>, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
79
78
|
partitionValue?: ((a: PM) => string) | undefined;
|
|
80
79
|
}) | undefined) => import("effect/Effect").Effect<StoreMaker, never, Repository<T, PM, Evt, ItemType>>;
|
|
81
80
|
where: (makeWhere: (f: {
|
|
@@ -151,7 +150,7 @@ export declare function makeStore<PM extends {
|
|
|
151
150
|
id: string;
|
|
152
151
|
}, ConstructorInput, Api, E extends {
|
|
153
152
|
id: string;
|
|
154
|
-
}>(name: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapTo: (e: E, etag: string | undefined) => PM) => (makeInitial?:
|
|
153
|
+
}>(name: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapTo: (e: E, etag: string | undefined) => PM) => (makeInitial?: Effect<never, never, readonly T[]>, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
155
154
|
partitionValue?: ((a: PM) => string) | undefined;
|
|
156
155
|
}) | undefined) => import("effect/Effect").Effect<StoreMaker, never, import("./Store.js").Store<PM, string>>;
|
|
157
156
|
export declare const RepositoryBaseImpl: <Service>() => <PM extends {
|
|
@@ -161,38 +160,13 @@ export declare const RepositoryBaseImpl: <Service>() => <PM extends {
|
|
|
161
160
|
id: string;
|
|
162
161
|
}, ConstructorInput, Api, E extends {
|
|
163
162
|
id: string;
|
|
164
|
-
}>(itemType: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => (abstract new () => Repository<T, PM, Evt, ItemType>) & import("effect/Context").Tag<Service, Service> & {
|
|
165
|
-
make(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?:
|
|
163
|
+
}>(itemType: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => (abstract new () => Repository<T, PM, Evt, ItemType>) & import("effect/Context.int").Tag<Service, Service> & {
|
|
164
|
+
make(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?: Effect<never, never, readonly T[]>, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
166
165
|
partitionValue?: ((a: PM) => string) | undefined;
|
|
167
|
-
}) | undefined):
|
|
168
|
-
where:
|
|
169
|
-
<TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
|
|
170
|
-
key: string;
|
|
171
|
-
t: Val extends {
|
|
172
|
-
t: "in" | "not-in";
|
|
173
|
-
v: readonly any[];
|
|
174
|
-
} | {
|
|
175
|
-
t: "eq" | "not-eq";
|
|
176
|
-
v: any;
|
|
177
|
-
} ? Val["t"] : never;
|
|
178
|
-
value: Val extends {
|
|
179
|
-
t: "in" | "not-in";
|
|
180
|
-
v: readonly any[];
|
|
181
|
-
} | {
|
|
182
|
-
t: "eq" | "not-eq";
|
|
183
|
-
v: any;
|
|
184
|
-
} ? Val["v"] : never;
|
|
185
|
-
readonly S: PM;
|
|
186
|
-
};
|
|
187
|
-
<TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
|
|
188
|
-
key: string;
|
|
189
|
-
t: "eq";
|
|
190
|
-
value: A_1;
|
|
191
|
-
readonly S: PM;
|
|
192
|
-
};
|
|
193
|
-
}) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
|
|
166
|
+
}) | undefined): Effect<StoreMaker, never, Repository<T, PM, Evt, ItemType>>;
|
|
167
|
+
where: ReturnType<typeof makeWhere<PM>>;
|
|
194
168
|
flatMap: <R1, E1, B>(f: (a: Service) => import("effect/Effect").Effect<R1, E1, B>) => import("effect/Effect").Effect<Service | R1, E1, B>;
|
|
195
|
-
makeLayer: (svc: Service) =>
|
|
169
|
+
makeLayer: (svc: Service) => Layer<never, never, Service>;
|
|
196
170
|
map: <B_1>(f: (a: Service) => B_1) => import("effect/Effect").Effect<Service, never, B_1>;
|
|
197
171
|
};
|
|
198
172
|
export declare const RepositoryDefaultImpl: <Service>() => <PM extends {
|
|
@@ -202,42 +176,17 @@ export declare const RepositoryDefaultImpl: <Service>() => <PM extends {
|
|
|
202
176
|
id: string;
|
|
203
177
|
}, ConstructorInput, Api, E extends {
|
|
204
178
|
id: string;
|
|
205
|
-
}>(itemType: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => import("effect/Context").Tag<Service, Service> & {
|
|
179
|
+
}>(itemType: ItemType, schema: Schema.Schema<unknown, T, ConstructorInput, E, Api>, mapFrom: (pm: Omit<PM, "_etag">) => E, mapTo: (e: E, etag: string | undefined) => PM) => import("effect/Context.int").Tag<Service, Service> & {
|
|
206
180
|
new (impl: Repository<T, PM, Evt, ItemType>): Repository<T, PM, Evt, ItemType>;
|
|
207
|
-
make(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?:
|
|
181
|
+
make(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?: Effect<never, never, readonly T[]>, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
208
182
|
partitionValue?: ((a: PM) => string) | undefined;
|
|
209
|
-
}) | undefined):
|
|
210
|
-
toLayer(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?:
|
|
183
|
+
}) | undefined): Effect<StoreMaker, never, Repository<T, PM, Evt, ItemType>>;
|
|
184
|
+
toLayer(publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<RequestCTX, never, void>, makeInitial?: Effect<never, never, readonly T[]>, config?: (Omit<StoreConfig<PM>, "partitionValue"> & {
|
|
211
185
|
partitionValue?: ((a: PM) => string) | undefined;
|
|
212
|
-
}) | undefined):
|
|
213
|
-
where:
|
|
214
|
-
<TFieldName extends import("../filter/types/path/eager.js").Path<PM>, A extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName>, Val>(path: TFieldName, value: (v: A) => Val): {
|
|
215
|
-
key: string;
|
|
216
|
-
t: Val extends {
|
|
217
|
-
t: "in" | "not-in";
|
|
218
|
-
v: readonly any[];
|
|
219
|
-
} | {
|
|
220
|
-
t: "eq" | "not-eq";
|
|
221
|
-
v: any;
|
|
222
|
-
} ? Val["t"] : never;
|
|
223
|
-
value: Val extends {
|
|
224
|
-
t: "in" | "not-in";
|
|
225
|
-
v: readonly any[];
|
|
226
|
-
} | {
|
|
227
|
-
t: "eq" | "not-eq";
|
|
228
|
-
v: any;
|
|
229
|
-
} ? Val["v"] : never;
|
|
230
|
-
readonly S: PM;
|
|
231
|
-
};
|
|
232
|
-
<TFieldName_1 extends import("../filter/types/path/eager.js").Path<PM>, A_1 extends import("../filter/types/path/eager.js").PathValue<PM, TFieldName_1>>(path: TFieldName_1, value: A_1): {
|
|
233
|
-
key: string;
|
|
234
|
-
t: "eq";
|
|
235
|
-
value: A_1;
|
|
236
|
-
readonly S: PM;
|
|
237
|
-
};
|
|
238
|
-
}) => Where | readonly [Where, ...Where[]], mode?: "or" | "and") => Filter<PM>;
|
|
186
|
+
}) | undefined): Layer<StoreMaker, never, Service>;
|
|
187
|
+
where: ReturnType<typeof makeWhere<PM>>;
|
|
239
188
|
flatMap: <R1, E1, B>(f: (a: Service) => import("effect/Effect").Effect<R1, E1, B>) => import("effect/Effect").Effect<Service | R1, E1, B>;
|
|
240
|
-
makeLayer: (svc: Service) =>
|
|
189
|
+
makeLayer: (svc: Service) => Layer<never, never, Service>;
|
|
241
190
|
map: <B_1>(f: (a: Service) => B_1) => import("effect/Effect").Effect<Service, never, B_1>;
|
|
242
191
|
repo: Repository<T, PM, Evt, ItemType>;
|
|
243
192
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepositoryBase.d.ts","sourceRoot":"","sources":["../../_src/services/RepositoryBase.ts"],"names":[],"mappings":";;;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"RepositoryBase.d.ts","sourceRoot":"","sources":["../../_src/services/RepositoryBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,17 @@ import * as tsplus_module_2 from "effect/Layer";
|
|
|
3
3
|
import * as tsplus_module_3 from "@effect-app/prelude/service";
|
|
4
4
|
import * as tsplus_module_4 from "@effect-app/prelude/schema";
|
|
5
5
|
import * as tsplus_module_5 from "@effect-app/schema/custom/_api/condemn";
|
|
6
|
-
import * as tsplus_module_6 from "
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/
|
|
8
|
-
import * as tsplus_module_8 from "effect/
|
|
9
|
-
import * as tsplus_module_9 from "
|
|
10
|
-
import * as tsplus_module_10 from "effect/
|
|
11
|
-
import * as tsplus_module_11 from "effect/
|
|
12
|
-
import * as tsplus_module_12 from "
|
|
13
|
-
import * as tsplus_module_13 from "@effect-app/
|
|
14
|
-
import * as tsplus_module_14 from "@effect-app/
|
|
6
|
+
import * as tsplus_module_6 from "effect/Effect.impl";
|
|
7
|
+
import * as tsplus_module_7 from "@effect-app/prelude/_ext/misc";
|
|
8
|
+
import * as tsplus_module_8 from "@effect-app/core/Array";
|
|
9
|
+
import * as tsplus_module_9 from "effect/Chunk.int";
|
|
10
|
+
import * as tsplus_module_10 from "@effect-app/core/EffectX";
|
|
11
|
+
import * as tsplus_module_11 from "effect/ReadonlyArray.int";
|
|
12
|
+
import * as tsplus_module_12 from "effect/Option.impl";
|
|
13
|
+
import * as tsplus_module_13 from "@effect-app/core/_ext/Iterable";
|
|
14
|
+
import * as tsplus_module_14 from "@effect-app/infra/services/Repository";
|
|
15
|
+
import * as tsplus_module_15 from "@effect-app/core/Function";
|
|
16
|
+
import * as tsplus_module_16 from "effect/Layer.int";
|
|
15
17
|
import { ContextMap, StoreMaker } from "./Store.js";
|
|
16
18
|
import { makeCodec } from "@effect-app/infra/api/codec";
|
|
17
19
|
import { makeFilters } from "@effect-app/infra/filter";
|
|
@@ -26,13 +28,13 @@ export const RepositoryBase = () => {
|
|
|
26
28
|
this.itemType = itemType;
|
|
27
29
|
}
|
|
28
30
|
static flatMap(f) {
|
|
29
|
-
return tsplus_module_1.flatMap(this, f);
|
|
31
|
+
return tsplus_module_1.Effect.flatMap(this, f);
|
|
30
32
|
}
|
|
31
33
|
static map(f) {
|
|
32
|
-
return tsplus_module_1.map(this, f);
|
|
34
|
+
return tsplus_module_1.Effect.map(this, f);
|
|
33
35
|
}
|
|
34
36
|
static makeLayer(svc) {
|
|
35
|
-
return tsplus_module_2.succeed(this, svc);
|
|
37
|
+
return tsplus_module_2.Layer.succeed(this, svc);
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
RepositoryBaseC.where = makeWhere();
|
|
@@ -54,38 +56,38 @@ export function makeRepo() {
|
|
|
54
56
|
}
|
|
55
57
|
const mkStore = makeStore()(name, schema, mapTo);
|
|
56
58
|
function make(publishEvents, makeInitial, config) {
|
|
57
|
-
return
|
|
58
|
-
const allE =
|
|
59
|
+
return tsplus_module_6.map(mkStore(makeInitial, config), store => {
|
|
60
|
+
const allE = tsplus_module_6.flatMap(store.all, (items) => tsplus_module_6.map(ContextMap, ({ set }) => items.map((_) => mapReverse(_, set))));
|
|
59
61
|
const parse = tsplus_module_5.condemnDie(EParserFor(schema));
|
|
60
|
-
const all =
|
|
62
|
+
const all = tsplus_module_6.flatMap(allE, (_) => tsplus_module_13.ext_forEach(_, (_) => parse(_)));
|
|
61
63
|
function findE(id) {
|
|
62
|
-
return
|
|
63
|
-
.find(id), (items) =>
|
|
64
|
+
return tsplus_module_6.flatMap(store
|
|
65
|
+
.find(id), (items) => tsplus_module_6.map(ContextMap, ({ set }) => tsplus_module_12.map(items, (_) => mapReverse(_, set))));
|
|
64
66
|
}
|
|
65
67
|
function find(id) {
|
|
66
|
-
return
|
|
68
|
+
return tsplus_module_10.flatMapOption(findE(id), tsplus_module_5.condemnDie(EParserFor(schema)));
|
|
67
69
|
}
|
|
68
|
-
const saveAllE = (a) =>
|
|
69
|
-
const items =
|
|
70
|
-
return
|
|
70
|
+
const saveAllE = (a) => tsplus_module_10.flatMapOption(tsplus_module_1.Effect.sync(() => tsplus_module_8.CollectionToNonEmptyReadonlyArray(a)), (a) => tsplus_module_6.flatMap(ContextMap, ({ get, set }) => {
|
|
71
|
+
const items = tsplus_module_11.map(a, (_) => mapToPersistenceModel(_, get));
|
|
72
|
+
return tsplus_module_6.map(store.batchSet(items), ret => {
|
|
71
73
|
ret.forEach((_) => set(_.id, _._etag));
|
|
72
74
|
});
|
|
73
75
|
}));
|
|
74
76
|
const encode = tsplus_module_4.Encoder.for(schema);
|
|
75
|
-
const saveAll = (a) => saveAllE(
|
|
76
|
-
const saveAndPublish = (items, events = []) =>
|
|
77
|
+
const saveAll = (a) => saveAllE(tsplus_module_9.map(tsplus_module_8.ext_itToChunk(a), encode));
|
|
78
|
+
const saveAndPublish = (items, events = []) => tsplus_module_6.zipRight(tsplus_module_10.flatMapOption(tsplus_module_1.Effect.sync(() => tsplus_module_8.CollectionToNonEmptyReadonlyArray(events))
|
|
77
79
|
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
78
80
|
, publishEvents))(saveAll(items));
|
|
79
81
|
function removeAndPublish(a, events = []) {
|
|
80
|
-
return tsplus_module_1.gen(function* ($) {
|
|
82
|
+
return tsplus_module_1.Effect.gen(function* ($) {
|
|
81
83
|
const { get, set } = yield* $(ContextMap);
|
|
82
|
-
const items =
|
|
84
|
+
const items = tsplus_module_9.map(tsplus_module_8.ext_itToChunk(a), encode);
|
|
83
85
|
// TODO: we should have a batchRemove on store so the adapter can actually batch...
|
|
84
86
|
for (const e of items) {
|
|
85
87
|
yield* $(store.remove(mapToPersistenceModel(e, get)));
|
|
86
88
|
set(e.id, undefined);
|
|
87
89
|
}
|
|
88
|
-
yield* $(
|
|
90
|
+
yield* $(tsplus_module_10.flatMapOption(tsplus_module_1.Effect.sync(() => tsplus_module_8.CollectionToNonEmptyReadonlyArray(events))
|
|
89
91
|
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
90
92
|
, publishEvents));
|
|
91
93
|
});
|
|
@@ -97,9 +99,9 @@ export function makeRepo() {
|
|
|
97
99
|
utils: {
|
|
98
100
|
mapReverse,
|
|
99
101
|
parse: tsplus_module_5.unsafe(tsplus_module_4.Parser.for(schema)),
|
|
100
|
-
filter:
|
|
101
|
-
.filter, (_) =>
|
|
102
|
-
all:
|
|
102
|
+
filter: tsplus_module_7.flow(store
|
|
103
|
+
.filter, (_) => tsplus_module_6.tap(_, (items) => ContextMap.map(({ set }) => items.forEach((_) => set(_.id, _._etag))))),
|
|
104
|
+
all: tsplus_module_6.tap(store.all, (items) => ContextMap.map(({ set }) => items.forEach((_) => set(_.id, _._etag))))
|
|
103
105
|
},
|
|
104
106
|
itemType: name,
|
|
105
107
|
find,
|
|
@@ -121,7 +123,7 @@ export function makeRepo() {
|
|
|
121
123
|
* @tsplus fluent Repository removeById
|
|
122
124
|
*/
|
|
123
125
|
export function removeById(self, id) {
|
|
124
|
-
return
|
|
126
|
+
return tsplus_module_6.flatMap(tsplus_module_14.get(self, id), (_) => self.removeAndPublish([_]));
|
|
125
127
|
}
|
|
126
128
|
export function makeWhere() {
|
|
127
129
|
const f_ = makeFilters();
|
|
@@ -149,14 +151,14 @@ export function makeStore() {
|
|
|
149
151
|
const [_dec, encode] = makeCodec(schema);
|
|
150
152
|
function encodeToPM() {
|
|
151
153
|
const getEtag = () => undefined;
|
|
152
|
-
return
|
|
154
|
+
return tsplus_module_15.flow(encode, (v) => mapToPersistenceModel(v, getEtag));
|
|
153
155
|
}
|
|
154
156
|
function mapToPersistenceModel(e, getEtag) {
|
|
155
157
|
return mapTo(e, getEtag(e.id));
|
|
156
158
|
}
|
|
157
159
|
function makeStore(makeInitial, config) {
|
|
158
|
-
return
|
|
159
|
-
?
|
|
160
|
+
return tsplus_module_6.flatMap(StoreMaker, ({ make }) => tsplus_module_6.map(make(pluralize(name), makeInitial
|
|
161
|
+
? tsplus_module_6.map(makeInitial, (_) => _.map(encodeToPM()))
|
|
160
162
|
: undefined, {
|
|
161
163
|
...config,
|
|
162
164
|
partitionValue: config?.partitionValue
|
|
@@ -179,7 +181,7 @@ export const RepositoryDefaultImpl = () => {
|
|
|
179
181
|
return () => (itemType, schema, mapFrom, mapTo) => {
|
|
180
182
|
return class extends RepositoryBaseImpl()()(itemType, schema, mapFrom, mapTo) {
|
|
181
183
|
static toLayer(publishEvents, makeInitial, config) {
|
|
182
|
-
return
|
|
184
|
+
return tsplus_module_16.effect(this)(tsplus_module_6.map(this.make(publishEvents, makeInitial, config), (impl) => new this(impl)));
|
|
183
185
|
}
|
|
184
186
|
constructor(impl) {
|
|
185
187
|
super();
|
|
@@ -188,4 +190,4 @@ export const RepositoryDefaultImpl = () => {
|
|
|
188
190
|
}; // TODO: seems to be a compiler bug, it somehow says its missing toLayer and repo...
|
|
189
191
|
};
|
|
190
192
|
};
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcG9zaXRvcnlCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUluRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUd2RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFZLEVBQUU7SUFDMUMsT0FBTyxDQUNMLFFBQWtCLEVBQ2xCLEVBQUU7UUFDRixNQUFlLGVBQWU7WUFBOUI7Z0JBQ0UsYUFBUSxHQUFhLFFBQVEsQ0FBQTtZQThCL0IsQ0FBQztZQVRDLE1BQU0sQ0FBQyxPQUFPLENBQVksQ0FBb0M7Z0JBQzVELE9BQU8sZ0JBQUEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUF3QyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3BFLENBQUM7WUFDRCxNQUFNLENBQUMsR0FBRyxDQUFJLENBQW9CO2dCQUNoQyxPQUFPLGdCQUFBLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBd0MsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNoRSxDQUFDO1lBQ0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFZO2dCQUMzQixPQUFPLGdCQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBd0MsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNyRSxDQUFDOztRQVRNLHFCQUFLLEdBQUcsU0FBUyxFQUFNLEFBQWxCLENBQWtCO1FBV2hDLE9BQU8sZ0JBQUEsU0FBUyxFQUFXLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDOUMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxD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
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { TagClass } from "@effect-app/prelude/service";
|
|
2
2
|
import { Effect } from "effect/Effect";
|
|
3
3
|
import { Context } from "effect/Context";
|
|
4
|
-
import { Option } from "
|
|
4
|
+
import { Option } from "effect/Option";
|
|
5
5
|
import { Ref } from "effect/Ref";
|
|
6
6
|
import { RequestContext } from "../RequestContext.js";
|
|
7
7
|
declare const RequestContextContainer_base: (abstract new () => {}) & {
|
|
8
8
|
flatMap<R1, E1, B>(f: (a: RequestContextContainer) => import("effect/Effect").Effect<R1, E1, B>): import("effect/Effect").Effect<RequestContextContainer | R1, E1, B>;
|
|
9
9
|
map<B_1>(f: (a: RequestContextContainer) => B_1): import("effect/Effect").Effect<RequestContextContainer, never, B_1>;
|
|
10
|
-
makeLayer(svc: RequestContextContainer): import("effect/Layer")
|
|
11
|
-
} & import("effect/Context").Tag<RequestContextContainer, RequestContextContainer>;
|
|
10
|
+
makeLayer(svc: RequestContextContainer): import("effect/Layer")<never, never, RequestContextContainer>;
|
|
11
|
+
} & import("effect/Context.int").Tag<RequestContextContainer, RequestContextContainer>;
|
|
12
12
|
/**
|
|
13
13
|
* @tsplus companion RequestContextContainer.Ops
|
|
14
14
|
*/
|
|
@@ -33,6 +33,6 @@ export declare function live(inp: RequestContext.ConstructorInput): RequestConte
|
|
|
33
33
|
* @tsplus static RequestContext.Ops Tag
|
|
34
34
|
* @tsplus location "@effect-app/infra/services/RequestContextContainer"
|
|
35
35
|
*/
|
|
36
|
-
export declare const RCTag: import("effect/Context").Tag<RequestContext, RequestContext>;
|
|
36
|
+
export declare const RCTag: import("effect/Context.int").Tag<RequestContext, RequestContext>;
|
|
37
37
|
export {};
|
|
38
38
|
//# sourceMappingURL=RequestContextContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../_src/services/RequestContextContainer.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;;;;;AAErD;;GAEG;AACH,8BAAsB,uBAAwB,SAAQ,4BAAmC;IACvF,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;IACtE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACnG,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,uBAAuB,EAAE,KAAK,EAAE,cAAc,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,iGAQnB;CACF;AAED,qBAAa,2BAA4B,SAAQ,uBAAuB;;gBAE1D,GAAG,EAAE,cAAc,CAAC,gBAAgB;IAKhD,IAAa,cAAc,iEAE1B;IAEQ,MAAM,UAAW,cAAc,KAAK,cAAc,kEAA8B;CAC1F;;;;;AAKD,wBAAgB,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,gBAAgB,+BAExD;;;;;AAGD,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../_src/services/RequestContextContainer.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;;;;;AAErD;;GAEG;AACH,8BAAsB,uBAAwB,SAAQ,4BAAmC;IACvF,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;IACtE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACnG,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,uBAAuB,EAAE,KAAK,EAAE,cAAc,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,iGAQnB;CACF;AAED,qBAAa,2BAA4B,SAAQ,uBAAuB;;gBAE1D,GAAG,EAAE,cAAc,CAAC,gBAAgB;IAKhD,IAAa,cAAc,iEAE1B;IAEQ,MAAM,UAAW,cAAc,KAAK,cAAc,kEAA8B;CAC1F;;;;;AAKD,wBAAgB,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,gBAAgB,+BAExD;;;;;AAGD,eAAO,MAAM,KAAK,kEAAwB,CAAA"}
|
|
@@ -11,11 +11,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
11
11
|
};
|
|
12
12
|
var _RequestContextContainerImpl_ref;
|
|
13
13
|
import * as tsplus_module_1 from "@effect-app/prelude/service";
|
|
14
|
-
import * as tsplus_module_2 from "effect/Option";
|
|
15
|
-
import * as tsplus_module_3 from "effect/
|
|
16
|
-
import * as tsplus_module_4 from "
|
|
17
|
-
import * as tsplus_module_5 from "effect/
|
|
18
|
-
import * as tsplus_module_6 from "effect/
|
|
14
|
+
import * as tsplus_module_2 from "effect/Option.impl";
|
|
15
|
+
import * as tsplus_module_3 from "effect/Option";
|
|
16
|
+
import * as tsplus_module_4 from "effect/Effect.impl";
|
|
17
|
+
import * as tsplus_module_5 from "effect/Effect";
|
|
18
|
+
import * as tsplus_module_6 from "effect/Context";
|
|
19
|
+
import * as tsplus_module_7 from "effect/Ref";
|
|
19
20
|
import { RequestContext } from "../RequestContext.js";
|
|
20
21
|
/**
|
|
21
22
|
* @tsplus companion RequestContextContainer.Ops
|
|
@@ -25,20 +26,20 @@ export class RequestContextContainer extends tsplus_module_1.TagClass() {
|
|
|
25
26
|
return RequestContextContainer.flatMap((_) => _.requestContext);
|
|
26
27
|
}
|
|
27
28
|
static get getOption() {
|
|
28
|
-
return
|
|
29
|
-
?
|
|
30
|
-
:
|
|
29
|
+
return tsplus_module_4.flatMap(tsplus_module_5.Effect.contextWith((_) => tsplus_module_6.Context.getOption(_, RequestContextContainer)), (requestContext) => tsplus_module_2.isSome(requestContext)
|
|
30
|
+
? tsplus_module_4.map(requestContext.value.requestContext, tsplus_module_3.Option.some)
|
|
31
|
+
: tsplus_module_5.Effect.sync(() => tsplus_module_3.Option.none()));
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
export class RequestContextContainerImpl extends RequestContextContainer {
|
|
34
35
|
constructor(inp) {
|
|
35
36
|
super();
|
|
36
37
|
_RequestContextContainerImpl_ref.set(this, void 0);
|
|
37
|
-
this.update = (f) =>
|
|
38
|
-
__classPrivateFieldSet(this, _RequestContextContainerImpl_ref,
|
|
38
|
+
this.update = (f) => tsplus_module_7.getAndUpdate(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), f);
|
|
39
|
+
__classPrivateFieldSet(this, _RequestContextContainerImpl_ref, tsplus_module_7.Ref.unsafeMake(new RequestContext(inp)), "f");
|
|
39
40
|
}
|
|
40
41
|
get requestContext() {
|
|
41
|
-
return
|
|
42
|
+
return tsplus_module_7.get(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"));
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
_RequestContextContainerImpl_ref = new WeakMap();
|
|
@@ -49,5 +50,5 @@ export function live(inp) {
|
|
|
49
50
|
return new RequestContextContainerImpl(inp);
|
|
50
51
|
}
|
|
51
52
|
/** @tsplus static RequestContext.Ops Tag */
|
|
52
|
-
export const RCTag =
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
export const RCTag = tsplus_module_6.Tag();
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcXVlc3RDb250ZXh0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLHVCQUF3QixTQUFRLGdCQUFBLFFBQVEsRUFBMkI7SUFHdkYsTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFDRCxNQUFNLEtBQUssU0FBUztRQUNsQixPQUFPLHdCQUFBLGdCQUFBLE1BQU0sQ0FDVixXQUFXLENBQUMsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQyxnQkFBQSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEVBQ3pFLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDMUIsdUJBQUEsY0FBYyxDQUFTO1lBQ3JCLENBQUMsQ0FBQyxvQkFBQSxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBSyxnQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3RELENBQUMsQ0FBQyxnQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFBLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUNyQyxDQUFBO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtJQUV0RSxZQUFZLEdBQW9DO1FBQzlDLEtBQUssRUFBRSxDQUFBO1FBRlQsbURBQXlCO1FBVWhCLFdBQU0sR0FBRyxDQUFDLENBQXdDLEVBQUUsRUFBRSxDQUFDLDZCQUFBLHVCQUFBLElBQUksd0NBQUssRUFBYyxDQUFDLENBQUMsQ0FBQTtRQVB2Rix1QkFBQSxJQUFJLG9DQUFRLGdCQUFBLEdBQUcsQ0FBQyxVQUFVLENBQWlCLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQUEsQ0FBQTtJQUNyRSxDQUFDO0lBRUQsSUFBYSxjQUFjO1FBQ3pCLDJCQUFPLHVCQUFBLElBQUksd0NBQUssRUFBSTtJQUN0QixDQUFDO0NBR0Y7O0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLEdBQW9DO0lBQ3ZELE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxnQkFBQSxHQUFHLEVBQWtCLENBQUEifQ==
|
|
@@ -5,7 +5,7 @@ import { CosmosClient } from "@effect-app/infra-adapters/cosmos-client";
|
|
|
5
5
|
import type { FilterJoinSelect, JoinFindFilter, LegacyFilter, PersistenceModelType, StorageConfig, Store, StoreConfig, StoreWhereFilter, SupportedValues } from "./service.js";
|
|
6
6
|
import { StoreMaker } from "./service.js";
|
|
7
7
|
export declare function makeCosmosStore({ prefix }: StorageConfig): import("effect/Effect").Effect<CosmosClient, never, {
|
|
8
|
-
make: <Id extends string, PM extends PersistenceModelType<Id>>(name: string, seed?:
|
|
8
|
+
make: <Id extends string, PM extends PersistenceModelType<Id>>(name: string, seed?: Effect<never, never, Iterable<PM>>, config?: StoreConfig<PM>) => import("effect/Effect").Effect<never, never, Store<PM, Id>>;
|
|
9
9
|
}>;
|
|
10
10
|
/**
|
|
11
11
|
* @deprecated: should build Select into Where query
|
|
@@ -51,5 +51,5 @@ export declare function buildCosmosQuery<PM>(filter: LegacyFilter<PM> | StoreWhe
|
|
|
51
51
|
value: string | number | boolean | readonly SupportedValues[] | null;
|
|
52
52
|
}[];
|
|
53
53
|
};
|
|
54
|
-
export declare function CosmosStoreLive(config: Config<StorageConfig>): import("effect/Layer")
|
|
54
|
+
export declare function CosmosStoreLive(config: Config<StorageConfig>): import("effect/Layer")<CosmosClient, import("effect/ConfigError"), StoreMaker>;
|
|
55
55
|
//# sourceMappingURL=Cosmos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Cosmos.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAGvE,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa;yEAK3C,MAAM;
|
|
1
|
+
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Cosmos.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAGvE,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa;yEAK3C,MAAM,SACL,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,WAChC,YAAY,EAAE,CAAC;GAwW/B;AAwBD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAaf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAYf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EACvC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAyBf;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAmFf;AAUD,wBAAgB,gBAAgB,CAAC,EAAE,EACjC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAC3C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAOf;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,kFAE5D"}
|