@effect-app/infra 1.26.2 → 1.26.3
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 +6 -0
- package/_cjs/api/routing2.cjs +14 -3
- package/_cjs/api/routing2.cjs.map +1 -1
- package/dist/RequestContext.d.ts +1 -1
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/api/routing2.d.ts +13 -8
- package/dist/api/routing2.d.ts.map +1 -1
- package/dist/api/routing2.js +3 -3
- package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
- package/dist/services/Repository/ext.d.ts +11 -11
- package/dist/services/RepositoryBase.d.ts +5 -5
- package/dist/services/RequestContextContainer.d.ts +1 -1
- package/dist/services/Store/service.d.ts +1 -1
- package/package.json +3 -3
- package/src/api/routing2.ts +58 -11
package/CHANGELOG.md
CHANGED
package/_cjs/api/routing2.cjs
CHANGED
|
@@ -27,8 +27,15 @@ const makeRouter2 = middleware => {
|
|
|
27
27
|
return acc;
|
|
28
28
|
}, {});
|
|
29
29
|
const matchWithServices = action => {
|
|
30
|
-
return (services, f) => req => _effectApp.Effect.andThen(
|
|
30
|
+
return (services, f) => req => _effectApp.Effect.andThen(_effectApp.Effect.all({
|
|
31
|
+
svc: (0, _Effect.allLower)(services),
|
|
32
|
+
ctx: middleware.makeContext
|
|
33
|
+
}), ({
|
|
34
|
+
ctx,
|
|
35
|
+
svc
|
|
36
|
+
}) => f(req, {
|
|
31
37
|
...svc,
|
|
38
|
+
...ctx,
|
|
32
39
|
Response: rsc[action].success
|
|
33
40
|
}));
|
|
34
41
|
};
|
|
@@ -63,10 +70,14 @@ const makeRouter2 = middleware => {
|
|
|
63
70
|
} : typeof svcOrFnOrEffect === "function" ? class {
|
|
64
71
|
static stack = stack;
|
|
65
72
|
static _tag = "d";
|
|
66
|
-
static handler =
|
|
73
|
+
static handler = req => _effectApp.Effect.andThen(_effectApp.Effect.all({
|
|
74
|
+
ctx: middleware.makeContext
|
|
75
|
+
}), ({
|
|
76
|
+
ctx
|
|
77
|
+
}) => svcOrFnOrEffect(req, {
|
|
67
78
|
...ctx,
|
|
68
79
|
Response: rsc[cur].success
|
|
69
|
-
});
|
|
80
|
+
}));
|
|
70
81
|
} : class {
|
|
71
82
|
static stack = stack;
|
|
72
83
|
static _tag = "d";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing2.cjs","names":["_Effect","require","_utils","_rpc","_rpcHttp","_effectApp","_http","_DynamicMiddleware","makeRouter2","middleware","rpc","makeRpc","matchFor","rsc","meta","Error","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","matchWithServices","action","services","f","req","Effect","andThen","
|
|
1
|
+
{"version":3,"file":"routing2.cjs","names":["_Effect","require","_utils","_rpc","_rpcHttp","_effectApp","_http","_DynamicMiddleware","makeRouter2","middleware","rpc","makeRpc","matchFor","rsc","meta","Error","filtered","typedKeysOf","reduce","acc","cur","Predicate","isObject","matchWithServices","action","services","f","req","Effect","andThen","all","svc","allLower","ctx","makeContext","Response","success","controllers","handlers","h","handler","Request","mapped","effect","moduleName","router","RpcRouter","make","Object","values","HttpRouter","empty","pipe","HttpRpcRouter","toHttpApp","r","prev","svcOrFnOrEffect","fnOrNone","stack","split","slice","join","isEffect","_tag","matchAll","concat","exports"],"sources":["../../src/api/routing2.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/RequestContext.d.ts
CHANGED
|
@@ -63,13 +63,13 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
63
63
|
}>>;
|
|
64
64
|
}, RequestContext.From, never, {
|
|
65
65
|
readonly id?: string & S.NonEmptyString255Brand;
|
|
66
|
-
readonly rootId: NonEmptyString255;
|
|
67
66
|
readonly name: string & S.NonEmptyString255Brand;
|
|
68
67
|
readonly locale: "en" | "de";
|
|
69
68
|
readonly createdAt?: Date;
|
|
70
69
|
readonly userProfile?: {
|
|
71
70
|
readonly sub: string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand;
|
|
72
71
|
} | undefined;
|
|
72
|
+
readonly rootId: NonEmptyString255;
|
|
73
73
|
readonly sourceId?: (string & S.NonEmptyString255Brand) | undefined;
|
|
74
74
|
readonly parent?: RequestContextParent | undefined;
|
|
75
75
|
readonly namespace?: (string & S.NonEmptyString255Brand) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAG9B,eAAO,MAAM,MAAM,yBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;;;;;;
|
|
1
|
+
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAG9B,eAAO,MAAM,MAAM,yBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;;;;;;qBAW/B,EAAG,iBAAiB,eAI3B,EAAE,sBAAqB;;;qBAKb,EAAG,iBACL,eACP,EAAA,sBAAsB;;;;;;yBAaR,EAAE,iBAAiB;;;yBAcA,EAAG,iBAAiB;;;;;;;;;;;;;;AA9CvD,qBAAa,oBAAqB,SAAQ,yBASxC;CAAG;;;;;;;qBADG,EAAG,iBAAiB,eAI3B,EAAE,sBAAqB;;;qBAKb,EAAG,iBACL,eACP,EAAA,sBAAsB;;;;;;;;;;;yBAaR,EAAE,iBAAiB;;;yBAcA,EAAG,iBAAiB;;;;;;;;;;;;;;;;AAnCvD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAgBlC;IAEA,MAAM,CAAC,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAUhE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;;;CASrD;AAED,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;;;CAkBhD,CAAA;AAKF,yBAAiB,oBAAoB,CAAC;IACpC,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAAG;CACzF;AACD,yBAAiB,cAAc,CAAC;IAC9B,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;KAAG;CACnF"}
|
package/dist/api/routing2.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { Rpc } from "@effect/rpc";
|
|
|
4
4
|
import type { S } from "effect-app";
|
|
5
5
|
import { Effect } from "effect-app";
|
|
6
6
|
import { HttpRouter } from "effect-app/http";
|
|
7
|
-
import type { GetEffectContext, Middleware } from "./routing2/DynamicMiddleware.js";
|
|
7
|
+
import type { ContextMap, GetEffectContext, Middleware } from "./routing2/DynamicMiddleware.js";
|
|
8
8
|
export interface Hint<Err extends string> {
|
|
9
9
|
Err: Err;
|
|
10
10
|
}
|
|
@@ -35,7 +35,12 @@ type Filter<T> = {
|
|
|
35
35
|
failure: S.Schema.Any;
|
|
36
36
|
} ? K : never]: T[K];
|
|
37
37
|
};
|
|
38
|
-
|
|
38
|
+
interface ExtendedMiddleware<Context, CTXMap extends Record<string, ContextMap.Any>> extends Middleware<Context, CTXMap> {
|
|
39
|
+
makeContext: Effect<{
|
|
40
|
+
[K in keyof CTXMap as CTXMap[K][0]]: CTXMap[K][1];
|
|
41
|
+
}, never, never>;
|
|
42
|
+
}
|
|
43
|
+
export declare const makeRouter2: <Context, CTXMap extends Record<string, ContextMap.Any>>(middleware: ExtendedMiddleware<Context, CTXMap>) => {
|
|
39
44
|
matchAll: <T extends {
|
|
40
45
|
[key: string]: HttpRouter.HttpRouter<any, any>;
|
|
41
46
|
}>(handlers: T) => HttpRouter.HttpRouter<[T[keyof T]] extends [HttpRouter.HttpRouter<infer E, any>] ? E : never, [T[keyof T]] extends [HttpRouter.HttpRouter<any, infer R>] ? R : never>;
|
|
@@ -49,28 +54,28 @@ export declare const makeRouter2: <Context, CTXMap extends Record<string, [strin
|
|
|
49
54
|
<R2, E, A>(f: Effect<A, E, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A, Handler<Rsc[Key], "d", A, E, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>, {
|
|
50
55
|
Response: Rsc[Key]["success"];
|
|
51
56
|
}>>;
|
|
52
|
-
<R2, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key]>, ctx: {
|
|
57
|
+
<R2, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key]>, ctx: { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][3] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
|
|
53
58
|
Response: Rsc[Key]["success"];
|
|
54
59
|
}) => Effect<A_1, E_1, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_1, Handler<Rsc[Key], "d", A_1, E_1, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>, {
|
|
55
60
|
Response: Rsc[Key]["success"];
|
|
56
61
|
}>>;
|
|
57
|
-
<SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & {
|
|
62
|
+
<SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key] ? Rsc[Key][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key] ? Rsc[Key][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][3] extends false ? never : key_2 extends keyof Rsc[Key] ? Rsc[Key][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key] ? Rsc[Key][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
|
|
58
63
|
Response: Rsc[Key]["success"];
|
|
59
|
-
}>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_2, Handler<Rsc[Key], "d", A_2, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
64
|
+
}>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Type<GetSuccess<Rsc[Key]>>, A_2, Handler<Rsc[Key], "d", A_2, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>, {
|
|
60
65
|
Response: Rsc[Key]["success"];
|
|
61
66
|
}>>;
|
|
62
67
|
}; } & { [Key_1 in keyof Filter<Rsc> as Key_1 extends string ? `${Key_1}Raw` : never]: {
|
|
63
68
|
<R2_1, E, A>(f: Effect<A, E, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A, Handler<Rsc[Key_1], "raw", A, E, Exclude<R2_1, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>, {
|
|
64
69
|
Response: Rsc[Key_1]["success"];
|
|
65
70
|
}>>;
|
|
66
|
-
<R2_1, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: {
|
|
71
|
+
<R2_1, E_1, A_1>(f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][3] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
|
|
67
72
|
Response: Rsc[Key_1]["success"];
|
|
68
73
|
}) => Effect<A_1, E_1, R2_1>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_1, Handler<Rsc[Key_1], "raw", A_1, E_1, Exclude<R2_1, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>, {
|
|
69
74
|
Response: Rsc[Key_1]["success"];
|
|
70
75
|
}>>;
|
|
71
|
-
<SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & {
|
|
76
|
+
<SVC extends Record<string, EffectUnunified<any, any, any>>, R2, E_2, A_2>(services: SVC, f: (req: S.Schema.Type<Rsc[Key_1]>, ctx: import("@effect-app/core/utils").ComputeFlat<LowerServices<EffectDeps<SVC>> & { [key in keyof CTXMap as CTXMap[key][3] extends true ? never : key extends keyof Rsc[Key_1] ? Rsc[Key_1][key] extends true ? CTXMap[key][0] : never : never]?: CTXMap[key][1]; } & { [key_1 in keyof CTXMap as CTXMap[key_1][3] extends true ? never : key_1 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_1] extends false ? CTXMap[key_1][0] : never : CTXMap[key_1][0]]: CTXMap[key_1][1]; } & { [key_2 in keyof CTXMap as CTXMap[key_2][3] extends false ? never : key_2 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_2] extends true ? CTXMap[key_2][0] : never : never]: CTXMap[key_2][1]; } & { [key_3 in keyof CTXMap as CTXMap[key_3][3] extends false ? never : key_3 extends keyof Rsc[Key_1] ? Rsc[Key_1][key_3] extends false ? CTXMap[key_3][0] : never : CTXMap[key_3][0]]?: CTXMap[key_3][1]; } & {
|
|
72
77
|
Response: Rsc[Key_1]["success"];
|
|
73
|
-
}>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_2, Handler<Rsc[Key_1], "raw", A_2, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>,
|
|
78
|
+
}>) => Effect<A_2, E_2, R2>): HandleVoid<S.Schema.Encoded<GetSuccess<Rsc[Key_1]>>, A_2, Handler<Rsc[Key_1], "raw", A_2, E_2, Exclude<R2, GetEffectContext<CTXMap, Rsc[Key_1]["config"]>>, {
|
|
74
79
|
Response: Rsc[Key_1]["success"];
|
|
75
80
|
}>>;
|
|
76
81
|
}; };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing2.d.ts","sourceRoot":"","sources":["../../src/api/routing2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAG5F,OAAO,KAAK,EAAM,EAAE,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAa,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"routing2.d.ts","sourceRoot":"","sources":["../../src/api/routing2.ts"],"names":[],"mappings":"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"}
|
package/dist/api/routing2.js
CHANGED
|
@@ -21,7 +21,7 @@ export const makeRouter2 = (middleware) => {
|
|
|
21
21
|
return acc;
|
|
22
22
|
}, {});
|
|
23
23
|
const matchWithServices = (action) => {
|
|
24
|
-
return (services, f) => (req) => Effect.andThen(allLower(services), (svc) => f(req, { ...svc, Response: rsc[action].success }));
|
|
24
|
+
return (services, f) => (req) => Effect.andThen(Effect.all({ svc: allLower(services), ctx: middleware.makeContext }), ({ ctx, svc }) => f(req, { ...svc, ...ctx, Response: rsc[action].success }));
|
|
25
25
|
};
|
|
26
26
|
const controllers = (controllers) => {
|
|
27
27
|
const handlers = typedKeysOf(filtered).reduce((acc, cur) => {
|
|
@@ -57,7 +57,7 @@ export const makeRouter2 = (middleware) => {
|
|
|
57
57
|
? class {
|
|
58
58
|
static stack = stack;
|
|
59
59
|
static _tag = "d";
|
|
60
|
-
static handler = (req, ctx) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].success });
|
|
60
|
+
static handler = (req) => Effect.andThen(Effect.all({ ctx: middleware.makeContext }), ({ ctx }) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].success }));
|
|
61
61
|
}
|
|
62
62
|
: class {
|
|
63
63
|
static stack = stack;
|
|
@@ -98,4 +98,4 @@ export const makeRouter2 = (middleware) => {
|
|
|
98
98
|
}
|
|
99
99
|
return { matchAll, matchFor };
|
|
100
100
|
};
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3JvdXRpbmcyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBEQUEwRDtBQUMxRCw0REFBNEQ7QUFDNUQsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQTRDLE1BQU0seUJBQXlCLENBQUE7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBSXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUErRnpELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUN6QixVQUErQyxFQUMvQyxFQUFFO0lBQ0YsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQy9CLFNBQVMsUUFBUSxDQUNmLEdBQVE7UUFFUixNQUFNLElBQUksR0FBSSxHQUFXLENBQUMsSUFBOEIsQ0FBQTtRQUN4RCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQSxDQUFDLDhDQUE4QztRQUczRyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3BELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDeEQs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
|
|
@@ -13,7 +13,7 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
13
13
|
id: StringId;
|
|
14
14
|
_tag: string;
|
|
15
15
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
16
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never,
|
|
16
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, ServiceBusReceiverFactory>>;
|
|
17
17
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
18
18
|
}, never, RequestContextContainer | ServiceBusReceiverFactory | import("@azure/service-bus").ServiceBusSender>;
|
|
19
19
|
/**
|
|
@@ -26,7 +26,7 @@ export declare function byIdAndSaveWithPure<T extends {
|
|
|
26
26
|
id: unknown;
|
|
27
27
|
}, Encoded extends {
|
|
28
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").
|
|
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 | E | NotFoundError<ItemType>, Exclude<R, {
|
|
30
30
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
31
31
|
}>>;
|
|
32
32
|
/**
|
|
@@ -39,7 +39,7 @@ export declare function handleByIdAndSaveWithPure<T extends {
|
|
|
39
39
|
id: string;
|
|
40
40
|
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): <Req extends {
|
|
41
41
|
id: T["id"];
|
|
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").
|
|
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, {
|
|
43
43
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
44
44
|
}>>;
|
|
45
45
|
/**
|
|
@@ -49,7 +49,7 @@ export declare function saveManyWithPure_<R, T extends {
|
|
|
49
49
|
id: unknown;
|
|
50
50
|
}, Encoded extends {
|
|
51
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").
|
|
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, {
|
|
53
53
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
54
54
|
}>>;
|
|
55
55
|
/**
|
|
@@ -59,14 +59,14 @@ export declare function saveWithPure_<R, T extends {
|
|
|
59
59
|
id: unknown;
|
|
60
60
|
}, Encoded extends {
|
|
61
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").
|
|
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, {
|
|
63
63
|
env: import("effect-app/Pure").PureEnv<Evt, S1, S2>;
|
|
64
64
|
}>>;
|
|
65
65
|
export declare function saveAllWithEffectInt<T extends {
|
|
66
66
|
id: unknown;
|
|
67
67
|
}, Encoded extends {
|
|
68
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").
|
|
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>;
|
|
70
70
|
/**
|
|
71
71
|
* @tsplus fluent Repository saveManyWithPureBatched
|
|
72
72
|
*/
|
|
@@ -74,7 +74,7 @@ export declare function saveManyWithPureBatched<T extends {
|
|
|
74
74
|
id: unknown;
|
|
75
75
|
}, Encoded extends {
|
|
76
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").
|
|
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, {
|
|
78
78
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
79
79
|
}>>;
|
|
80
80
|
/**
|
|
@@ -84,7 +84,7 @@ export declare function saveManyWithPureBatched_<R, T extends {
|
|
|
84
84
|
id: unknown;
|
|
85
85
|
}, Encoded extends {
|
|
86
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").
|
|
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, {
|
|
88
88
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
89
89
|
}>>;
|
|
90
90
|
/**
|
|
@@ -94,7 +94,7 @@ export declare function save<T extends {
|
|
|
94
94
|
id: unknown;
|
|
95
95
|
}, Encoded extends {
|
|
96
96
|
id: string;
|
|
97
|
-
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").
|
|
97
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
|
|
98
98
|
/**
|
|
99
99
|
* @tsplus getter Repository saveWithEvents
|
|
100
100
|
*/
|
|
@@ -102,7 +102,7 @@ export declare function saveWithEvents<T extends {
|
|
|
102
102
|
id: unknown;
|
|
103
103
|
}, Encoded extends {
|
|
104
104
|
id: string;
|
|
105
|
-
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").
|
|
105
|
+
}, Evt, ItemType extends string>(self: RepositoryBaseC<T, Encoded, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").OptimisticConcurrencyException | import("effect-app/client/errors").InvalidStateError>;
|
|
106
106
|
/**
|
|
107
107
|
* @tsplus fluent Repository updateWithEffect
|
|
108
108
|
*/
|
|
@@ -110,7 +110,7 @@ export declare function itemUpdateWithEffect<R, E, T extends {
|
|
|
110
110
|
id: string;
|
|
111
111
|
}, Encoded extends {
|
|
112
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").
|
|
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>;
|
|
114
114
|
/**
|
|
115
115
|
* @tsplus fluent Repository update
|
|
116
116
|
*/
|
|
@@ -118,7 +118,7 @@ export declare function itemUpdate<T extends {
|
|
|
118
118
|
id: string;
|
|
119
119
|
}, Encoded extends {
|
|
120
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").
|
|
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>;
|
|
122
122
|
/**
|
|
123
123
|
* only use this as a shortcut if you don't have the item already
|
|
124
124
|
* @tsplus fluent Repository removeById
|
|
@@ -88,8 +88,8 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
88
88
|
get(id: T["id"]): Effect.Effect<T, NotFoundError<ItemType>, never>;
|
|
89
89
|
readonly log: (evt: Evt) => import("effect-app/Pure").PureLogT<any>;
|
|
90
90
|
removeById(id: T["id"]): Effect.Effect<void, NotFoundError<ItemType>, never>;
|
|
91
|
-
readonly save: (items_0: T, ...items: T[]) => Effect<void,
|
|
92
|
-
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void,
|
|
91
|
+
readonly save: (items_0: T, ...items: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
92
|
+
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, OptimisticConcurrencyException | InvalidStateError>;
|
|
93
93
|
readonly queryAndSavePure: {
|
|
94
94
|
<A, E2, R2, T2 extends T>(q: (q: Query<Encoded>) => QueryEnd<Encoded, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, Exclude<R2, {
|
|
95
95
|
env: PureEnv<Evt, T, T2>;
|
|
@@ -106,7 +106,7 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
106
106
|
*/
|
|
107
107
|
readonly handleByIdAndSaveWithPure: <Req extends {
|
|
108
108
|
id: T["id"];
|
|
109
|
-
}, 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,
|
|
109
|
+
}, 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, OptimisticConcurrencyException | InvalidStateError | NotFoundError<ItemType> | E, Exclude<R, {
|
|
110
110
|
env: PureEnv<Evt, T, S2>;
|
|
111
111
|
}>>;
|
|
112
112
|
saveManyWithPure: {
|
|
@@ -122,7 +122,7 @@ export declare class RepositoryBaseC3<T extends {
|
|
|
122
122
|
env: PureEnv<Evt, T, S2>;
|
|
123
123
|
}>>;
|
|
124
124
|
};
|
|
125
|
-
saveWithPure<R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A,
|
|
125
|
+
saveWithPure<R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, OptimisticConcurrencyException | InvalidStateError | E, Exclude<R, {
|
|
126
126
|
env: PureEnv<Evt, S1, S2>;
|
|
127
127
|
}>>;
|
|
128
128
|
}
|
|
@@ -145,7 +145,7 @@ export declare function makeRepo<Evt = never>(): <ItemType extends string, R, En
|
|
|
145
145
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
146
146
|
partitionValue?: (a: Encoded) => string;
|
|
147
147
|
};
|
|
148
|
-
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType>, E,
|
|
148
|
+
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType>, E, StoreMaker | ContextMapContainer | R | RInitial | R2>;
|
|
149
149
|
Q: Query<Encoded>;
|
|
150
150
|
};
|
|
151
151
|
export declare function makeStore<Encoded extends {
|
|
@@ -25,7 +25,7 @@ declare const RequestContextContainer_base: (abstract new (service: {
|
|
|
25
25
|
requestContext: Effect<RequestContext>;
|
|
26
26
|
update: (f: (rc: RequestContext) => RequestContext) => Effect<RequestContext>;
|
|
27
27
|
start: (f: RequestContext) => Effect<void>;
|
|
28
|
-
}) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1,
|
|
28
|
+
}) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1, R_3 | RequestContextContainer> : Effect<X, never, RequestContextContainer>;
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
31
|
* @tsplus type RequestContextContainer
|
|
@@ -87,7 +87,7 @@ declare const StoreMaker_base: (abstract new (service: {
|
|
|
87
87
|
make: <Encoded extends {
|
|
88
88
|
id: Id;
|
|
89
89
|
}, Id extends string, R = never, E = never>(name: string, seed?: Effect<Iterable<Encoded>, E, R>, config?: StoreConfig<Encoded>) => Effect<Store<Encoded, Id>, E, R>;
|
|
90
|
-
}) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1,
|
|
90
|
+
}) => X) => X extends Effect<infer A_1, infer E_1, infer R_3> ? Effect<A_1, E_1, StoreMaker | R_3> : Effect<X, never, StoreMaker>;
|
|
91
91
|
};
|
|
92
92
|
/**
|
|
93
93
|
* @tsplus type StoreMaker
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"redlock": "^4.2.0",
|
|
23
23
|
"@effect-app/core": "1.11.0",
|
|
24
24
|
"@effect-app/infra-adapters": "1.13.1",
|
|
25
|
-
"effect-app": "1.
|
|
26
|
-
"
|
|
25
|
+
"@effect-app/schema": "1.13.0",
|
|
26
|
+
"effect-app": "1.19.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/cli": "^7.25.7",
|
package/src/api/routing2.ts
CHANGED
|
@@ -12,9 +12,42 @@ import { HttpRpcRouter } from "@effect/rpc-http"
|
|
|
12
12
|
import type { S } from "effect-app"
|
|
13
13
|
import { Effect, Predicate } from "effect-app"
|
|
14
14
|
import { HttpRouter } from "effect-app/http"
|
|
15
|
-
import type { GetEffectContext, Middleware } from "./routing2/DynamicMiddleware.js"
|
|
15
|
+
import type { ContextMap, GetEffectContext, Middleware } from "./routing2/DynamicMiddleware.js"
|
|
16
16
|
import { makeRpc } from "./routing2/DynamicMiddleware.js"
|
|
17
17
|
|
|
18
|
+
type GetRouteContext<CTXMap extends Record<string, ContextMap.Any>, T> =
|
|
19
|
+
// & CTX
|
|
20
|
+
// inverted
|
|
21
|
+
& {
|
|
22
|
+
[
|
|
23
|
+
key in keyof CTXMap as CTXMap[key][3] extends true ? never
|
|
24
|
+
: key extends keyof T ? T[key] extends true ? CTXMap[key][0] : never
|
|
25
|
+
: never
|
|
26
|
+
]?: CTXMap[key][1]
|
|
27
|
+
}
|
|
28
|
+
& {
|
|
29
|
+
[
|
|
30
|
+
key in keyof CTXMap as CTXMap[key][3] extends true ? never
|
|
31
|
+
: key extends keyof T ? T[key] extends false ? CTXMap[key][0] : never
|
|
32
|
+
: CTXMap[key][0]
|
|
33
|
+
]: CTXMap[key][1]
|
|
34
|
+
}
|
|
35
|
+
// normal
|
|
36
|
+
& {
|
|
37
|
+
[
|
|
38
|
+
key in keyof CTXMap as CTXMap[key][3] extends false ? never
|
|
39
|
+
: key extends keyof T ? T[key] extends true ? CTXMap[key][0] : never
|
|
40
|
+
: never
|
|
41
|
+
]: CTXMap[key][1]
|
|
42
|
+
}
|
|
43
|
+
& {
|
|
44
|
+
[
|
|
45
|
+
key in keyof CTXMap as CTXMap[key][3] extends false ? never
|
|
46
|
+
: key extends keyof T ? T[key] extends false ? CTXMap[key][0] : never
|
|
47
|
+
: CTXMap[key][0]
|
|
48
|
+
]?: CTXMap[key][1]
|
|
49
|
+
}
|
|
50
|
+
|
|
18
51
|
export interface Hint<Err extends string> {
|
|
19
52
|
Err: Err
|
|
20
53
|
}
|
|
@@ -68,8 +101,15 @@ type Filter<T> = {
|
|
|
68
101
|
[K in keyof T as T[K] extends S.Schema.All & { success: S.Schema.Any; failure: S.Schema.Any } ? K : never]: T[K]
|
|
69
102
|
}
|
|
70
103
|
|
|
71
|
-
|
|
72
|
-
|
|
104
|
+
interface ExtendedMiddleware<Context, CTXMap extends Record<string, ContextMap.Any>>
|
|
105
|
+
extends Middleware<Context, CTXMap>
|
|
106
|
+
{
|
|
107
|
+
// TODO
|
|
108
|
+
makeContext: Effect<{ [K in keyof CTXMap as CTXMap[K][0]]: CTXMap[K][1] }, never, never>
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export const makeRouter2 = <Context, CTXMap extends Record<string, ContextMap.Any>>(
|
|
112
|
+
middleware: ExtendedMiddleware<Context, CTXMap>
|
|
73
113
|
) => {
|
|
74
114
|
const rpc = makeRpc(middleware)
|
|
75
115
|
function matchFor<Rsc extends Record<string, any> & { meta: { moduleName: string } }>(
|
|
@@ -100,13 +140,16 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
100
140
|
f: (
|
|
101
141
|
req: S.Schema.Type<Rsc[Key]>,
|
|
102
142
|
ctx: Compute<
|
|
103
|
-
LowerServices<EffectDeps<SVC>> &
|
|
143
|
+
LowerServices<EffectDeps<SVC>> & GetRouteContext<CTXMap, Rsc[Key]> & { Response: Rsc[Key]["success"] },
|
|
104
144
|
"flat"
|
|
105
145
|
>
|
|
106
146
|
) => Effect<A, E, R2>
|
|
107
147
|
) =>
|
|
108
148
|
(req: any) =>
|
|
109
|
-
Effect.andThen(
|
|
149
|
+
Effect.andThen(
|
|
150
|
+
Effect.all({ svc: allLower(services), ctx: middleware.makeContext }),
|
|
151
|
+
({ ctx, svc }) => f(req, { ...svc, ...ctx, Response: rsc[action].success } as any)
|
|
152
|
+
)
|
|
110
153
|
}
|
|
111
154
|
|
|
112
155
|
type MatchWithServicesNew<RT extends "raw" | "d", Key extends keyof Rsc> = {
|
|
@@ -121,14 +164,14 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
121
164
|
A,
|
|
122
165
|
E,
|
|
123
166
|
Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
124
|
-
|
|
167
|
+
{ Response: Rsc[Key]["success"] } //
|
|
125
168
|
>
|
|
126
169
|
>
|
|
127
170
|
|
|
128
171
|
<R2, E, A>(
|
|
129
172
|
f: (
|
|
130
173
|
req: S.Schema.Type<Rsc[Key]>,
|
|
131
|
-
ctx:
|
|
174
|
+
ctx: GetRouteContext<CTXMap, Rsc[Key]> & { Response: Rsc[Key]["success"] }
|
|
132
175
|
) => Effect<A, E, R2>
|
|
133
176
|
): HandleVoid<
|
|
134
177
|
GetSuccessShape<Rsc[Key], RT>,
|
|
@@ -139,7 +182,7 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
139
182
|
A,
|
|
140
183
|
E,
|
|
141
184
|
Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
142
|
-
|
|
185
|
+
{ Response: Rsc[Key]["success"] } //
|
|
143
186
|
>
|
|
144
187
|
>
|
|
145
188
|
|
|
@@ -156,7 +199,7 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
156
199
|
f: (
|
|
157
200
|
req: S.Schema.Type<Rsc[Key]>,
|
|
158
201
|
ctx: Compute<
|
|
159
|
-
LowerServices<EffectDeps<SVC>> &
|
|
202
|
+
LowerServices<EffectDeps<SVC>> & GetRouteContext<CTXMap, Rsc[Key]> & { Response: Rsc[Key]["success"] },
|
|
160
203
|
"flat"
|
|
161
204
|
>
|
|
162
205
|
) => Effect<A, E, R2>
|
|
@@ -169,7 +212,7 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
169
212
|
A,
|
|
170
213
|
E,
|
|
171
214
|
Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
172
|
-
|
|
215
|
+
{ Response: Rsc[Key]["success"] } //
|
|
173
216
|
>
|
|
174
217
|
>
|
|
175
218
|
}
|
|
@@ -256,7 +299,11 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
256
299
|
? class {
|
|
257
300
|
static stack = stack
|
|
258
301
|
static _tag = "d"
|
|
259
|
-
static handler = (req: any
|
|
302
|
+
static handler = (req: any) =>
|
|
303
|
+
Effect.andThen(
|
|
304
|
+
Effect.all({ ctx: middleware.makeContext }),
|
|
305
|
+
({ ctx }) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].success })
|
|
306
|
+
)
|
|
260
307
|
}
|
|
261
308
|
: class {
|
|
262
309
|
static stack = stack
|