@effect-app/infra 0.221.0 → 0.223.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 +21 -0
- package/_cjs/services/Operations.cjs +3 -2
- package/_cjs/services/Operations.cjs.map +1 -1
- package/_cjs/services/Repository/ext.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +6 -4
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +1 -0
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/dist/services/Operations.d.ts +1 -0
- package/dist/services/Operations.d.ts.map +1 -1
- package/dist/services/Operations.js +4 -3
- package/dist/services/Repository/ext.d.ts +42 -15
- package/dist/services/Repository/ext.d.ts.map +1 -1
- package/dist/services/Repository/ext.js +1 -1
- package/dist/services/Repository/service.d.ts +3 -2
- package/dist/services/Repository/service.d.ts.map +1 -1
- package/dist/services/RepositoryBase.d.ts +81 -86
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +11 -7
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +1 -1
- package/dist/services/Store/Disk.d.ts +3 -1
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +1 -1
- package/dist/services/Store/Memory.d.ts +9 -3
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +2 -2
- package/dist/services/Store/service.d.ts +37 -18
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +1 -1
- package/dist/services/Store/utils.d.ts +6 -2
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +1 -1
- package/dist/services/query/new-kid-interpreter.d.ts +1 -1
- package/package.json +10 -10
- package/src/services/Operations.ts +4 -2
- package/src/services/Repository/ext.ts +28 -29
- package/src/services/Repository/service.ts +2 -3
- package/src/services/RepositoryBase.ts +177 -169
- package/src/services/Store/Cosmos.ts +13 -12
- package/src/services/Store/Disk.ts +12 -11
- package/src/services/Store/Memory.ts +13 -12
- package/src/services/Store/index.test.ts.bak +3 -3
- package/src/services/Store/service.ts +22 -19
- package/src/services/Store/utils.ts +2 -2
- package/test/query.test.ts +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect-app";
|
|
2
2
|
import { type FixEnv } from "effect-app/Pure";
|
|
3
3
|
import { NotFoundError } from "../../errors.js";
|
|
4
|
-
import type { PersistenceModelType } from "../../services/Store.js";
|
|
5
4
|
import type { RepositoryBaseC } from "../RepositoryBase.js";
|
|
6
5
|
import type { Repository } from "./service.js";
|
|
7
6
|
/**
|
|
@@ -9,19 +8,25 @@ import type { Repository } from "./service.js";
|
|
|
9
8
|
*/
|
|
10
9
|
export declare function get<T extends {
|
|
11
10
|
id: unknown;
|
|
12
|
-
},
|
|
11
|
+
}, Encoded extends {
|
|
12
|
+
id: string;
|
|
13
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, id: T["id"]): Effect.Effect<T, NotFoundError<ItemType>, never>;
|
|
13
14
|
/**
|
|
14
15
|
* @tsplus getter Repository log
|
|
15
16
|
*/
|
|
16
17
|
export declare function log<T extends {
|
|
17
18
|
id: unknown;
|
|
18
|
-
},
|
|
19
|
+
}, Encoded extends {
|
|
20
|
+
id: string;
|
|
21
|
+
}, Evt, ItemType extends string>(_: RepositoryBaseC<T, Encoded, Evt, ItemType>): (evt: Evt) => import("effect-app/Pure").PureLogT<any>;
|
|
19
22
|
/**
|
|
20
23
|
* @tsplus fluent Repository byIdAndSaveWithPure
|
|
21
24
|
*/
|
|
22
25
|
export declare function byIdAndSaveWithPure<T extends {
|
|
23
26
|
id: unknown;
|
|
24
|
-
},
|
|
27
|
+
}, Encoded extends {
|
|
28
|
+
id: string;
|
|
29
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, id: T["id"]): <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | NotFoundError<ItemType> | E, Exclude<R, {
|
|
25
30
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
26
31
|
}>>;
|
|
27
32
|
/**
|
|
@@ -30,7 +35,9 @@ export declare function byIdAndSaveWithPure<T extends {
|
|
|
30
35
|
*/
|
|
31
36
|
export declare function handleByIdAndSaveWithPure<T extends {
|
|
32
37
|
id: unknown;
|
|
33
|
-
},
|
|
38
|
+
}, Encoded extends {
|
|
39
|
+
id: string;
|
|
40
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): <Req extends {
|
|
34
41
|
id: T["id"];
|
|
35
42
|
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E | NotFoundError<ItemType>, Exclude<R, {
|
|
36
43
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
@@ -40,7 +47,9 @@ export declare function handleByIdAndSaveWithPure<T extends {
|
|
|
40
47
|
*/
|
|
41
48
|
export declare function saveManyWithPure_<R, T extends {
|
|
42
49
|
id: unknown;
|
|
43
|
-
},
|
|
50
|
+
}, Encoded extends {
|
|
51
|
+
id: string;
|
|
52
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
44
53
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
45
54
|
}>>;
|
|
46
55
|
/**
|
|
@@ -48,18 +57,24 @@ export declare function saveManyWithPure_<R, T extends {
|
|
|
48
57
|
*/
|
|
49
58
|
export declare function saveWithPure_<R, T extends {
|
|
50
59
|
id: unknown;
|
|
51
|
-
},
|
|
60
|
+
}, Encoded extends {
|
|
61
|
+
id: string;
|
|
62
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
52
63
|
env: import("effect-app/Pure").PureEnv<Evt, S1, S2>;
|
|
53
64
|
}>>;
|
|
54
65
|
export declare function saveAllWithEffectInt<T extends {
|
|
55
66
|
id: unknown;
|
|
56
|
-
},
|
|
67
|
+
}, Encoded extends {
|
|
68
|
+
id: string;
|
|
69
|
+
}, P extends T, Evt, ItemType extends string, R, E, A>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>): Effect.Effect<A, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, R>;
|
|
57
70
|
/**
|
|
58
71
|
* @tsplus fluent Repository saveManyWithPureBatched
|
|
59
72
|
*/
|
|
60
73
|
export declare function saveManyWithPureBatched<T extends {
|
|
61
74
|
id: unknown;
|
|
62
|
-
},
|
|
75
|
+
}, Encoded extends {
|
|
76
|
+
id: string;
|
|
77
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) => (items: Iterable<S1>) => Effect.Effect<A[], import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
63
78
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
64
79
|
}>>;
|
|
65
80
|
/**
|
|
@@ -67,7 +82,9 @@ export declare function saveManyWithPureBatched<T extends {
|
|
|
67
82
|
*/
|
|
68
83
|
export declare function saveManyWithPureBatched_<R, T extends {
|
|
69
84
|
id: unknown;
|
|
70
|
-
},
|
|
85
|
+
}, Encoded extends {
|
|
86
|
+
id: string;
|
|
87
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batchSize?: number): Effect.Effect<A[], import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E, Exclude<R, {
|
|
71
88
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
72
89
|
}>>;
|
|
73
90
|
/**
|
|
@@ -75,30 +92,40 @@ export declare function saveManyWithPureBatched_<R, T extends {
|
|
|
75
92
|
*/
|
|
76
93
|
export declare function save<T extends {
|
|
77
94
|
id: unknown;
|
|
78
|
-
},
|
|
95
|
+
}, Encoded extends {
|
|
96
|
+
id: string;
|
|
97
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): (items_0: T, ...items_1: T[]) => Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
|
|
79
98
|
/**
|
|
80
99
|
* @tsplus getter Repository saveWithEvents
|
|
81
100
|
*/
|
|
82
101
|
export declare function saveWithEvents<T extends {
|
|
83
102
|
id: unknown;
|
|
84
|
-
},
|
|
103
|
+
}, Encoded extends {
|
|
104
|
+
id: string;
|
|
105
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
|
|
85
106
|
/**
|
|
86
107
|
* @tsplus fluent Repository updateWithEffect
|
|
87
108
|
*/
|
|
88
109
|
export declare function itemUpdateWithEffect<R, E, T extends {
|
|
89
110
|
id: string;
|
|
90
|
-
},
|
|
111
|
+
}, Encoded extends {
|
|
112
|
+
id: string;
|
|
113
|
+
}, Evt, ItemType extends string>(repo: RepositoryBaseC<T, Encoded, Evt, ItemType>, id: T["id"], mod: (item: T) => Effect<T, E, R>): Effect.Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | E | NotFoundError<ItemType>, R>;
|
|
91
114
|
/**
|
|
92
115
|
* @tsplus fluent Repository update
|
|
93
116
|
*/
|
|
94
117
|
export declare function itemUpdate<T extends {
|
|
95
118
|
id: string;
|
|
96
|
-
},
|
|
119
|
+
}, Encoded extends {
|
|
120
|
+
id: string;
|
|
121
|
+
}, Evt, ItemType extends string>(repo: RepositoryBaseC<T, Encoded, Evt, ItemType>, id: T["id"], mod: (item: T) => T): Effect.Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError | NotFoundError<ItemType>, never>;
|
|
97
122
|
/**
|
|
98
123
|
* only use this as a shortcut if you don't have the item already
|
|
99
124
|
* @tsplus fluent Repository removeById
|
|
100
125
|
*/
|
|
101
126
|
export declare function removeById<T extends {
|
|
102
127
|
id: unknown;
|
|
103
|
-
},
|
|
128
|
+
}, Encoded extends {
|
|
129
|
+
id: string;
|
|
130
|
+
}, Evt, ItemType extends string>(self: Repository<T, Encoded, Evt, ItemType>, id: T["id"]): Effect.Effect<void, NotFoundError<ItemType>, never>;
|
|
104
131
|
//# sourceMappingURL=ext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../../src/services/Repository/ext.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAA;AAElD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ext.d.ts","sourceRoot":"","sources":["../../../src/services/Repository/ext.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,4 +92,4 @@ export function itemUpdate(repo, id, mod) {
|
|
|
92
92
|
export function removeById(self, id) {
|
|
93
93
|
return get(self, id).pipe(Effect.flatMap((_) => self.removeAndPublish([_])));
|
|
94
94
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL1JlcG9zaXRvcnkvZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxxQ0FBcUM7QUFDckMsOERBQThEO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWxELE9BQU8sRUFBZSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUdyQzs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFHLENBTWpCLElBQWdELEVBQ2hELEVBQVc7SUFFWCxPQUFPLElBQUk7U0FDUixJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNwSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUtqQixDQUE2QztJQUM3QyxPQUFPLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FLakMsSUFBZ0QsRUFBRSxFQUFXO0lBQzdELE9BQU8sQ0FBd0IsSUFBeUMsRUFBRSxFQUFFLENBQzFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1B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
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { RepositoryBaseC } from "../RepositoryBase.js";
|
|
2
|
-
import type { PersistenceModelType } from "../Store.js";
|
|
3
2
|
/**
|
|
4
3
|
* @tsplus type Repository
|
|
5
4
|
*/
|
|
6
5
|
export interface Repository<T extends {
|
|
7
6
|
id: unknown;
|
|
8
|
-
},
|
|
7
|
+
}, Encoded extends {
|
|
8
|
+
id: string;
|
|
9
|
+
}, Evt, ItemType extends string> extends RepositoryBaseC<T, Encoded, Evt, ItemType> {
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/Repository/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/Repository/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,EACzB,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9B,GAAG,EACH,QAAQ,SAAS,MAAM,CACvB,SAAQ,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC;CAAG"}
|
|
@@ -12,38 +12,44 @@ import type { QAll, Query, QueryEnd, QueryProjection, QueryWhere } from "./query
|
|
|
12
12
|
import * as Q from "./query.js";
|
|
13
13
|
import { ContextMapContainer } from "./Store/ContextMapContainer.js";
|
|
14
14
|
import type * as QB from "./Store/filterApi/query.js";
|
|
15
|
-
export interface Mapped1<
|
|
15
|
+
export interface Mapped1<A, Encoded extends {
|
|
16
16
|
id: string;
|
|
17
|
-
},
|
|
18
|
-
all: Effect<
|
|
19
|
-
save: (...xes: readonly
|
|
20
|
-
query: (b: (fn: QB.FilterTest<
|
|
21
|
-
find: (id:
|
|
17
|
+
}, R> {
|
|
18
|
+
all: Effect<A[], ParseResult.ParseError, R>;
|
|
19
|
+
save: (...xes: readonly A[]) => Effect<void, OptimisticConcurrencyException | ParseResult.ParseError, R>;
|
|
20
|
+
query: (b: (fn: QB.FilterTest<Encoded>, fields: QB.Filter<Encoded, never>) => QB.QueryBuilder<Encoded>) => Effect<A[], ParseResult.ParseError, R>;
|
|
21
|
+
find: (id: Encoded["id"]) => Effect<Option<A>, ParseResult.ParseError, R>;
|
|
22
22
|
}
|
|
23
|
-
export interface Mapped2<
|
|
23
|
+
export interface Mapped2<A, Encoded extends {
|
|
24
24
|
id: string;
|
|
25
|
-
},
|
|
26
|
-
all: Effect<
|
|
27
|
-
query: (b: (fn: QB.FilterTest<
|
|
25
|
+
}, R> {
|
|
26
|
+
all: Effect<A[], ParseResult.ParseError, R>;
|
|
27
|
+
query: (b: (fn: QB.FilterTest<Encoded>, fields: QB.Filter<Encoded, never>) => QB.QueryBuilder<Encoded>) => Effect<A[], ParseResult.ParseError, R>;
|
|
28
28
|
}
|
|
29
|
-
export interface Mapped<
|
|
29
|
+
export interface Mapped<Encoded extends {
|
|
30
30
|
id: string;
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
}, OriginalEncoded extends {
|
|
32
|
+
id: string;
|
|
33
|
+
} = Encoded> {
|
|
34
|
+
<A, R>(schema: S.Schema<A, OriginalEncoded, R>): Mapped1<A, Encoded, R>;
|
|
35
|
+
<A, From, R>(schema: S.Schema<A, From, R>): Mapped2<A, Encoded, R>;
|
|
34
36
|
}
|
|
35
|
-
export interface MM<Repo,
|
|
37
|
+
export interface MM<Repo, Encoded extends {
|
|
38
|
+
id: string;
|
|
39
|
+
}, OriginalEncoded extends {
|
|
36
40
|
id: string;
|
|
37
|
-
}
|
|
38
|
-
<
|
|
39
|
-
<
|
|
41
|
+
}> {
|
|
42
|
+
<A, R>(schema: S.Schema<A, OriginalEncoded, R>): Effect<Mapped1<A, Encoded, R>, never, Repo>;
|
|
43
|
+
<A, Encoded2, R>(schema: S.Schema<A, Encoded2, R>): Effect<Mapped2<A, Encoded, R>, never, Repo>;
|
|
40
44
|
}
|
|
41
45
|
/**
|
|
42
46
|
* @tsplus type Repository
|
|
43
47
|
*/
|
|
44
48
|
export declare abstract class RepositoryBaseC<T extends {
|
|
45
49
|
id: unknown;
|
|
46
|
-
},
|
|
50
|
+
}, Encoded extends {
|
|
51
|
+
id: string;
|
|
52
|
+
}, Evt, ItemType extends string> {
|
|
47
53
|
abstract readonly itemType: ItemType;
|
|
48
54
|
abstract readonly find: (id: T["id"]) => Effect<Option<T>>;
|
|
49
55
|
abstract readonly all: Effect<T[]>;
|
|
@@ -51,50 +57,56 @@ export declare abstract class RepositoryBaseC<T extends {
|
|
|
51
57
|
abstract readonly changeFeed: PubSub.PubSub<[T[], "save" | "remove"]>;
|
|
52
58
|
abstract readonly removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt>) => Effect<void>;
|
|
53
59
|
abstract readonly query: {
|
|
54
|
-
<A, R,
|
|
55
|
-
<R = never, TType extends "one" | "many" = "many">(q: (initial: Query<Omit<
|
|
60
|
+
<A, R, Encoded2 extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Query<Omit<Encoded, "_etag">>) => QueryProjection<Omit<Encoded, "_etag"> extends Encoded2 ? Encoded2 : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.ParseResult.ParseError), R>;
|
|
61
|
+
<R = never, TType extends "one" | "many" = "many">(q: (initial: Query<Omit<Encoded, "_etag">>) => QAll<Omit<Encoded, "_etag">, T, R, TType>): Effect.Effect<TType extends "many" ? readonly T[] : T, TType extends "many" ? never : NotFoundError<ItemType>, R>;
|
|
56
62
|
};
|
|
57
63
|
/** @deprecated use query */
|
|
58
|
-
abstract readonly mapped: Mapped<
|
|
64
|
+
abstract readonly mapped: Mapped<Encoded>;
|
|
59
65
|
}
|
|
60
66
|
export declare abstract class RepositoryBaseC1<T extends {
|
|
61
67
|
id: unknown;
|
|
62
|
-
},
|
|
68
|
+
}, Encoded extends {
|
|
69
|
+
id: string;
|
|
70
|
+
}, Evt, ItemType extends string> extends RepositoryBaseC<T, Encoded, Evt, ItemType> {
|
|
63
71
|
readonly itemType: ItemType;
|
|
64
72
|
constructor(itemType: ItemType);
|
|
65
73
|
}
|
|
66
74
|
export declare class RepositoryBaseC2<T extends {
|
|
67
75
|
id: unknown;
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
|
|
76
|
+
}, Encoded extends {
|
|
77
|
+
id: string;
|
|
78
|
+
}, Evt, ItemType extends string> extends RepositoryBaseC1<T, Encoded, Evt, ItemType> {
|
|
79
|
+
protected readonly impl: Repository<T, Encoded, Evt, ItemType>;
|
|
80
|
+
constructor(itemType: ItemType, impl: Repository<T, Encoded, Evt, ItemType>);
|
|
71
81
|
saveAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
72
82
|
removeAndPublish: (items: Iterable<T>, events?: Iterable<Evt> | undefined) => Effect<void>;
|
|
73
83
|
find: (id: T["id"]) => Effect<Option<T>>;
|
|
74
84
|
all: Effect<T[]>;
|
|
75
85
|
changeFeed: PubSub.PubSub<[T[], "save" | "remove"]>;
|
|
76
|
-
mapped: Mapped<
|
|
86
|
+
mapped: Mapped<Encoded, Encoded>;
|
|
77
87
|
query: {
|
|
78
|
-
<A, R,
|
|
79
|
-
<R_1 = never, TType_1 extends "one" | "many" = "many">(q: (initial: Query<Omit<
|
|
88
|
+
<A, R, Encoded2 extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Query<Omit<Encoded, "_etag">>) => QueryProjection<Omit<Encoded, "_etag"> extends Encoded2 ? Encoded2 : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? number & S.NonNegativeIntBrand : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : ParseResult.ParseError), R>;
|
|
89
|
+
<R_1 = never, TType_1 extends "one" | "many" = "many">(q: (initial: Query<Omit<Encoded, "_etag">>) => QAll<Omit<Encoded, "_etag">, T, R_1, TType_1>): Effect.Effect<TType_1 extends "many" ? readonly T[] : T, TType_1 extends "many" ? never : NotFoundError<ItemType>, R_1>;
|
|
80
90
|
};
|
|
81
91
|
}
|
|
82
92
|
export declare class RepositoryBaseC3<T extends {
|
|
83
93
|
id: unknown;
|
|
84
|
-
},
|
|
94
|
+
}, Encoded extends {
|
|
95
|
+
id: string;
|
|
96
|
+
}, Evt, ItemType extends string> extends RepositoryBaseC2<T, Encoded, Evt, ItemType> {
|
|
85
97
|
get(id: T["id"]): Effect.Effect<T, NotFoundError<ItemType>, never>;
|
|
86
98
|
readonly log: (evt: Evt) => import("effect-app/Pure").PureLogT<any>;
|
|
87
99
|
removeById(id: T["id"]): Effect.Effect<void, NotFoundError<ItemType>, never>;
|
|
88
100
|
readonly save: (items_0: T, ...items_1: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
89
101
|
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
90
102
|
readonly queryAndSavePure: {
|
|
91
|
-
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<
|
|
103
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<Encoded, "_etag">>) => QueryEnd<Omit<Encoded, "_etag">, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, Exclude<R2, {
|
|
92
104
|
env: PureEnv<Evt, T, T2>;
|
|
93
105
|
}>>;
|
|
94
|
-
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<
|
|
106
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<Encoded, "_etag">>) => Query<Omit<Encoded, "_etag">> | QueryWhere<Omit<Encoded, "_etag">> | QueryEnd<Omit<Encoded, "_etag">, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E2, Exclude<R2, {
|
|
95
107
|
env: PureEnv<Evt, readonly T[], readonly T2[]>;
|
|
96
108
|
}>>;
|
|
97
|
-
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<
|
|
109
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<Encoded, "_etag">>) => Query<Omit<Encoded, "_etag">> | QueryWhere<Omit<Encoded, "_etag">> | QueryEnd<Omit<Encoded, "_etag">, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>, batch: "batched" | number): Effect.Effect<A[], InvalidStateError | OptimisticConcurrencyException | E2, Exclude<R2, {
|
|
98
110
|
env: PureEnv<Evt, readonly T[], readonly T2[]>;
|
|
99
111
|
}>>;
|
|
100
112
|
};
|
|
@@ -123,81 +135,75 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
123
135
|
env: PureEnv<Evt, S1, S2>;
|
|
124
136
|
}>>;
|
|
125
137
|
}
|
|
126
|
-
type Exact<A, B> = [A] extends [B] ? [B] extends [A] ? true : false : false;
|
|
127
138
|
/**
|
|
128
139
|
* A base implementation to create a repository.
|
|
129
140
|
*/
|
|
130
|
-
export declare function makeRepo<
|
|
131
|
-
id: string;
|
|
132
|
-
_etag: string | undefined;
|
|
133
|
-
}, Evt = never>(): <ItemType extends string, R, From extends {
|
|
141
|
+
export declare function makeRepo<Evt = never>(): <ItemType extends string, R, Encoded extends {
|
|
134
142
|
id: string;
|
|
135
143
|
}, T extends {
|
|
136
144
|
id: unknown;
|
|
137
|
-
}>(name: ItemType, schema: S.Schema<T,
|
|
145
|
+
}>(name: ItemType, schema: S.Schema<T, Encoded, R>, mapFrom: (pm: Encoded) => Encoded, mapTo: (e: Encoded, etag: string | undefined) => PersistenceModelType<Encoded>) => {
|
|
138
146
|
make: <RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
|
|
139
147
|
makeInitial?: Effect<readonly T[], E, RInitial>;
|
|
140
|
-
config?: Omit<StoreConfig<
|
|
141
|
-
partitionValue?: (a:
|
|
148
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
149
|
+
partitionValue?: (a: Encoded) => string;
|
|
142
150
|
};
|
|
143
151
|
} : {
|
|
144
152
|
publishEvents: (evt: readonly [Evt, ...Evt[]]) => Effect<void, never, R2>;
|
|
145
153
|
makeInitial?: Effect<readonly T[], E, RInitial>;
|
|
146
|
-
config?: Omit<StoreConfig<
|
|
147
|
-
partitionValue?: (a:
|
|
154
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
155
|
+
partitionValue?: (a: Encoded) => string;
|
|
148
156
|
};
|
|
149
|
-
}) => Effect.Effect<Repository<T,
|
|
150
|
-
Q: Query<Omit<
|
|
157
|
+
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType>, E, StoreMaker | ContextMapContainer | R | RInitial | R2>;
|
|
158
|
+
Q: Query<Omit<Encoded, "_etag">>;
|
|
151
159
|
};
|
|
152
|
-
export declare function makeStore<
|
|
160
|
+
export declare function makeStore<Encoded extends {
|
|
153
161
|
id: string;
|
|
154
|
-
_etag: string | undefined;
|
|
155
162
|
}>(): <ItemType extends string, R, E extends {
|
|
156
163
|
id: string;
|
|
157
164
|
}, T extends {
|
|
158
165
|
id: unknown;
|
|
159
|
-
}>(name: ItemType, schema: S.Schema<T, E, R>, mapTo: (e: E, etag: string | undefined) =>
|
|
160
|
-
partitionValue?: (a:
|
|
161
|
-
}) | undefined) => Effect.Effect<import("src/services/Store/service.js").Store<
|
|
166
|
+
}>(name: ItemType, schema: S.Schema<T, E, R>, mapTo: (e: E, etag: string | undefined) => Encoded) => <RInitial = never, EInitial = never>(makeInitial?: Effect<readonly T[], EInitial, RInitial>, config?: (Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
167
|
+
partitionValue?: (a: Encoded) => string;
|
|
168
|
+
}) | undefined) => Effect.Effect<import("src/services/Store/service.js").Store<Encoded, string, PersistenceModelType<Encoded>>, EInitial, StoreMaker | R | RInitial>;
|
|
162
169
|
export interface Repos<T extends {
|
|
163
170
|
id: unknown;
|
|
164
|
-
},
|
|
171
|
+
}, Encoded extends {
|
|
165
172
|
id: string;
|
|
166
|
-
_etag: string | undefined;
|
|
167
173
|
}, R, Evt, ItemType extends string> {
|
|
168
174
|
make<RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
|
|
169
175
|
makeInitial?: Effect<readonly T[], E, RInitial>;
|
|
170
|
-
config?: Omit<StoreConfig<
|
|
171
|
-
partitionValue?: (a:
|
|
176
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
177
|
+
partitionValue?: (a: Encoded) => string;
|
|
172
178
|
};
|
|
173
179
|
} : {
|
|
174
180
|
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, R2>;
|
|
175
181
|
makeInitial?: Effect<readonly T[], E, RInitial>;
|
|
176
|
-
config?: Omit<StoreConfig<
|
|
177
|
-
partitionValue?: (a:
|
|
182
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
183
|
+
partitionValue?: (a: Encoded) => string;
|
|
178
184
|
};
|
|
179
|
-
}): Effect<Repository<T,
|
|
185
|
+
}): Effect<Repository<T, Encoded, Evt, ItemType>, E, StoreMaker | ContextMapContainer | R | RInitial | R2>;
|
|
180
186
|
makeWith<Out, RInitial = never, E = never, R2 = never>(args: [Evt] extends [never] ? {
|
|
181
187
|
makeInitial?: Effect<readonly T[], E, RInitial>;
|
|
182
|
-
config?: Omit<StoreConfig<
|
|
183
|
-
partitionValue?: (a:
|
|
188
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
189
|
+
partitionValue?: (a: Encoded) => string;
|
|
184
190
|
};
|
|
185
191
|
} : {
|
|
186
192
|
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, R2>;
|
|
187
193
|
makeInitial?: Effect<readonly T[], E, RInitial>;
|
|
188
|
-
config?: Omit<StoreConfig<
|
|
189
|
-
partitionValue?: (a:
|
|
194
|
+
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
195
|
+
partitionValue?: (a: Encoded) => string;
|
|
190
196
|
};
|
|
191
|
-
}, f: (r: Repository<T,
|
|
192
|
-
readonly Q: ReturnType<typeof Q.make<
|
|
193
|
-
readonly type: Repository<T,
|
|
197
|
+
}, f: (r: Repository<T, Encoded, Evt, ItemType>) => Out): Effect<Out, E, StoreMaker | ContextMapContainer | R | RInitial | R2>;
|
|
198
|
+
readonly Q: ReturnType<typeof Q.make<Encoded>>;
|
|
199
|
+
readonly type: Repository<T, Encoded, Evt, ItemType>;
|
|
194
200
|
}
|
|
195
201
|
export type GetRepoType<T> = T extends {
|
|
196
202
|
type: infer R;
|
|
197
203
|
} ? R : never;
|
|
198
204
|
export interface RepoFunctions<T extends {
|
|
199
205
|
id: unknown;
|
|
200
|
-
},
|
|
206
|
+
}, Encoded extends {
|
|
201
207
|
id: string;
|
|
202
208
|
}, Evt, ItemType, Service> {
|
|
203
209
|
all: Effect<readonly T[], never, Service>;
|
|
@@ -208,19 +214,19 @@ export interface RepoFunctions<T extends {
|
|
|
208
214
|
save: (...items: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException, Service>;
|
|
209
215
|
get: (id: T["id"]) => Effect<T, NotFoundError<ItemType>, Service>;
|
|
210
216
|
queryAndSavePure: {
|
|
211
|
-
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<
|
|
217
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<Encoded, "_etag">>) => QueryEnd<Omit<Encoded, "_etag">, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, Service | Exclude<R2, {
|
|
212
218
|
env: PureEnv<Evt, T, T2>;
|
|
213
219
|
}>>;
|
|
214
|
-
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<
|
|
220
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<Encoded, "_etag">>) => Query<Omit<Encoded, "_etag">> | QueryWhere<Omit<Encoded, "_etag">> | QueryEnd<Omit<Encoded, "_etag">, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E2, Service | Exclude<R2, {
|
|
215
221
|
env: PureEnv<Evt, readonly T[], readonly T2[]>;
|
|
216
222
|
}>>;
|
|
217
|
-
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<
|
|
223
|
+
<A, E2, R2, T2 extends T>(q: (q: Query<Omit<Encoded, "_etag">>) => Query<Omit<Encoded, "_etag">> | QueryWhere<Omit<Encoded, "_etag">> | QueryEnd<Omit<Encoded, "_etag">, "many">, pure: Effect<A, E2, FixEnv<R2, Evt, readonly T[], readonly T2[]>>, batchSize: number): Effect.Effect<A[], InvalidStateError | OptimisticConcurrencyException | E2, Service | Exclude<R2, {
|
|
218
224
|
env: PureEnv<Evt, readonly T[], readonly T2[]>;
|
|
219
225
|
}>>;
|
|
220
226
|
};
|
|
221
227
|
readonly query: {
|
|
222
|
-
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Query<Omit<
|
|
223
|
-
<R = never, TType extends "one" | "many" = "many">(q: (initial: Query<Omit<
|
|
228
|
+
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many">(q: (initial: Query<Omit<Encoded, "_etag">>) => QueryProjection<Omit<Encoded, "_etag"> extends From ? From : never, A, R, TType>): Effect.Effect<TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A, (TType extends "many" ? never : NotFoundError<ItemType>) | (TType extends "count" ? never : S.ParseResult.ParseError), Service | R>;
|
|
229
|
+
<R = never, TType extends "one" | "many" = "many">(q: (initial: Query<Omit<Encoded, "_etag">>) => QAll<Omit<Encoded, "_etag">, T, R, TType>): Effect.Effect<TType extends "many" ? readonly T[] : T, TType extends "many" ? never : NotFoundError<ItemType>, Service | R>;
|
|
224
230
|
};
|
|
225
231
|
byIdAndSaveWithPure: {
|
|
226
232
|
<R, A, E, S2 extends T>(id: T["id"], pure: Effect<A, E, FixEnv<R, Evt, T, S2>>): Effect<A, InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>, Service | Exclude<R, {
|
|
@@ -236,28 +242,17 @@ export interface RepoFunctions<T extends {
|
|
|
236
242
|
}>>;
|
|
237
243
|
};
|
|
238
244
|
/** @experimental */
|
|
239
|
-
mapped: MM<Service,
|
|
245
|
+
mapped: MM<Service, Encoded, Omit<Encoded, "_etag">>;
|
|
240
246
|
use: <X>(body: (_: Service) => X) => X extends Effect<infer A, infer E, infer R> ? Effect<A, E, R | Service> : Effect<X, never, Service>;
|
|
241
247
|
}
|
|
242
|
-
export declare const RepositoryBaseImpl: <Service>() => <
|
|
243
|
-
id: string;
|
|
244
|
-
_etag: string | undefined;
|
|
245
|
-
}, Evt = never>() => <ItemType extends string, R, From extends {
|
|
248
|
+
export declare const RepositoryBaseImpl: <Service>() => <Evt = never>() => <ItemType extends string, R, Encoded extends {
|
|
246
249
|
id: string;
|
|
247
250
|
}, T extends {
|
|
248
251
|
id: unknown;
|
|
249
|
-
}>(itemType: ItemType, schema: S.Schema<T,
|
|
250
|
-
|
|
251
|
-
}> extends true ? (abstract new () => RepositoryBaseC1<T, PM, Evt, ItemType>) & Context.Tag<Service, Service> & Repos<T, PM, R, Evt, ItemType> & RepoFunctions<T, PM, Evt, ItemType, Service> : never;
|
|
252
|
-
export declare const RepositoryDefaultImpl: <Service>() => <PM extends {
|
|
253
|
-
id: string;
|
|
254
|
-
_etag: string | undefined;
|
|
255
|
-
}, Evt = never>() => <ItemType extends string, R, From extends {
|
|
252
|
+
}>(itemType: ItemType, schema: S.Schema<T, Encoded, R>, jitM?: ((pm: Encoded) => Encoded) | undefined) => (abstract new () => RepositoryBaseC1<T, Encoded, Evt, ItemType>) & Context.Tag<Service, Service> & Repos<T, Encoded, R, Evt, ItemType> & RepoFunctions<T, Encoded, Evt, ItemType, Service>;
|
|
253
|
+
export declare const RepositoryDefaultImpl: <Service, Evt = never>() => <ItemType extends string, R, Encoded extends {
|
|
256
254
|
id: string;
|
|
257
255
|
}, T extends {
|
|
258
256
|
id: unknown;
|
|
259
|
-
}>(itemType: ItemType, schema: S.Schema<T,
|
|
260
|
-
_etag: string | undefined;
|
|
261
|
-
}> extends true ? (abstract new (impl: Repository<T, PM, Evt, ItemType>) => RepositoryBaseC3<T, PM, Evt, ItemType>) & Context.Tag<Service, Service> & Repos<T, PM, R, Evt, ItemType> & RepoFunctions<T, PM, Evt, ItemType, Service> : never;
|
|
262
|
-
export {};
|
|
257
|
+
}>(itemType: ItemType, schema: S.Schema<T, Encoded, R>, jitM?: ((pm: Encoded) => Encoded) | undefined) => (abstract new (impl: Repository<T, Encoded, Evt, ItemType>) => RepositoryBaseC3<T, Encoded, Evt, ItemType>) & Context.Tag<Service, Service> & Repos<T, Encoded, R, Evt, ItemType> & RepoFunctions<T, Encoded, Evt, ItemType, Service>;
|
|
263
258
|
//# sourceMappingURL=RepositoryBase.d.ts.map
|