@effect-app/infra 3.10.0 → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, type NonEmptyReadonlyArray, S, ServiceMap } from "effect-app";
|
|
2
2
|
import { type PersistenceModelType, type StoreConfig, StoreMaker } from "../../../Store.js";
|
|
3
3
|
import type { FieldValues } from "../../filter/types.js";
|
|
4
4
|
import * as Q from "../../query.js";
|
|
@@ -6,15 +6,15 @@ import type { Repository } from "../service.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* A base implementation to create a repository.
|
|
8
8
|
*/
|
|
9
|
-
export declare function makeRepoInternal<Evt = never>(): <ItemType extends string, R, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded>(name: ItemType, schema: S.
|
|
9
|
+
export declare function makeRepoInternal<Evt = never>(): <ItemType extends string, R, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded>(name: ItemType, schema: S.Codec<T, Encoded, R>, mapFrom: (pm: Encoded) => Encoded, mapTo: (e: Encoded, etag: string | undefined) => PersistenceModelType<Encoded>, idKey: IdKey) => {
|
|
10
10
|
make: <RInitial = never, E = never, RPublish = never, RCtx = never>(args: [Evt] extends [never] ? {
|
|
11
|
-
schemaContext?:
|
|
11
|
+
schemaContext?: ServiceMap.ServiceMap<RCtx>;
|
|
12
12
|
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
13
13
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
14
14
|
partitionValue?: (e?: Encoded) => string;
|
|
15
15
|
};
|
|
16
16
|
} : {
|
|
17
|
-
schemaContext?:
|
|
17
|
+
schemaContext?: ServiceMap.ServiceMap<RCtx>;
|
|
18
18
|
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect.Effect<void, never, RPublish>;
|
|
19
19
|
makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined;
|
|
20
20
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
@@ -23,7 +23,7 @@ export declare function makeRepoInternal<Evt = never>(): <ItemType extends strin
|
|
|
23
23
|
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx>, RPublish>, E, StoreMaker | R | RInitial>;
|
|
24
24
|
Q: Q.Query<Encoded>;
|
|
25
25
|
};
|
|
26
|
-
export declare function makeStore<Encoded extends FieldValues>(): <ItemType extends string, R, E, T, IdKey extends keyof Encoded>(name: ItemType, schema: S.
|
|
26
|
+
export declare function makeStore<Encoded extends FieldValues>(): <ItemType extends string, R, E, T, IdKey extends keyof Encoded>(name: ItemType, schema: S.Codec<T, E, R>, mapTo: (e: E, etag: string | undefined) => Encoded, idKey: IdKey) => <RInitial = never, EInitial = never>(makeInitial?: Effect.Effect<readonly T[], EInitial, RInitial>, config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
27
27
|
partitionValue?: (e?: Encoded) => string;
|
|
28
28
|
}) => Effect.Effect<import("../../../Store.js").Store<IdKey, Encoded, PersistenceModelType<Encoded>>, EInitial, StoreMaker | R | RInitial>;
|
|
29
29
|
export interface Repos<T, Encoded extends {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../src/Model/Repository/internal/internal.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../src/Model/Repository/internal/internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Array, Chunk,
|
|
1
|
+
import { Array, Chunk, Effect, Equivalence, flow, Option, pipe, Pipeable, PubSub, Result, S, SchemaAST, ServiceMap, Unify } from "effect-app";
|
|
2
2
|
import { toNonEmptyArray } from "effect-app/Array";
|
|
3
3
|
import { NotFoundError } from "effect-app/client/errors";
|
|
4
4
|
import { flatMapOption } from "effect-app/Effect";
|
|
@@ -8,7 +8,7 @@ import { StoreMaker } from "../../../Store.js";
|
|
|
8
8
|
import { getContextMap } from "../../../Store/ContextMapContainer.js";
|
|
9
9
|
import * as Q from "../../query.js";
|
|
10
10
|
import { ValidationError, ValidationResult } from "../validation.js";
|
|
11
|
-
const dedupe = Array.dedupeWith(Equivalence.
|
|
11
|
+
const dedupe = Array.dedupeWith(Equivalence.String);
|
|
12
12
|
/**
|
|
13
13
|
* A base implementation to create a repository.
|
|
14
14
|
*/
|
|
@@ -25,13 +25,13 @@ export function makeRepoInternal() {
|
|
|
25
25
|
function make(args) {
|
|
26
26
|
return Effect
|
|
27
27
|
.gen(function* () {
|
|
28
|
-
const rctx = args.schemaContext ??
|
|
28
|
+
const rctx = args.schemaContext ?? ServiceMap.empty();
|
|
29
29
|
const provideRctx = Effect.provide(rctx);
|
|
30
|
-
const encodeMany = flow(S.
|
|
31
|
-
const decode = flow(S.
|
|
32
|
-
const decodeMany = flow(S.
|
|
30
|
+
const encodeMany = flow(S.encodeEffect(S.Array(schema)), provideRctx, Effect.withSpan("encodeMany", {}, { captureStackTrace: false }));
|
|
31
|
+
const decode = flow(S.decodeEffect(schema), provideRctx);
|
|
32
|
+
const decodeMany = flow(S.decodeEffect(S.Array(schema)), provideRctx);
|
|
33
33
|
const store = yield* mkStore(args.makeInitial, args.config);
|
|
34
|
-
const cms = Effect.
|
|
34
|
+
const cms = Effect.map(getContextMap.pipe(Effect.orDie), (_) => ({
|
|
35
35
|
get: (id) => _.get(`${name}.${id}`),
|
|
36
36
|
set: (id, etag) => _.set(`${name}.${id}`, etag)
|
|
37
37
|
}));
|
|
@@ -51,14 +51,23 @@ export function makeRepoInternal() {
|
|
|
51
51
|
let ast = _.ast;
|
|
52
52
|
if (ast._tag === "Declaration")
|
|
53
53
|
ast = ast.typeParameters[0];
|
|
54
|
-
|
|
54
|
+
// In v4, to get the encoded (from) side of a schema, use SchemaAST.toEncoded
|
|
55
|
+
const pickIdFromAst = (a) => {
|
|
56
|
+
const encoded = SchemaAST.toEncoded(a);
|
|
57
|
+
if (SchemaAST.isObjects(encoded)) {
|
|
58
|
+
const field = encoded.propertySignatures.find((_) => _.name === idKey);
|
|
59
|
+
if (field) {
|
|
60
|
+
return S.Struct({ [idKey]: S.make(field.type) });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return S.make(a);
|
|
64
|
+
};
|
|
55
65
|
return ast._tag === "Union"
|
|
56
|
-
// we need to get the TypeLiteral,
|
|
57
|
-
? S.Union(
|
|
58
|
-
|
|
59
|
-
: s.pipe(S.pick(idKey));
|
|
66
|
+
// we need to get the Objects (TypeLiteral), in case of class it has encoding chain...
|
|
67
|
+
? S.Union(ast.types.map((_) => pickIdFromAst(_)))
|
|
68
|
+
: pickIdFromAst(ast);
|
|
60
69
|
});
|
|
61
|
-
const encodeId = flow(S.
|
|
70
|
+
const encodeId = flow(S.encodeEffect(i), provideRctx);
|
|
62
71
|
const encodeIdOnly = (id) => encodeId({ [idKey]: id }).pipe(Effect.map((_) => _[idKey]));
|
|
63
72
|
const findEId = Effect.fnUntraced(function* (id) {
|
|
64
73
|
yield* Effect.annotateCurrentSpan({ itemId: id });
|
|
@@ -74,10 +83,9 @@ export function makeRepoInternal() {
|
|
|
74
83
|
});
|
|
75
84
|
const find = Effect.fn("find")(function* (id) {
|
|
76
85
|
yield* Effect.annotateCurrentSpan({ itemId: id });
|
|
77
|
-
return yield*
|
|
86
|
+
return yield* flatMapOption(findE(id), (_) => Effect.orDie(decode(_)));
|
|
78
87
|
});
|
|
79
|
-
const saveAllE = (a) => Effect
|
|
80
|
-
.flatMapOption(Effect
|
|
88
|
+
const saveAllE = (a) => flatMapOption(Effect
|
|
81
89
|
.sync(() => toNonEmptyArray([...a])), (a) => Effect.gen(function* () {
|
|
82
90
|
const { get, set } = yield* cms;
|
|
83
91
|
const items = a.map((_) => mapToPersistenceModel(_, get));
|
|
@@ -94,7 +102,7 @@ export function makeRepoInternal() {
|
|
|
94
102
|
return yield* saveAll(it)
|
|
95
103
|
.pipe(Effect.andThen(Effect.sync(() => toNonEmptyArray(evts))),
|
|
96
104
|
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
97
|
-
(_) =>
|
|
105
|
+
(_) => flatMapOption(_, pub), Effect.andThen(PubSub.publish(changeFeed, [Chunk.toArray(it), "save"])), Effect.asVoid);
|
|
98
106
|
});
|
|
99
107
|
const removeAndPublish = Effect.fn("removeAndPublish")(function* (a, events = []) {
|
|
100
108
|
const { set } = yield* cms;
|
|
@@ -102,7 +110,7 @@ export function makeRepoInternal() {
|
|
|
102
110
|
const evts = [...events];
|
|
103
111
|
yield* Effect.annotateCurrentSpan({ itemIds: it.map((_) => _[idKey]), eventCount: evts.length });
|
|
104
112
|
const items = yield* encodeMany(it).pipe(Effect.orDie);
|
|
105
|
-
if (Array.
|
|
113
|
+
if (Array.isReadonlyArrayNonEmpty(items)) {
|
|
106
114
|
yield* store.batchRemove(items.map((_) => (_[idKey])), args.config?.partitionValue?.(items[0]));
|
|
107
115
|
for (const e of items) {
|
|
108
116
|
set(e[idKey], undefined);
|
|
@@ -110,12 +118,12 @@ export function makeRepoInternal() {
|
|
|
110
118
|
yield* Effect
|
|
111
119
|
.sync(() => toNonEmptyArray(evts))
|
|
112
120
|
// TODO: for full consistency the events should be stored within the same database transaction, and then picked up.
|
|
113
|
-
.pipe((_) =>
|
|
114
|
-
yield*
|
|
121
|
+
.pipe((_) => flatMapOption(_, pub));
|
|
122
|
+
yield* PubSub.publish(changeFeed, [it, "remove"]);
|
|
115
123
|
}
|
|
116
124
|
});
|
|
117
125
|
const removeById = Effect.fn("removeById")(function* (...ids) {
|
|
118
|
-
if (!Array.
|
|
126
|
+
if (!Array.isReadonlyArrayNonEmpty(ids)) {
|
|
119
127
|
return;
|
|
120
128
|
}
|
|
121
129
|
const { set } = yield* cms;
|
|
@@ -125,15 +133,15 @@ export function makeRepoInternal() {
|
|
|
125
133
|
for (const id of eids) {
|
|
126
134
|
set(id, undefined);
|
|
127
135
|
}
|
|
128
|
-
yield*
|
|
136
|
+
yield* PubSub.publish(changeFeed, [[], "remove"]);
|
|
129
137
|
});
|
|
130
138
|
const parseMany = (items) => Effect
|
|
131
139
|
.flatMap(cms, (cm) => decodeMany(items.map((_) => mapReverse(_, cm.set)))
|
|
132
|
-
.pipe(Effect.orDie, Effect.withSpan("parseMany", { captureStackTrace: false })));
|
|
140
|
+
.pipe(Effect.orDie, Effect.withSpan("parseMany", {}, { captureStackTrace: false })));
|
|
133
141
|
const parseMany2 = (items, schema) => Effect
|
|
134
142
|
.flatMap(cms, (cm) => S
|
|
135
|
-
.
|
|
136
|
-
.pipe(Effect.orDie, Effect.withSpan("parseMany2", { captureStackTrace: false })));
|
|
143
|
+
.decodeEffect(S.Array(schema))(items.map((_) => mapReverse(_, cm.set)))
|
|
144
|
+
.pipe(Effect.orDie, Effect.withSpan("parseMany2", {}, { captureStackTrace: false })));
|
|
137
145
|
const filter = (args) => store
|
|
138
146
|
.filter(
|
|
139
147
|
// always enforce id and _etag because they are system fields, required for etag tracking etc
|
|
@@ -150,28 +158,30 @@ export function makeRepoInternal() {
|
|
|
150
158
|
const eff = a.mode === "project"
|
|
151
159
|
? filter(a)
|
|
152
160
|
// TODO: mapFrom but need to support per field and dependencies
|
|
153
|
-
.pipe(Effect.andThen(flow(S.
|
|
161
|
+
.pipe(Effect.andThen(flow(S.decodeEffect(S.Array(a.schema ?? schema)), provideRctx)))
|
|
154
162
|
: a.mode === "collect"
|
|
155
163
|
? filter(a)
|
|
156
164
|
// TODO: mapFrom but need to support per field and dependencies
|
|
157
|
-
.pipe(Effect.flatMap(flow(S.
|
|
165
|
+
.pipe(Effect.flatMap(flow(S.decodeEffect(S.Array(a.schema)), Effect.map(Array.getSomes), provideRctx)))
|
|
158
166
|
: Effect.flatMap(filter(a), (_) => Unify.unify(a.schema
|
|
159
167
|
// TODO: partial may not match?
|
|
160
168
|
? parseMany2(_, a.schema)
|
|
161
169
|
: parseMany(_)));
|
|
162
170
|
return pipe(a.ttype === "one"
|
|
163
|
-
? Effect.
|
|
171
|
+
? Effect.flatMap(eff, flow(Array.head, Option.match({
|
|
172
|
+
onNone: () => Effect.fail(new NotFoundError({ id: "query", /* TODO */ type: name })),
|
|
173
|
+
onSome: Effect.succeed
|
|
174
|
+
})))
|
|
164
175
|
: a.ttype === "count"
|
|
165
176
|
? Effect
|
|
166
|
-
.
|
|
167
|
-
.pipe(Effect.catchTag("
|
|
177
|
+
.map(eff, (_) => NonNegativeInt(_.length))
|
|
178
|
+
.pipe(Effect.catchTag("SchemaError", (e) => Effect.die(e)))
|
|
168
179
|
: eff, Effect.withSpan("Repository.query [effect-app/infra]", {
|
|
169
|
-
captureStackTrace: false,
|
|
170
180
|
attributes: {
|
|
171
181
|
"repository.model_name": name,
|
|
172
182
|
query: { ...a, schema: a.schema ? "__SCHEMA__" : a.schema, filter: a.filter }
|
|
173
183
|
}
|
|
174
|
-
}));
|
|
184
|
+
}, { captureStackTrace: false }));
|
|
175
185
|
});
|
|
176
186
|
const validateSample = Effect.fn("validateSample")(function* (options) {
|
|
177
187
|
const percentage = options?.percentage ?? 0.1; // default 10%
|
|
@@ -194,13 +204,13 @@ export function makeRepoInternal() {
|
|
|
194
204
|
continue;
|
|
195
205
|
const rawData = rawResult.value;
|
|
196
206
|
const jitMResult = mapFrom(rawData); // apply jitM
|
|
197
|
-
const decodeResult = yield* S.
|
|
198
|
-
if (
|
|
207
|
+
const decodeResult = yield* S.decodeEffect(schema)(jitMResult).pipe(Effect.result, provideRctx);
|
|
208
|
+
if (Result.isFailure(decodeResult)) {
|
|
199
209
|
errors.push(new ValidationError({
|
|
200
210
|
id,
|
|
201
211
|
rawData,
|
|
202
212
|
jitMResult,
|
|
203
|
-
error: decodeResult.
|
|
213
|
+
error: decodeResult.failure
|
|
204
214
|
}));
|
|
205
215
|
}
|
|
206
216
|
}
|
|
@@ -222,7 +232,7 @@ export function makeRepoInternal() {
|
|
|
222
232
|
removeById,
|
|
223
233
|
validateSample,
|
|
224
234
|
queryRaw(schema, q) {
|
|
225
|
-
const dec = S.
|
|
235
|
+
const dec = S.decodeEffect(S.Array(schema));
|
|
226
236
|
return store.queryRaw(q).pipe(Effect.flatMap(dec));
|
|
227
237
|
},
|
|
228
238
|
query(q) {
|
|
@@ -233,9 +243,9 @@ export function makeRepoInternal() {
|
|
|
233
243
|
* @internal
|
|
234
244
|
*/
|
|
235
245
|
mapped: (schema) => {
|
|
236
|
-
const dec = S.
|
|
237
|
-
const encMany = S.
|
|
238
|
-
const decMany = S.
|
|
246
|
+
const dec = S.decodeEffect(schema);
|
|
247
|
+
const encMany = S.encodeEffect(S.Array(schema));
|
|
248
|
+
const decMany = S.decodeEffect(S.Array(schema));
|
|
239
249
|
return {
|
|
240
250
|
all: allE.pipe(Effect.flatMap(decMany), Effect.map((_) => _)),
|
|
241
251
|
find: (id) => flatMapOption(findE(id), dec),
|
|
@@ -254,7 +264,7 @@ export function makeRepoInternal() {
|
|
|
254
264
|
// })
|
|
255
265
|
// )
|
|
256
266
|
// },
|
|
257
|
-
save: (...xes) => Effect.flatMap(encMany(xes), (_) => saveAllE(_)).pipe(Effect.withSpan("mapped.save", { captureStackTrace: false }))
|
|
267
|
+
save: (...xes) => Effect.flatMap(encMany(xes), (_) => saveAllE(_)).pipe(Effect.withSpan("mapped.save", {}, { captureStackTrace: false }))
|
|
258
268
|
};
|
|
259
269
|
}
|
|
260
270
|
};
|
|
@@ -280,7 +290,7 @@ export function makeStore() {
|
|
|
280
290
|
function makeStore(makeInitial, config) {
|
|
281
291
|
function encodeToEncoded() {
|
|
282
292
|
const getEtag = () => undefined;
|
|
283
|
-
return (t) => S.
|
|
293
|
+
return (t) => S.encodeEffect(schema)(t).pipe(Effect.orDie, Effect.map((_) => mapToPersistenceModel(_, getEtag)));
|
|
284
294
|
}
|
|
285
295
|
function mapToPersistenceModel(e, getEtag) {
|
|
286
296
|
return mapTo(e, getEtag(e[idKey]));
|
|
@@ -303,4 +313,4 @@ export function makeStore() {
|
|
|
303
313
|
return makeStore;
|
|
304
314
|
};
|
|
305
315
|
}
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9pbnRlcm5hbC9pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE4QixNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMzSixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sbUJBQW1CLENBQUE7QUFDL0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDN0UsT0FBTyxFQUFnRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFFckUsT0FBTyxLQUFLLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFcEUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFbkQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCO0lBRzlCLE9BQU8sQ0FPTCxJQUFjLEVBQ2QsTUFBK0IsRUFDL0IsT0FBaUMsRUFDakMsS0FBOEUsRUFDOUUsS0FBWSxFQUNaLEVBQUU7UUFFRixTQUFTLHFCQUFxQixDQUM1QixD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
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9pbnRlcm5hbC9pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBOEIsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDekssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzdFLE9BQU8sRUFBZ0UsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBRXJFLE9BQU8sS0FBSyxDQUFDLE1BQU0sZ0JBQWdCLENBQUE7QUFFbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXBFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBRW5EOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUc5QixPQUFPLENBT0wsSUFBYyxFQUNkLE1BQThCLEVBQzlCLE9BQWlDLEVBQ2pDLEtBQThFLEVBQzlFLEtBQVksRUFDWixFQUFFO1FBRUYsU0FBUyxxQkFB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
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type { Effect, Option,
|
|
1
|
+
import type { Effect, Option, S } from "effect-app";
|
|
2
2
|
import type { OptimisticConcurrencyException } from "effect-app/client/errors";
|
|
3
3
|
export interface Mapped1<A, IdKey extends keyof A, R> {
|
|
4
|
-
all: Effect.Effect<A[],
|
|
5
|
-
save: (...xes: readonly A[]) => Effect.Effect<void, OptimisticConcurrencyException |
|
|
6
|
-
find: (id: A[IdKey]) => Effect.Effect<Option.Option<A>,
|
|
4
|
+
all: Effect.Effect<A[], S.SchemaError, R>;
|
|
5
|
+
save: (...xes: readonly A[]) => Effect.Effect<void, OptimisticConcurrencyException | S.SchemaError, R>;
|
|
6
|
+
find: (id: A[IdKey]) => Effect.Effect<Option.Option<A>, S.SchemaError, R>;
|
|
7
7
|
}
|
|
8
8
|
export interface Mapped2<A, R> {
|
|
9
|
-
all: Effect.Effect<A[],
|
|
9
|
+
all: Effect.Effect<A[], S.SchemaError, R>;
|
|
10
10
|
}
|
|
11
11
|
export interface Mapped<Encoded> {
|
|
12
|
-
<A, R, IdKey extends keyof A>(schema: S.
|
|
13
|
-
<A, Encoded2, R>(schema: S.
|
|
12
|
+
<A, R, IdKey extends keyof A>(schema: S.Codec<A, Encoded, R>): Mapped1<A, IdKey, R>;
|
|
13
|
+
<A, Encoded2, R>(schema: S.Codec<A, Encoded2, R>): Mapped2<A, R>;
|
|
14
14
|
}
|
|
15
15
|
export interface MM<Repo, Encoded> {
|
|
16
|
-
<A, R, IdKey extends keyof A>(schema: S.
|
|
17
|
-
<A, Encoded2, R>(schema: S.
|
|
16
|
+
<A, R, IdKey extends keyof A>(schema: S.Codec<A, Encoded, R>): Effect.Effect<Mapped1<A, IdKey, R>, never, Repo>;
|
|
17
|
+
<A, Encoded2, R>(schema: S.Codec<A, Encoded2, R>): Effect.Effect<Mapped2<A, R>, never, Repo>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=legacy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/legacy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/legacy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAA;AAE9E,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,EAAE,CAAC;IAClD,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACzC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,8BAA8B,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACtG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;CAC1E;AAGD,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,MAAM,CAAC,OAAO;IAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAEnF,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACjE;AAED,MAAM,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO;IAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAE/G,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAC7F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect, type NonEmptyReadonlyArray, type S, type ServiceMap } from "effect-app";
|
|
2
2
|
import type { StoreConfig, StoreMaker } from "../../Store.js";
|
|
3
3
|
import type { FieldValues } from "../filter/types.js";
|
|
4
4
|
import { type ExtendedRepository } from "./ext.js";
|
|
@@ -30,7 +30,7 @@ export interface RepositoryOptions<IdKey extends keyof T & keyof Encoded, Encode
|
|
|
30
30
|
* Optional context to be provided to Schema decode/encode.
|
|
31
31
|
* Useful for effectful transformations like XWithItems, where items is a transformation retrieving elements from another database table or other source.
|
|
32
32
|
*/
|
|
33
|
-
schemaContext?:
|
|
33
|
+
schemaContext?: ServiceMap.ServiceMap<RCtx>;
|
|
34
34
|
overrides?: (repo: Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>) => Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
@@ -41,9 +41,9 @@ export interface RepositoryOptions<IdKey extends keyof T & keyof Encoded, Encode
|
|
|
41
41
|
* @returns a Repository
|
|
42
42
|
*/
|
|
43
43
|
export declare const makeRepo: {
|
|
44
|
-
<ItemType extends string, RSchema, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded, E = never, Evt = never, RInitial = never, RPublish = never, RCtx = never>(itemType: ItemType, schema: S.
|
|
44
|
+
<ItemType extends string, RSchema, Encoded extends FieldValues, T, IdKey extends keyof T & keyof Encoded, E = never, Evt = never, RInitial = never, RPublish = never, RCtx = never>(itemType: ItemType, schema: S.Codec<T, Encoded, RSchema>, options: RepositoryOptions<IdKey, Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>): Effect.Effect<ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>, E, RInitial | StoreMaker>;
|
|
45
45
|
<ItemType extends string, RSchema, Encoded extends FieldValues, T extends {
|
|
46
46
|
id: unknown;
|
|
47
|
-
}, E = never, Evt = never, RInitial = never, RPublish = never, RCtx = never>(itemType: ItemType, schema: S.
|
|
47
|
+
}, E = never, Evt = never, RInitial = never, RPublish = never, RCtx = never>(itemType: ItemType, schema: S.Codec<T, Encoded, RSchema>, options: Omit<RepositoryOptions<"id", Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>, "idKey">): Effect.Effect<ExtendedRepository<T, Encoded, Evt, ItemType, "id", Exclude<RSchema, RCtx>, RPublish>, E, RInitial | StoreMaker>;
|
|
48
48
|
};
|
|
49
49
|
//# sourceMappingURL=makeRepo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeRepo.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/makeRepo.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"makeRepo.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/makeRepo.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,4 +21,4 @@ export const makeRepo = (itemType, schema, options) => Effect.gen(function* () {
|
|
|
21
21
|
const repo = extendRepo(r);
|
|
22
22
|
return repo;
|
|
23
23
|
});
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9tYWtlUmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELDBEQUEwRDtBQUMxRCw0REFBNEQ7QUFDNUQsdURBQXVEO0FBS3ZELE9BQU8sRUFBRSxNQUFNLEVBQXVELE1BQU0sWUFBWSxDQUFBO0FBR3hGLE9BQU8sRUFBMkIsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBZ0R6RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBd0NqQixDQVlGLFFBQWtCLEVBQ2xCLE1BQW9DLEVBQ3BDLE9BRUMsRUFDRCxFQUFFLENBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDbEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQU8sQ0FDcEMsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFDdEQsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDL0IsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFXLENBQzdCLENBQUE7SUFDRCxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUE4QixPQUFjLENBQUMsQ0FBQTtJQUN2RSxJQUFJLE9BQU8sQ0FBQyxTQUFTO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFCLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFDLENBQUEifQ==
|
|
@@ -14,18 +14,18 @@ export interface Repository<T, Encoded extends FieldValues, Evt, ItemType extend
|
|
|
14
14
|
readonly changeFeed: PubSub.PubSub<[T[], "save" | "remove"]>;
|
|
15
15
|
readonly removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect.Effect<void, never, RSchema | RPublish>;
|
|
16
16
|
readonly removeById: (...id: readonly T[IdKey][]) => Effect.Effect<void, never, RSchema>;
|
|
17
|
-
readonly queryRaw: <T, Out, R>(schema: S.
|
|
17
|
+
readonly queryRaw: <T, Out, R>(schema: S.Codec<T, Out, R>, raw: RawQuery<Encoded, Out>) => Effect.Effect<readonly T[], S.SchemaError, R>;
|
|
18
18
|
readonly query: {
|
|
19
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", E extends boolean = false>(q: (initial: Query<Encoded>) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
20
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
21
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
22
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
23
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
24
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
25
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
26
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
27
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
28
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never, $I = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => $I, q10: (_: $I) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.
|
|
19
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", E extends boolean = false>(q: (initial: Query<Encoded>) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
20
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
21
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
22
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
23
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
24
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
25
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
26
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
27
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
28
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many", $A = never, $B = never, $C = never, $D = never, $E = never, $F = never, $G = never, $H = never, $I = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => $C, q4: (_: $C) => $D, q5: (_: $D) => $E, q6: (_: $E) => $F, q7: (_: $F) => $G, q8: (_: $G) => $H, q9: (_: $H) => $I, q10: (_: $I) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.SchemaError), R | RSchema>;
|
|
29
29
|
<R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, E extends boolean = false>(q: (initial: Query<Encoded>) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>): Effect.Effect<TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, R | RSchema>;
|
|
30
30
|
<R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>): Effect.Effect<TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, R | RSchema>;
|
|
31
31
|
<R = never, TType extends "one" | "many" = "many", EncodedRefined extends Encoded = Encoded, $A = never, $B = never, E extends boolean = false>(q1: (initial: Query<Encoded>) => $A, q2: (_: $A) => $B, q3: (_: $B) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>): Effect.Effect<TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>, TType extends "many" ? never : NotFoundError<ItemType>, R | RSchema>;
|