@effect-app/infra 1.26.2 → 1.27.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 +12 -0
- package/_cjs/api/routing2/DynamicMiddleware.cjs +2 -2
- package/_cjs/api/routing2/DynamicMiddleware.cjs.map +1 -1
- 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/DynamicMiddleware.d.ts +6 -6
- package/dist/api/routing2/DynamicMiddleware.d.ts.map +1 -1
- package/dist/api/routing2/DynamicMiddleware.js +3 -3
- package/dist/api/routing2.d.ts +15 -10
- 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 +1 -1
- package/src/api/routing2/DynamicMiddleware.ts +15 -9
- package/src/api/routing2.ts +64 -13
package/CHANGELOG.md
CHANGED
|
@@ -13,14 +13,14 @@ var _effectApp = require("effect-app");
|
|
|
13
13
|
const merge = (a, b) =>
|
|
14
14
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
15
15
|
a !== undefined && b.length ? _effectApp.S.Union(a, ...b) : a !== undefined ? a : b.length ? _effectApp.S.Union(...b) : _effectApp.S.Never;
|
|
16
|
-
const makeRpcClient = errors => {
|
|
16
|
+
const makeRpcClient = (errors, generalErrors) => {
|
|
17
17
|
function TaggedRequest() {
|
|
18
18
|
// TODO: filter errors based on config + take care of inversion
|
|
19
19
|
const errorSchemas = Object.values(errors);
|
|
20
20
|
return (tag, fields, config) => {
|
|
21
21
|
const req = _effectApp.S.TaggedRequest()(tag, {
|
|
22
22
|
payload: fields,
|
|
23
|
-
failure: merge(config?.failure, errorSchemas),
|
|
23
|
+
failure: merge(config?.failure, [...errorSchemas, generalErrors]),
|
|
24
24
|
success: config?.success ?? _effectApp.S.Void
|
|
25
25
|
});
|
|
26
26
|
return Object.assign(req, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicMiddleware.cjs","names":["_rpc","require","_effectApp","merge","a","b","undefined","length","S","Union","Never","makeRpcClient","errors","TaggedRequest","errorSchemas","Object","values","tag","fields","config","req","payload","failure","success","Void","assign","exports","makeRpc","middleware","effect","schema","handler","moduleName","Rpc","execute"],"sources":["../../../src/api/routing2/DynamicMiddleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAuEA,MAAME,KAAK,GAAGA,CAACC,CAAM,EAAEC,CAAa;AAClC;AACAD,CAAC,KAAKE,SAAS,IAAID,CAAC,CAACE,MAAM,GAAGC,YAAC,CAACC,KAAK,CAACL,CAAC,EAAE,GAAGC,CAAC,CAAC,GAAGD,CAAC,KAAKE,SAAS,GAAGF,CAAC,GAAGC,CAAC,CAACE,MAAM,GAAGC,YAAC,CAACC,KAAK,CAAC,GAAGJ,CAAC,CAAC,GAAGG,YAAC,CAACE,KAAK;AAEpG,MAAMC,aAAa,
|
|
1
|
+
{"version":3,"file":"DynamicMiddleware.cjs","names":["_rpc","require","_effectApp","merge","a","b","undefined","length","S","Union","Never","makeRpcClient","errors","generalErrors","TaggedRequest","errorSchemas","Object","values","tag","fields","config","req","payload","failure","success","Void","assign","exports","makeRpc","middleware","effect","schema","handler","moduleName","Rpc","execute"],"sources":["../../../src/api/routing2/DynamicMiddleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAuEA,MAAME,KAAK,GAAGA,CAACC,CAAM,EAAEC,CAAa;AAClC;AACAD,CAAC,KAAKE,SAAS,IAAID,CAAC,CAACE,MAAM,GAAGC,YAAC,CAACC,KAAK,CAACL,CAAC,EAAE,GAAGC,CAAC,CAAC,GAAGD,CAAC,KAAKE,SAAS,GAAGF,CAAC,GAAGC,CAAC,CAACE,MAAM,GAAGC,YAAC,CAACC,KAAK,CAAC,GAAGJ,CAAC,CAAC,GAAGG,YAAC,CAACE,KAAK;AAEpG,MAAMC,aAAa,GAAGA,CAK3BC,MAA6C,EAC7CC,aAA6B,KAC3B;EAGF,SAASC,aAAaA,CAAA;IAqEpB;IACA,MAAMC,YAAY,GAAGC,MAAM,CAACC,MAAM,CAACL,MAAM,CAAC;IAC1C,OAAQ,CACNM,GAAQ,EACRC,MAAc,EACdC,MAAU,KACR;MACF,MAAMC,GAAG,GAAGb,YAAC,CAACM,aAAa,EAAQ,CAACI,GAAG,EAAE;QACvCI,OAAO,EAAEH,MAAM;QACfI,OAAO,EAAEpB,KAAK,CAACiB,MAAM,EAAEG,OAAO,EAAE,CAAC,GAAGR,YAAY,EAAEF,aAAa,CAAC,CAAC;QACjEW,OAAO,EAAEJ,MAAM,EAAEI,OAAO,IAAIhB,YAAC,CAACiB;OAC/B,CAAC;MACF,OAAOT,MAAM,CAACU,MAAM,CAACL,GAAG,EAAE;QAAED;MAAM,CAAE,CAAC;IACvC,CAAC;EACH;EAEA,OAAO;IACLN;GACD;AACH,CAAC;AAAAa,OAAA,CAAAhB,aAAA,GAAAA,aAAA;AA0BM,MAAMiB,OAAO,GAClBC,UAAuC,IACrC;EACF,OAAO;IACLC,MAAM,EAAEA,CACNC,MAAqC,EACrCC,OAMC,EACDC,UAAmB,KACjB;MACF,OAAOC,QAAG,CAACJ,MAAM,CACfC,MAAM,EACNF,UAAU,CAACM,OAAO,CAACJ,MAAM,EAAEC,OAAO,EAAEC,UAAU,CAAC,CAChD;IACH;GACD;AACH,CAAC;AAAAN,OAAA,CAAAC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
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"}
|
|
@@ -30,38 +30,38 @@ export type GetEffectError<CTXMap extends Record<string, ContextMap.Any>, T> = V
|
|
|
30
30
|
}>;
|
|
31
31
|
type GetFailure1<F1> = F1 extends S.Schema.Any ? F1 : typeof S.Never;
|
|
32
32
|
type GetFailure<F1, F2> = F1 extends S.Schema.Any ? F2 extends S.Schema.Any ? S.Union<[F1, F2]> : F1 : F2;
|
|
33
|
-
export declare const makeRpcClient: <RequestConfig extends object, CTXMap extends Record<string, ContextMap.Any
|
|
33
|
+
export declare const makeRpcClient: <RequestConfig extends object, CTXMap extends Record<string, ContextMap.Any>, GeneralErrors extends S.Schema.Any>(errors: { [K in keyof CTXMap]: CTXMap[K][2]; }, generalErrors?: GeneralErrors) => {
|
|
34
34
|
TaggedRequest: <Self>() => {
|
|
35
35
|
<Tag extends string, Payload extends S.Struct.Fields, C extends {
|
|
36
36
|
success: S.Schema.Any;
|
|
37
37
|
failure: S.Schema.Any;
|
|
38
38
|
}>(tag: Tag, fields: Payload, config: RequestConfig & C): S.TaggedRequestClass<Self, Tag, {
|
|
39
39
|
readonly _tag: S.tag<Tag>;
|
|
40
|
-
} & Payload, (typeof config)["success"], GetEffectError<CTXMap, C> extends never ? (typeof config)["failure"] : GetFailure<(typeof config)["failure"], GetEffectError<CTXMap, C
|
|
40
|
+
} & Payload, (typeof config)["success"], (GetEffectError<CTXMap, C> extends never ? (typeof config)["failure"] : GetFailure<(typeof config)["failure"], GetEffectError<CTXMap, C>>) | GeneralErrors> & {
|
|
41
41
|
config: Omit<C, "success" | "failure">;
|
|
42
42
|
};
|
|
43
43
|
<Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends {
|
|
44
44
|
success: S.Schema.Any;
|
|
45
45
|
}>(tag: Tag, fields: Payload_1, config: RequestConfig & C_1): S.TaggedRequestClass<Self, Tag, {
|
|
46
46
|
readonly _tag: S.tag<Tag>;
|
|
47
|
-
} & Payload_1, (typeof config)["success"], GetFailure1<GetEffectError<CTXMap, C_1
|
|
47
|
+
} & Payload_1, (typeof config)["success"], GetFailure1<GetEffectError<CTXMap, C_1>> | GeneralErrors> & {
|
|
48
48
|
config: Omit<C_1, "success" | "failure">;
|
|
49
49
|
};
|
|
50
50
|
<Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends {
|
|
51
51
|
failure: S.Schema.Any;
|
|
52
52
|
}>(tag: Tag, fields: Payload_2, config: RequestConfig & C_2): S.TaggedRequestClass<Self, Tag, {
|
|
53
53
|
readonly _tag: S.tag<Tag>;
|
|
54
|
-
} & Payload_2, typeof S.Void, GetFailure1<GetEffectError<CTXMap, C_2
|
|
54
|
+
} & Payload_2, typeof S.Void, GetFailure1<GetEffectError<CTXMap, C_2>> | GeneralErrors> & {
|
|
55
55
|
config: Omit<C_2, "success" | "failure">;
|
|
56
56
|
};
|
|
57
57
|
<Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & RequestConfig): S.TaggedRequestClass<Self, Tag, {
|
|
58
58
|
readonly _tag: S.tag<Tag>;
|
|
59
|
-
} & Payload_3, typeof S.Void, GetFailure1<GetEffectError<CTXMap, C_3
|
|
59
|
+
} & Payload_3, typeof S.Void, GetFailure1<GetEffectError<CTXMap, C_3>> | GeneralErrors> & {
|
|
60
60
|
config: Omit<C_3, "success" | "failure">;
|
|
61
61
|
};
|
|
62
62
|
<Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): S.TaggedRequestClass<Self, Tag, {
|
|
63
63
|
readonly _tag: S.tag<Tag>;
|
|
64
|
-
} & Payload_4, typeof S.Void,
|
|
64
|
+
} & Payload_4, typeof S.Void, GeneralErrors>;
|
|
65
65
|
};
|
|
66
66
|
};
|
|
67
67
|
export interface Middleware<Context, CTXMap extends Record<string, ContextMap.Any>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing2/DynamicMiddleware.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing2/DynamicMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,14 +6,14 @@ import { S } from "effect-app";
|
|
|
6
6
|
const merge = (a, b) =>
|
|
7
7
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
8
8
|
a !== undefined && b.length ? S.Union(a, ...b) : a !== undefined ? a : b.length ? S.Union(...b) : S.Never;
|
|
9
|
-
export const makeRpcClient = (errors) => {
|
|
9
|
+
export const makeRpcClient = (errors, generalErrors) => {
|
|
10
10
|
function TaggedRequest() {
|
|
11
11
|
// TODO: filter errors based on config + take care of inversion
|
|
12
12
|
const errorSchemas = Object.values(errors);
|
|
13
13
|
return ((tag, fields, config) => {
|
|
14
14
|
const req = S.TaggedRequest()(tag, {
|
|
15
15
|
payload: fields,
|
|
16
|
-
failure: merge(config?.failure, errorSchemas),
|
|
16
|
+
failure: merge(config?.failure, [...errorSchemas, generalErrors]),
|
|
17
17
|
success: config?.success ?? S.Void
|
|
18
18
|
});
|
|
19
19
|
return Object.assign(req, { config });
|
|
@@ -30,4 +30,4 @@ export const makeRpc = (middleware) => {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcyL0R5bmFtaWNNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCx3REFBd0Q7QUFDeEQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFakMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQW9FOUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBYSxFQUFFLEVBQUU7QUFDdEMsaUVBQWlFO0FBQ2pFLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFM0csTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBSzNCLE1BQTZDLEVBQzdDLGFBQTZCLEVBQzdCLEVBQUU7SUFHRixTQUFTLGFBQWE7UUFxRXBCLCtEQUErRDtRQUMvRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxDQUNOLEdBQVEsRUFDUixNQUFjLEVBQ2QsTUFBVSxFQUNWLEVBQUU7WUFDRixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFRLENBQUMsR0FBRyxFQUFFO2dCQUN2QyxPQUFPLEVBQUUsTUFBTTtnQkFDZixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUk7YUFDbkMsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdkMsQ0FBQyxDQUFRLENBQUE7SUFDWCxDQUFDO0lBRUQsT0FBTztRQUNMLGFBQWE7S0FDZCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBMEJELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUNyQixVQUF1QyxFQUN2QyxFQUFFO0lBQ0YsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUNOLE1BQXFDLEVBQ3JDLE9BTUMsRUFDRCxVQUFtQixFQUNuQixFQUFFO1lBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUNmLE1BQU0sRUFDTixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQ2hELENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
|
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
|
}
|
|
@@ -24,9 +24,9 @@ export interface Handler<Action extends AnyRequestModule, RT extends "raw" | "d"
|
|
|
24
24
|
_tag: RT;
|
|
25
25
|
handler: (req: S.Schema.Type<Action>, ctx: Context) => Effect<A, E, R>;
|
|
26
26
|
}
|
|
27
|
-
type AHandler<Action extends AnyRequestModule> = Handler<Action, "raw", S.Schema.Encoded<GetSuccess<Action>>, S.Schema.Type<GetFailure<Action
|
|
27
|
+
type AHandler<Action extends AnyRequestModule> = Handler<Action, "raw", S.Schema.Encoded<GetSuccess<Action>>, S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError, any, {
|
|
28
28
|
Response: any;
|
|
29
|
-
}> | Handler<Action, "d", S.Schema.Type<GetSuccess<Action>>, S.Schema.Type<GetFailure<Action
|
|
29
|
+
}> | Handler<Action, "d", S.Schema.Type<GetSuccess<Action>>, S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError, any, {
|
|
30
30
|
Response: any;
|
|
31
31
|
}>;
|
|
32
32
|
type Filter<T> = {
|
|
@@ -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][1] extends never ? never : 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":"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,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAoC/F,MAAM,WAAW,IAAI,CAAC,GAAG,SAAS,MAAM;IACtC,GAAG,EAAE,GAAG,CAAA;CACT;AAED,KAAK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GACjE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,2DAA2D,CAAC,GACpG,MAAM,CAAA;AAEV,KAAK,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;CAAE,CAAA;AAEzF,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;CAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAA;AAKvF,KAAK,UAAU,CAAC,CAAC,SAAS;IAAE,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;CAAE,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;AAElH,MAAM,WAAW,OAAO,CAAC,MAAM,SAAS,gBAAgB,EAAE,EAAE,SAAS,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO;IAChG,QAAO,EAAE,CAAA;IACT,IAAI,EAAE,EAAE,CAAA;IACR,OAAO,EAAE,CACP,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,GAAG,EAAE,OAAO,KACT,MAAM,CACT,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAA;CACF;AAGD,KAAK,QAAQ,CAAC,MAAM,SAAS,gBAAgB,IACzC,OAAO,CACP,MAAM,EACN,KAAK,EACL,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EACpC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,EAC5D,GAAG,EACH;IAAE,QAAQ,EAAE,GAAG,CAAA;CAAE,CAClB,GACC,OAAO,CACP,MAAM,EACN,GAAG,EACH,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,EAC5D,GAAG,EACH;IAAE,QAAQ,EAAE,GAAG,CAAA;CAAE,CAClB,CAAA;AAEH,KAAK,MAAM,CAAC,CAAC,IAAI;KACd,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CACjH,CAAA;AAED,UAAU,kBAAkB,CAAC,OAAO,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CACjF,SAAQ,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;IAGnC,WAAW,EAAE,MAAM,CACjB;SAAG,CAAC,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,EAC1F,KAAK,EACL,KAAK,CACN,CAAA;CACF;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,cACpE,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC;eAuP7B,CAAC;;iBAAwC,CAAC,KAe9C,UAAU,CAAC,UAAU,mDAJH,CAAC,4EALI,CAAC,eAYnC;eAtQe,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,IAAI,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,OAC7E,GAAG;sBA2GN,SAAS,SAAS,GAEf,CAAS,qBAAA,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC9B,eAEY,SAAS,+JAgCnB,CAAC,6HAOiB,CAAC,kMAPnB,CAAC,wHAYY,GAAG;WAsEZ,GAAG;SA1LT,EAAE,EAAE,CAAC,EAAE,CAAC;;;SAeR,EAAE,sDAxJH,GAAG;;;;;SA2KD,GAAG,SAAS,MAAM,CAChB,MAAM,EACN,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/B,EACD,EAAE,mJA/KJ,GAAG;;;;;;eAyIE,CAAC,EAAE,CAAC;;;qEAzIT,GAAG;;;;;SA2KD,GAAG,SAAS,MAAM,CAChB,MAAM,EACN,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/B,EACD,EAAE,qJA/KJ,GAAG;;;;;;CA0WR,CAAA"}
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3JvdXRpbmcyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBEQUEwRDtBQUMxRCw0REFBNEQ7QUFDNUQsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQTRDLE1BQU0seUJBQXlCLENBQUE7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBSXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFtR3pELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUN6QixVQUErQyxFQUMvQyxFQUFFO0lBQ0YsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQy9CLFNBQVMsUUFBUSxDQUNmLEdBQVE7UUFFUixNQUFNLElBQUksR0FBSSxHQUFXLENBQUMsSUFBOEIsQ0FBQTtRQUN4RCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQSxDQUFDLDhDQUE4QztRQUczRyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3BELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDeEQs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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
|
@@ -77,9 +77,11 @@ const merge = (a: any, b: Array<any>) =>
|
|
|
77
77
|
|
|
78
78
|
export const makeRpcClient = <
|
|
79
79
|
RequestConfig extends object,
|
|
80
|
-
CTXMap extends Record<string, ContextMap.Any
|
|
80
|
+
CTXMap extends Record<string, ContextMap.Any>,
|
|
81
|
+
GeneralErrors extends S.Schema.Any
|
|
81
82
|
>(
|
|
82
|
-
errors: { [K in keyof CTXMap]: CTXMap[K][2] }
|
|
83
|
+
errors: { [K in keyof CTXMap]: CTXMap[K][2] },
|
|
84
|
+
generalErrors?: GeneralErrors
|
|
83
85
|
) => {
|
|
84
86
|
// Long way around Context/C extends etc to support actual jsdoc from passed in RequestConfig etc...
|
|
85
87
|
type Context = { success: S.Schema.Any; failure: S.Schema.Any }
|
|
@@ -94,8 +96,9 @@ export const makeRpcClient = <
|
|
|
94
96
|
Tag,
|
|
95
97
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
96
98
|
typeof config["success"],
|
|
97
|
-
GetEffectError<CTXMap, C> extends never ? typeof config["failure"]
|
|
98
|
-
: GetFailure<typeof config["failure"], GetEffectError<CTXMap, C>>
|
|
99
|
+
| (GetEffectError<CTXMap, C> extends never ? typeof config["failure"]
|
|
100
|
+
: GetFailure<typeof config["failure"], GetEffectError<CTXMap, C>>)
|
|
101
|
+
| GeneralErrors
|
|
99
102
|
> // typeof config["failure"]
|
|
100
103
|
& { config: Omit<C, "success" | "failure"> }
|
|
101
104
|
<Tag extends string, Payload extends S.Struct.Fields, C extends { success: S.Schema.Any }>(
|
|
@@ -108,7 +111,8 @@ export const makeRpcClient = <
|
|
|
108
111
|
Tag,
|
|
109
112
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
110
113
|
typeof config["success"],
|
|
111
|
-
GetFailure1<GetEffectError<CTXMap, C>>
|
|
114
|
+
| GetFailure1<GetEffectError<CTXMap, C>>
|
|
115
|
+
| GeneralErrors
|
|
112
116
|
>
|
|
113
117
|
& { config: Omit<C, "success" | "failure"> }
|
|
114
118
|
<Tag extends string, Payload extends S.Struct.Fields, C extends { failure: S.Schema.Any }>(
|
|
@@ -121,7 +125,8 @@ export const makeRpcClient = <
|
|
|
121
125
|
Tag,
|
|
122
126
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
123
127
|
typeof S.Void,
|
|
124
|
-
GetFailure1<GetEffectError<CTXMap, C>>
|
|
128
|
+
| GetFailure1<GetEffectError<CTXMap, C>>
|
|
129
|
+
| GeneralErrors
|
|
125
130
|
>
|
|
126
131
|
& { config: Omit<C, "success" | "failure"> }
|
|
127
132
|
<Tag extends string, Payload extends S.Struct.Fields, C extends Record<string, any>>(
|
|
@@ -134,7 +139,8 @@ export const makeRpcClient = <
|
|
|
134
139
|
Tag,
|
|
135
140
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
136
141
|
typeof S.Void,
|
|
137
|
-
GetFailure1<GetEffectError<CTXMap, C>>
|
|
142
|
+
| GetFailure1<GetEffectError<CTXMap, C>>
|
|
143
|
+
| GeneralErrors
|
|
138
144
|
>
|
|
139
145
|
& { config: Omit<C, "success" | "failure"> }
|
|
140
146
|
<Tag extends string, Payload extends S.Struct.Fields>(
|
|
@@ -145,7 +151,7 @@ export const makeRpcClient = <
|
|
|
145
151
|
Tag,
|
|
146
152
|
{ readonly _tag: S.tag<Tag> } & Payload,
|
|
147
153
|
typeof S.Void,
|
|
148
|
-
|
|
154
|
+
GeneralErrors
|
|
149
155
|
>
|
|
150
156
|
} {
|
|
151
157
|
// TODO: filter errors based on config + take care of inversion
|
|
@@ -157,7 +163,7 @@ export const makeRpcClient = <
|
|
|
157
163
|
) => {
|
|
158
164
|
const req = S.TaggedRequest<Self>()(tag, {
|
|
159
165
|
payload: fields,
|
|
160
|
-
failure: merge(config?.failure, errorSchemas),
|
|
166
|
+
failure: merge(config?.failure, [...errorSchemas, generalErrors]),
|
|
161
167
|
success: config?.success ?? S.Void
|
|
162
168
|
})
|
|
163
169
|
return Object.assign(req, { config })
|
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
|
}
|
|
@@ -51,7 +84,7 @@ type AHandler<Action extends AnyRequestModule> =
|
|
|
51
84
|
Action,
|
|
52
85
|
"raw",
|
|
53
86
|
S.Schema.Encoded<GetSuccess<Action>>,
|
|
54
|
-
S.Schema.Type<GetFailure<Action
|
|
87
|
+
S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError,
|
|
55
88
|
any,
|
|
56
89
|
{ Response: any }
|
|
57
90
|
>
|
|
@@ -59,7 +92,7 @@ type AHandler<Action extends AnyRequestModule> =
|
|
|
59
92
|
Action,
|
|
60
93
|
"d",
|
|
61
94
|
S.Schema.Type<GetSuccess<Action>>,
|
|
62
|
-
S.Schema.Type<GetFailure<Action
|
|
95
|
+
S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError,
|
|
63
96
|
any,
|
|
64
97
|
{ Response: any }
|
|
65
98
|
>
|
|
@@ -68,8 +101,19 @@ 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<
|
|
109
|
+
{ [K in keyof CTXMap as CTXMap[K][1] extends never ? never : CTXMap[K][0]]: CTXMap[K][1] },
|
|
110
|
+
never,
|
|
111
|
+
never
|
|
112
|
+
>
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export const makeRouter2 = <Context, CTXMap extends Record<string, ContextMap.Any>>(
|
|
116
|
+
middleware: ExtendedMiddleware<Context, CTXMap>
|
|
73
117
|
) => {
|
|
74
118
|
const rpc = makeRpc(middleware)
|
|
75
119
|
function matchFor<Rsc extends Record<string, any> & { meta: { moduleName: string } }>(
|
|
@@ -100,13 +144,16 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
100
144
|
f: (
|
|
101
145
|
req: S.Schema.Type<Rsc[Key]>,
|
|
102
146
|
ctx: Compute<
|
|
103
|
-
LowerServices<EffectDeps<SVC>> &
|
|
147
|
+
LowerServices<EffectDeps<SVC>> & GetRouteContext<CTXMap, Rsc[Key]> & { Response: Rsc[Key]["success"] },
|
|
104
148
|
"flat"
|
|
105
149
|
>
|
|
106
150
|
) => Effect<A, E, R2>
|
|
107
151
|
) =>
|
|
108
152
|
(req: any) =>
|
|
109
|
-
Effect.andThen(
|
|
153
|
+
Effect.andThen(
|
|
154
|
+
Effect.all({ svc: allLower(services), ctx: middleware.makeContext }),
|
|
155
|
+
({ ctx, svc }) => f(req, { ...svc, ...ctx, Response: rsc[action].success } as any)
|
|
156
|
+
)
|
|
110
157
|
}
|
|
111
158
|
|
|
112
159
|
type MatchWithServicesNew<RT extends "raw" | "d", Key extends keyof Rsc> = {
|
|
@@ -121,14 +168,14 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
121
168
|
A,
|
|
122
169
|
E,
|
|
123
170
|
Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
124
|
-
|
|
171
|
+
{ Response: Rsc[Key]["success"] } //
|
|
125
172
|
>
|
|
126
173
|
>
|
|
127
174
|
|
|
128
175
|
<R2, E, A>(
|
|
129
176
|
f: (
|
|
130
177
|
req: S.Schema.Type<Rsc[Key]>,
|
|
131
|
-
ctx:
|
|
178
|
+
ctx: GetRouteContext<CTXMap, Rsc[Key]> & { Response: Rsc[Key]["success"] }
|
|
132
179
|
) => Effect<A, E, R2>
|
|
133
180
|
): HandleVoid<
|
|
134
181
|
GetSuccessShape<Rsc[Key], RT>,
|
|
@@ -139,7 +186,7 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
139
186
|
A,
|
|
140
187
|
E,
|
|
141
188
|
Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
142
|
-
|
|
189
|
+
{ Response: Rsc[Key]["success"] } //
|
|
143
190
|
>
|
|
144
191
|
>
|
|
145
192
|
|
|
@@ -156,7 +203,7 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
156
203
|
f: (
|
|
157
204
|
req: S.Schema.Type<Rsc[Key]>,
|
|
158
205
|
ctx: Compute<
|
|
159
|
-
LowerServices<EffectDeps<SVC>> &
|
|
206
|
+
LowerServices<EffectDeps<SVC>> & GetRouteContext<CTXMap, Rsc[Key]> & { Response: Rsc[Key]["success"] },
|
|
160
207
|
"flat"
|
|
161
208
|
>
|
|
162
209
|
) => Effect<A, E, R2>
|
|
@@ -169,7 +216,7 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
169
216
|
A,
|
|
170
217
|
E,
|
|
171
218
|
Exclude<R2, GetEffectContext<CTXMap, Rsc[Key]["config"]>>,
|
|
172
|
-
|
|
219
|
+
{ Response: Rsc[Key]["success"] } //
|
|
173
220
|
>
|
|
174
221
|
>
|
|
175
222
|
}
|
|
@@ -256,7 +303,11 @@ export const makeRouter2 = <Context, CTXMap extends Record<string, [string, any,
|
|
|
256
303
|
? class {
|
|
257
304
|
static stack = stack
|
|
258
305
|
static _tag = "d"
|
|
259
|
-
static handler = (req: any
|
|
306
|
+
static handler = (req: any) =>
|
|
307
|
+
Effect.andThen(
|
|
308
|
+
Effect.all({ ctx: middleware.makeContext }),
|
|
309
|
+
({ ctx }) => svcOrFnOrEffect(req, { ...ctx, Response: rsc[cur].success })
|
|
310
|
+
)
|
|
260
311
|
}
|
|
261
312
|
: class {
|
|
262
313
|
static stack = stack
|