@effect-app/infra 2.18.0 → 2.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/_cjs/Model/Repository/makeRepo.cjs +2 -1
- package/_cjs/Model/Repository/makeRepo.cjs.map +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +5 -3
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +4 -2
- package/dist/Operations.d.ts +3 -3
- package/package.json +2 -2
- package/src/Model/Repository/makeRepo.ts +18 -8
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/filterApi.test.d.ts.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 2.19.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4a52411: add overrides for repo
|
|
8
|
+
|
|
9
|
+
## 2.19.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- update
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- effect-app@2.11.0
|
|
19
|
+
|
|
3
20
|
## 2.18.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
|
@@ -25,7 +25,8 @@ const makeRepo = (itemType, schema, options) => _effectApp.Effect.gen(function*
|
|
|
25
25
|
...e,
|
|
26
26
|
_etag
|
|
27
27
|
}), options.idKey ?? "id");
|
|
28
|
-
|
|
28
|
+
let r = yield* mkRepo.make(options);
|
|
29
|
+
if (options.overrides) r = options.overrides(r);
|
|
29
30
|
const repo = (0, _ext.extendRepo)(r);
|
|
30
31
|
return repo;
|
|
31
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeRepo.cjs","names":["_effectApp","require","_ext","_internal","makeRepo","itemType","schema","options","Effect","gen","mkRepo","makeRepoInternal","jitM","pm","e","_etag","idKey","r","make","repo","extendRepo","exports"],"sources":["../../../src/Model/Repository/makeRepo.ts"],"sourcesContent":[null],"mappings":";;;;;;AAUA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAfA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"file":"makeRepo.cjs","names":["_effectApp","require","_ext","_internal","makeRepo","itemType","schema","options","Effect","gen","mkRepo","makeRepoInternal","jitM","pm","e","_etag","idKey","r","make","overrides","repo","extendRepo","exports"],"sources":["../../../src/Model/Repository/makeRepo.ts"],"sourcesContent":[null],"mappings":";;;;;;AAUA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAfA;AACA;AACA;AACA;AACA;;AA2DA;;;;;;;AAOO,MAAMG,QAAQ,GAwCjBA,CAYFC,QAAkB,EAClBC,MAAqC,EACrCC,OAEC,KAEDC,iBAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,MAAM,GAAG,IAAAC,0BAAgB,GAAO,CACpCN,QAAQ,EACRC,MAAM,EACNC,OAAO,EAAEK,IAAI,GAAIC,EAAE,IAAKN,OAAO,CAACK,IAAK,CAACC,EAAE,CAAC,GAAIA,EAAE,IAAKA,EAAE,EACtD,CAACC,CAAC,EAAEC,KAAK,MAAM;IAAE,GAAGD,CAAC;IAAEC;EAAK,CAAE,CAAC,EAC/BR,OAAO,CAACS,KAAK,IAAI,IAAW,CAC7B;EACD,IAAIC,CAAC,GAAG,OAAOP,MAAM,CAACQ,IAAI,CAA8BX,OAAc,CAAC;EACvE,IAAIA,OAAO,CAACY,SAAS,EAAEF,CAAC,GAAGV,OAAO,CAACY,SAAS,CAACF,CAAC,CAAC;EAC/C,MAAMG,IAAI,GAAG,IAAAC,eAAU,EAACJ,CAAC,CAAC;EAC1B,OAAOG,IAAI;AACb,CAAC,CAAC;AAAAE,OAAA,CAAAlB,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -3,7 +3,8 @@ import { Effect } from "effect-app";
|
|
|
3
3
|
import type { StoreConfig, StoreMaker } from "../../Store.js";
|
|
4
4
|
import type { FieldValues } from "../filter/types.js";
|
|
5
5
|
import type { ExtendedRepository } from "./ext.js";
|
|
6
|
-
|
|
6
|
+
import type { Repository } from "./service.js";
|
|
7
|
+
export interface RepositoryOptions<IdKey extends keyof T & keyof Encoded, Encoded extends FieldValues, T, ItemType extends string, Evt = never, RPublish = never, E = never, RInitial = never, RCtx = never, RSchema = never> {
|
|
7
8
|
/**
|
|
8
9
|
* Specify the idKey of the Type side, if it's different from the default "id".
|
|
9
10
|
* Does not change the Encoded side, which is always "id" to support database drivers.
|
|
@@ -31,6 +32,7 @@ export interface RepositoryOptions<IdKey extends keyof T & keyof Encoded, Encode
|
|
|
31
32
|
* Useful for effectful transformations like XWithItems, where items is a transformation retrieving elements from another database table or other source.
|
|
32
33
|
*/
|
|
33
34
|
schemaContext?: Context.Context<RCtx>;
|
|
35
|
+
overrides?: (repo: Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>) => Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
38
|
* Create a repository instance.
|
|
@@ -40,9 +42,9 @@ export interface RepositoryOptions<IdKey extends keyof T & keyof Encoded, Encode
|
|
|
40
42
|
* @returns a Repository
|
|
41
43
|
*/
|
|
42
44
|
export declare const makeRepo: {
|
|
43
|
-
<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.Schema<T, Encoded, RSchema>, options: RepositoryOptions<IdKey, Encoded, T, Evt, RPublish, E, RInitial, RCtx>): Effect.Effect<ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>, E, RInitial | StoreMaker>;
|
|
45
|
+
<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.Schema<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>;
|
|
44
46
|
<ItemType extends string, RSchema, Encoded extends FieldValues, T extends {
|
|
45
47
|
id: unknown;
|
|
46
|
-
}, E = never, Evt = never, RInitial = never, RPublish = never, RCtx = never>(itemType: ItemType, schema: S.Schema<T, Encoded, RSchema>, options: Omit<RepositoryOptions<"id", Encoded, T, Evt, RPublish, E, RInitial, RCtx>, "idKey">): Effect.Effect<ExtendedRepository<T, Encoded, Evt, ItemType, "id", Exclude<RSchema, RCtx>, RPublish>, E, RInitial | StoreMaker>;
|
|
48
|
+
}, E = never, Evt = never, RInitial = never, RPublish = never, RCtx = never>(itemType: ItemType, schema: S.Schema<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>;
|
|
47
49
|
};
|
|
48
50
|
//# 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,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"makeRepo.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/makeRepo.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,WAAW,iBAAiB,CAChC,KAAK,SAAS,MAAM,CAAC,GAAG,MAAM,OAAO,EACrC,OAAO,SAAS,WAAW,EAC3B,CAAC,EACD,QAAQ,SAAS,MAAM,EACvB,GAAG,GAAG,KAAK,EACX,QAAQ,GAAG,KAAK,EAChB,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EACZ,OAAO,GAAG,KAAK;IAEf;;;;OAIG;IACH,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAA;IAC/B,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG;QACtD,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAClF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAErC,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,KACjF,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAA;CACpF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CACE,QAAQ,SAAS,MAAM,EACvB,OAAO,EACP,OAAO,SAAS,WAAW,EAC3B,CAAC,EACD,KAAK,SAAS,MAAM,CAAC,GAAG,MAAM,OAAO,EACrC,CAAC,GAAG,KAAK,EACT,GAAG,GAAG,KAAK,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EAEZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,GACjG,MAAM,CAAC,MAAM,CACd,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EACtF,CAAC,EACD,QAAQ,GAAG,UAAU,CACtB,CAAA;IACD,CACE,QAAQ,SAAS,MAAM,EACvB,OAAO,EACP,OAAO,SAAS,WAAW,EAC3B,CAAC,SAAS;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,EACzB,CAAC,GAAG,KAAK,EACT,GAAG,GAAG,KAAK,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EAEZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,GAC/G,MAAM,CAAC,MAAM,CACd,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EACrF,CAAC,EACD,QAAQ,GAAG,UAAU,CACtB,CAAA;CA+BC,CAAA"}
|
|
@@ -15,8 +15,10 @@ import { makeRepoInternal } from "./internal/internal.js";
|
|
|
15
15
|
*/
|
|
16
16
|
export const makeRepo = (itemType, schema, options) => Effect.gen(function* () {
|
|
17
17
|
const mkRepo = makeRepoInternal()(itemType, schema, options?.jitM ? (pm) => options.jitM(pm) : (pm) => pm, (e, _etag) => ({ ...e, _etag }), options.idKey ?? "id");
|
|
18
|
-
|
|
18
|
+
let r = yield* mkRepo.make(options);
|
|
19
|
+
if (options.overrides)
|
|
20
|
+
r = options.overrides(r);
|
|
19
21
|
const repo = extendRepo(r);
|
|
20
22
|
return repo;
|
|
21
23
|
});
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVJlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9tYWtlUmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELDBEQUEwRDtBQUMxRCw0REFBNEQ7QUFDNUQsdURBQXVEO0FBTXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFJbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQWdEekQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQXdDakIsQ0FZRixRQUFrQixFQUNsQixNQUFxQyxFQUNyQyxPQUVDLEVBQ0QsRUFBRSxDQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFPLENBQ3BDLFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQ3RELENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQy9CLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBVyxDQUM3QixDQUFBO0lBQ0QsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBOEIsT0FBYyxDQUFDLENBQUE7SUFDdkUsSUFBSSxPQUFPLENBQUMsU0FBUztRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxQixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQyxDQUFBIn0=
|
package/dist/Operations.d.ts
CHANGED
|
@@ -56,15 +56,15 @@ declare const Operations_base: (abstract new (service: {
|
|
|
56
56
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
57
57
|
}>) & {
|
|
58
58
|
toLayer: {
|
|
59
|
-
(): Layer.Layer<Operations, never,
|
|
59
|
+
(): Layer.Layer<Operations, never, OperationsRepo | RequestFiberSet>;
|
|
60
60
|
<E_1, R_1>(eff: Effect.Effect<Omit<Operations, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<Operations, E_1, R_1>;
|
|
61
61
|
};
|
|
62
62
|
toLayerScoped: {
|
|
63
|
-
(): Layer.Layer<Operations, never,
|
|
63
|
+
(): Layer.Layer<Operations, never, OperationsRepo | RequestFiberSet>;
|
|
64
64
|
<E_1, R_2>(eff: Effect.Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer.Layer<Operations, E_1, Exclude<R_2, Scope.Scope>>;
|
|
65
65
|
};
|
|
66
66
|
of: (service: Context.TagClassShape<any, any>) => Operations;
|
|
67
|
-
make: Effect.Effect<Operations, never,
|
|
67
|
+
make: Effect.Effect<Operations, never, OperationsRepo | RequestFiberSet>;
|
|
68
68
|
} & Context.Tag<Operations, Operations> & {
|
|
69
69
|
cleanup: Effect.Effect<void[], never, Operations>;
|
|
70
70
|
register: (title: S.NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope | Operations>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.19.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"proper-lockfile": "^4.1.2",
|
|
14
14
|
"pure-rand": "6.1.0",
|
|
15
15
|
"query-string": "^9.1.1",
|
|
16
|
-
"effect-app": "2.
|
|
16
|
+
"effect-app": "2.11.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@azure/cosmos": "^4.1.1",
|
|
@@ -14,16 +14,19 @@ import type { FieldValues } from "../filter/types.js"
|
|
|
14
14
|
import type { ExtendedRepository } from "./ext.js"
|
|
15
15
|
import { extendRepo } from "./ext.js"
|
|
16
16
|
import { makeRepoInternal } from "./internal/internal.js"
|
|
17
|
+
import type { Repository } from "./service.js"
|
|
17
18
|
|
|
18
19
|
export interface RepositoryOptions<
|
|
19
20
|
IdKey extends keyof T & keyof Encoded,
|
|
20
|
-
Encoded,
|
|
21
|
+
Encoded extends FieldValues,
|
|
21
22
|
T,
|
|
23
|
+
ItemType extends string,
|
|
22
24
|
Evt = never,
|
|
23
25
|
RPublish = never,
|
|
24
26
|
E = never,
|
|
25
27
|
RInitial = never,
|
|
26
|
-
RCtx = never
|
|
28
|
+
RCtx = never,
|
|
29
|
+
RSchema = never
|
|
27
30
|
> {
|
|
28
31
|
/**
|
|
29
32
|
* Specify the idKey of the Type side, if it's different from the default "id".
|
|
@@ -52,6 +55,10 @@ export interface RepositoryOptions<
|
|
|
52
55
|
* Useful for effectful transformations like XWithItems, where items is a transformation retrieving elements from another database table or other source.
|
|
53
56
|
*/
|
|
54
57
|
schemaContext?: Context.Context<RCtx>
|
|
58
|
+
|
|
59
|
+
overrides?: (
|
|
60
|
+
repo: Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>
|
|
61
|
+
) => Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>
|
|
55
62
|
}
|
|
56
63
|
|
|
57
64
|
/**
|
|
@@ -76,7 +83,7 @@ export const makeRepo: {
|
|
|
76
83
|
>(
|
|
77
84
|
itemType: ItemType,
|
|
78
85
|
schema: S.Schema<T, Encoded, RSchema>,
|
|
79
|
-
options: RepositoryOptions<IdKey, Encoded, T, Evt, RPublish, E, RInitial, RCtx>
|
|
86
|
+
options: RepositoryOptions<IdKey, Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>
|
|
80
87
|
): Effect.Effect<
|
|
81
88
|
ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>,
|
|
82
89
|
E,
|
|
@@ -95,7 +102,7 @@ export const makeRepo: {
|
|
|
95
102
|
>(
|
|
96
103
|
itemType: ItemType,
|
|
97
104
|
schema: S.Schema<T, Encoded, RSchema>,
|
|
98
|
-
options: Omit<RepositoryOptions<"id", Encoded, T, Evt, RPublish, E, RInitial, RCtx>, "idKey">
|
|
105
|
+
options: Omit<RepositoryOptions<"id", Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>, "idKey">
|
|
99
106
|
): Effect.Effect<
|
|
100
107
|
ExtendedRepository<T, Encoded, Evt, ItemType, "id", Exclude<RSchema, RCtx>, RPublish>,
|
|
101
108
|
E,
|
|
@@ -103,7 +110,7 @@ export const makeRepo: {
|
|
|
103
110
|
>
|
|
104
111
|
} = <
|
|
105
112
|
ItemType extends string,
|
|
106
|
-
|
|
113
|
+
RSchema,
|
|
107
114
|
Encoded extends FieldValues,
|
|
108
115
|
T,
|
|
109
116
|
IdKey extends keyof T & keyof Encoded,
|
|
@@ -114,8 +121,10 @@ export const makeRepo: {
|
|
|
114
121
|
RCtx = never
|
|
115
122
|
>(
|
|
116
123
|
itemType: ItemType,
|
|
117
|
-
schema: S.Schema<T, Encoded,
|
|
118
|
-
options: Omit<RepositoryOptions<IdKey, Encoded, T, Evt, RPublish, E, RInitial, RCtx>, "idKey"> & {
|
|
124
|
+
schema: S.Schema<T, Encoded, RSchema>,
|
|
125
|
+
options: Omit<RepositoryOptions<IdKey, Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>, "idKey"> & {
|
|
126
|
+
idKey?: IdKey
|
|
127
|
+
}
|
|
119
128
|
) =>
|
|
120
129
|
Effect.gen(function*() {
|
|
121
130
|
const mkRepo = makeRepoInternal<Evt>()(
|
|
@@ -125,7 +134,8 @@ export const makeRepo: {
|
|
|
125
134
|
(e, _etag) => ({ ...e, _etag }),
|
|
126
135
|
options.idKey ?? "id" as any
|
|
127
136
|
)
|
|
128
|
-
|
|
137
|
+
let r = yield* mkRepo.make<RInitial, E, RPublish, RCtx>(options as any)
|
|
138
|
+
if (options.overrides) r = options.overrides(r)
|
|
129
139
|
const repo = extendRepo(r)
|
|
130
140
|
return repo
|
|
131
141
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;sBATP,KAAH;;;;;;GASY,QAAQ;;;;;;uDA8B3B,KAAK,CAAC,GAAG;;uBAzFY,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;uDAqIimB,KAAK,CAAC,GAAG;;uBAtIjnB,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;uDAqIuyE,KAAK,CAAC,GAAG;;uBAtIvzE,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;;;uBADP,MAAM,CA2BvB,GA1BP;uBAAqB,MAAM,CAAC,GAAG;;;;;;;;0GA0DgC,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAxEM,MAAM,CAAC,MAAM;mBAgC1C,MA9BA,CAAC,GAAG,KA8BJ,MA5BD,CA4BC,MA5BM;mBA4BN,MA3BC,CAAE,GAAE,KAAM,MAAK,CAAC,MAAM;;;;;;6CASqB,MAAM,CAAC,MAAM;mBACtD,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUpB,MAAM,CAAC,MAAM;mBACG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAE,MAAK;;;;;;6CAclD,MAAG,CAAC,MAAM;;;;;6CAMwC,MAAM,CAAC,MACrE;;;CA4BA,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAmBjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterApi.test.d.ts","sourceRoot":"","sources":["../filterApi.test.ts"],"names":[],"mappings":""}
|