effect-app 3.0.2 → 3.0.4
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/dist/Context.d.ts +23 -2
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +6 -1
- package/dist/Layer.d.ts +35 -0
- package/dist/Layer.d.ts.map +1 -0
- package/dist/Layer.js +16 -0
- package/dist/NonEmptySet.d.ts +1 -1
- package/dist/client/apiClientFactory.d.ts +2 -18
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/makeClient.d.ts +58 -0
- package/dist/client/makeClient.d.ts.map +1 -0
- package/dist/client/makeClient.js +36 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -2
- package/dist/internal/Prelude.d.ts +2 -2
- package/dist/internal/Prelude.js +1 -1
- package/dist/{rpc/middleware-native.d.ts → middleware.d.ts} +5 -4
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +17 -0
- package/dist/rpc/{middleware-api.d.ts → MiddlewareMaker.d.ts} +64 -45
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -0
- package/dist/rpc/MiddlewareMaker.js +99 -0
- package/dist/rpc/RpcContextMap.d.ts +73 -0
- package/dist/rpc/RpcContextMap.d.ts.map +1 -0
- package/dist/rpc/RpcContextMap.js +33 -0
- package/dist/rpc/RpcMiddleware.d.ts +30 -37
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +2 -2
- package/dist/rpc.d.ts +2 -4
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +3 -5
- package/dist/utils/gen.d.ts +8 -0
- package/dist/utils/gen.d.ts.map +1 -0
- package/dist/utils/gen.js +2 -0
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +30 -24
- package/src/Context.ts +56 -0
- package/src/Layer.ts +60 -0
- package/src/client/makeClient.ts +150 -0
- package/src/client.ts +1 -1
- package/src/internal/Prelude.d.ts +2 -2
- package/src/internal/Prelude.js +1 -1
- package/src/{rpc/middleware-native.ts → middleware.ts} +4 -4
- package/src/rpc/{middleware-api.ts → MiddlewareMaker.ts} +170 -139
- package/src/rpc/README.md +41 -0
- package/src/rpc/RpcContextMap.ts +163 -0
- package/src/rpc/RpcMiddleware.ts +83 -43
- package/src/rpc.ts +2 -4
- package/src/utils/gen.ts +22 -0
- package/src/utils.ts +0 -2
- package/test/rpc.test.ts +1 -1
- package/dist/client/req.d.ts +0 -120
- package/dist/client/req.d.ts.map +0 -1
- package/dist/client/req.js +0 -56
- package/dist/rpc/RpcMiddlewareX.d.ts +0 -24
- package/dist/rpc/RpcMiddlewareX.d.ts.map +0 -1
- package/dist/rpc/RpcMiddlewareX.js +0 -16
- package/dist/rpc/generic-middleware.d.ts +0 -51
- package/dist/rpc/generic-middleware.d.ts.map +0 -1
- package/dist/rpc/generic-middleware.js +0 -24
- package/dist/rpc/middleware-api.d.ts.map +0 -1
- package/dist/rpc/middleware-api.js +0 -88
- package/dist/rpc/middleware-native.d.ts.map +0 -1
- package/dist/rpc/middleware-native.js +0 -17
- package/src/client/req.ts +0 -288
- package/src/rpc/RpcMiddlewareX.ts +0 -65
- package/src/rpc/generic-middleware.ts +0 -128
- package/wallaby.cjs +0 -1
|
@@ -1,36 +1,77 @@
|
|
|
1
1
|
import { Rpc, type RpcGroup, type RpcMiddleware, type RpcSchema } from "@effect/rpc";
|
|
2
|
-
import { type AnyWithProps } from "@effect/rpc/Rpc";
|
|
3
2
|
import { type HandlersFrom } from "@effect/rpc/RpcGroup";
|
|
4
|
-
import { Context,
|
|
5
|
-
import { type
|
|
6
|
-
import { type
|
|
3
|
+
import { Context, Effect, Layer, type Schema, Schema as S } from "effect";
|
|
4
|
+
import { type NonEmptyArray, type NonEmptyReadonlyArray } from "effect/Array";
|
|
5
|
+
import { type Tag } from "effect/Context";
|
|
6
|
+
import { type Scope } from "effect/Scope";
|
|
7
|
+
import { type Simplify } from "effect/Types";
|
|
7
8
|
import { type TypeTestId } from "../TypeTest.js";
|
|
8
|
-
import { type
|
|
9
|
-
import { type AnyDynamic, type RpcDynamic, type TagClassAny } from "./RpcMiddleware.js";
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
import { type GetContextConfig, type RpcContextMap } from "./RpcContextMap.js";
|
|
10
|
+
import { type AddMiddleware, type AnyDynamic, type RpcDynamic, type TagClassAny } from "./RpcMiddleware.js";
|
|
11
|
+
import * as RpcMiddlewareX from "./RpcMiddleware.js";
|
|
12
|
+
export interface MiddlewareMakerId {
|
|
13
|
+
readonly _id: unique symbol;
|
|
14
|
+
}
|
|
15
|
+
type MakeTags<A> = Context.Tag<A, A>;
|
|
16
|
+
export interface MiddlewareMaker<RequestContextMap extends Record<string, RpcContextMap.Any>, MiddlewareProviders extends ReadonlyArray<MiddlewareMaker.Any>> extends RpcMiddleware.TagClass<MiddlewareMakerId, "MiddlewareMaker", Simplify<{
|
|
17
|
+
readonly wrap: true;
|
|
18
|
+
} & (Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? {} : {
|
|
19
|
+
readonly requires: MakeTags<Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>;
|
|
20
|
+
}) & (MiddlewareMaker.ManyErrors<MiddlewareProviders> extends never ? {} : {
|
|
21
|
+
readonly failure: S.Schema<MiddlewareMaker.ManyErrors<MiddlewareProviders>>;
|
|
22
|
+
}) & (MiddlewareMaker.ManyProvided<MiddlewareProviders> extends never ? {} : {
|
|
23
|
+
readonly provides: MakeTags<MiddlewareMaker.ManyProvided<MiddlewareProviders>>;
|
|
24
|
+
})>> {
|
|
25
|
+
readonly layer: Layer.Layer<MiddlewareMakerId, never, Tag.Identifier<MiddlewareProviders[number]>>;
|
|
26
|
+
readonly requestContext: RequestContextTag<RequestContextMap>;
|
|
27
|
+
readonly requestContextMap: RequestContextMap;
|
|
28
|
+
}
|
|
29
|
+
export interface RequestContextTag<RequestContextMap extends Record<string, RpcContextMap.Any>> extends Context.Tag<"RequestContextConfig", GetContextConfig<RequestContextMap>> {
|
|
30
|
+
}
|
|
31
|
+
export declare namespace MiddlewareMaker {
|
|
32
|
+
type Any = TagClassAny;
|
|
33
|
+
type ApplyServices<A extends TagClassAny, R> = Exclude<R, Provided<A>> | Required<A>;
|
|
34
|
+
type ApplyManyServices<A extends NonEmptyReadonlyArray<TagClassAny>, R> = Exclude<R, {
|
|
35
|
+
[K in keyof A]: Provided<A[K]>;
|
|
36
|
+
}[number]> | {
|
|
37
|
+
[K in keyof A]: Required<A[K]>;
|
|
38
|
+
}[number];
|
|
39
|
+
type ManyProvided<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
40
|
+
[K in keyof A]: Provided<A[K]>;
|
|
41
|
+
}[number] : Provided<A[number]>;
|
|
42
|
+
type ManyRequired<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
43
|
+
[K in keyof A]: Required<A[K]>;
|
|
44
|
+
}[number] : Required<A[number]>;
|
|
45
|
+
type ManyErrors<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
46
|
+
[K in keyof A]: Errors<A[K]>;
|
|
47
|
+
}[number] : Errors<A[number]>;
|
|
48
|
+
type Provided<T> = T extends TagClassAny ? T extends {
|
|
49
|
+
provides: infer _P;
|
|
50
|
+
} ? _P : never : never;
|
|
51
|
+
type Errors<T> = T extends TagClassAny ? T extends {
|
|
52
|
+
failure: S.Schema.Any;
|
|
53
|
+
} ? S.Schema.Type<T["failure"]> : never : never;
|
|
54
|
+
type Required<T> = T extends TagClassAny ? T extends {
|
|
55
|
+
requires: infer _R;
|
|
56
|
+
} ? _R : never : never;
|
|
57
|
+
}
|
|
14
58
|
type GetDependsOnKeys<MW extends MiddlewareMaker.Any> = MW extends {
|
|
15
59
|
dependsOn: NonEmptyReadonlyArray<TagClassAny>;
|
|
16
60
|
} ? {
|
|
17
61
|
[K in keyof MW["dependsOn"]]: MW["dependsOn"][K] extends AnyDynamic ? MW["dependsOn"][K]["dynamic"]["key"] : never;
|
|
18
62
|
}[keyof MW["dependsOn"]] : never;
|
|
19
|
-
type FilterInDynamicMiddlewares<MWs extends ReadonlyArray<MiddlewareMaker.Any>, RequestContextMap extends Record<string,
|
|
63
|
+
type FilterInDynamicMiddlewares<MWs extends ReadonlyArray<MiddlewareMaker.Any>, RequestContextMap extends Record<string, RpcContextMap.Any>> = {
|
|
20
64
|
[K in keyof MWs]: MWs[K] extends {
|
|
21
65
|
dynamic: RpcDynamic<any, RequestContextMap[keyof RequestContextMap]>;
|
|
22
66
|
} ? MWs[K] : never;
|
|
23
67
|
};
|
|
24
68
|
type RecursiveHandleMWsSideways<MWs, R extends {
|
|
25
|
-
rcm: Record<string,
|
|
69
|
+
rcm: Record<string, RpcContextMap.Any>;
|
|
26
70
|
provided: keyof R["rcm"];
|
|
27
71
|
middlewares: ReadonlyArray<MiddlewareMaker.Any>;
|
|
28
72
|
dmp: any;
|
|
29
73
|
middlewareR: any;
|
|
30
|
-
}> = MWs extends [
|
|
31
|
-
infer F extends MiddlewareMaker.Any,
|
|
32
|
-
...infer Rest extends ReadonlyArray<MiddlewareMaker.Any>
|
|
33
|
-
] ? RecursiveHandleMWsSideways<Rest, {
|
|
74
|
+
}> = MWs extends [] ? R : MWs extends [infer F, ...infer Rest extends ReadonlyArray<any>] ? F extends MiddlewareMaker.Any ? RecursiveHandleMWsSideways<Rest, {
|
|
34
75
|
rcm: R["rcm"];
|
|
35
76
|
provided: Exclude<R["provided"] | FilterInDynamicMiddlewares<[F], R["rcm"]>[number]["dynamic"]["key"], GetDependsOnKeys<F>>;
|
|
36
77
|
middlewares: [...R["middlewares"], F];
|
|
@@ -38,8 +79,8 @@ type RecursiveHandleMWsSideways<MWs, R extends {
|
|
|
38
79
|
[U in FilterInDynamicMiddlewares<[F], R["rcm"]>[number] as U["dynamic"]["key"]]: U;
|
|
39
80
|
};
|
|
40
81
|
middlewareR: MiddlewareMaker.ApplyManyServices<[F], R["middlewareR"]>;
|
|
41
|
-
}> :
|
|
42
|
-
export interface BuildingMiddleware<RequestContextMap extends Record<string,
|
|
82
|
+
}> : `Absurd: F must extend MiddlewareMaker.Any` : never;
|
|
83
|
+
export interface BuildingMiddleware<RequestContextMap extends Record<string, RpcContextMap.Any>, Provided extends keyof RequestContextMap, Middlewares extends ReadonlyArray<MiddlewareMaker.Any>, DynamicMiddlewareProviders, out MiddlewareR extends {
|
|
43
84
|
_tag: string;
|
|
44
85
|
} = never> {
|
|
45
86
|
rpc: <const Tag extends string, Payload extends Schema.Schema.Any | Schema.Struct.Fields = typeof Schema.Void, Success extends Schema.Schema.Any = typeof Schema.Void, Error extends Schema.Schema.All = typeof Schema.Never, const Stream extends boolean = false, Config extends GetContextConfig<RequestContextMap> = {}>(tag: Tag, options?: {
|
|
@@ -70,38 +111,16 @@ export interface BuildingMiddleware<RequestContextMap extends Record<string, RPC
|
|
|
70
111
|
missingContext: MiddlewareR;
|
|
71
112
|
};
|
|
72
113
|
}
|
|
73
|
-
export type MiddlewaresBuilder<RequestContextMap extends Record<string,
|
|
114
|
+
export type MiddlewaresBuilder<RequestContextMap extends Record<string, RpcContextMap.Any>, Provided extends keyof RequestContextMap = never, Middlewares extends ReadonlyArray<MiddlewareMaker.Any> = [], DynamicMiddlewareProviders = unknown, MiddlewareR extends {
|
|
74
115
|
_tag: string;
|
|
75
116
|
} = never> = BuildingMiddleware<RequestContextMap, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> & // keyof Omit<RequestContextMap, Provided> extends never is true when all the dynamic middlewares are provided
|
|
76
117
|
(keyof Omit<RequestContextMap, Provided> extends never ? [MiddlewareR] extends [never] ? MiddlewareMaker<RequestContextMap, Middlewares> : {} : {});
|
|
77
|
-
export declare const makeMiddleware: <RequestContextMap extends Record<string,
|
|
78
|
-
export
|
|
79
|
-
readonly config: R extends {
|
|
80
|
-
readonly config: infer _C;
|
|
81
|
-
} ? _C : never;
|
|
82
|
-
} : never;
|
|
83
|
-
export declare const middlewareGroup: <RequestContextMap extends Record<string, RPCContextMap.Any>, Middleware extends Context.Tag<MiddlewareMakerId, any> & RpcMiddleware.TagClassAny & {
|
|
118
|
+
export declare const makeMiddleware: <RequestContextMap extends Record<string, RpcContextMap.Any>>(rcm: RequestContextMap) => MiddlewaresBuilder<RequestContextMap>;
|
|
119
|
+
export declare const middlewareGroup: <RequestContextMap extends Record<string, RpcContextMap.Any>, Middleware extends Context.Tag<MiddlewareMakerId, any> & RpcMiddleware.TagClassAny & {
|
|
84
120
|
readonly requestContext: RequestContextTag<RequestContextMap>;
|
|
85
121
|
readonly requestContextMap: RequestContextMap;
|
|
86
122
|
}>(middleware: Middleware) => <R extends Rpc.Any>(group: RpcGroup.RpcGroup<R>) => RpcGroup.RpcGroup<AddMiddleware<R, Middleware>> & {
|
|
87
|
-
toLayerDynamic: <Handlers extends HandlersFrom<AddMiddleware<R, Middleware>>, EX = never, RX = never>(build: Handlers | Effect.Effect<Handlers, EX, RX>) => Layer.Layer<Rpc.ToHandler<AddMiddleware<R, Middleware>>, EX, Exclude<RX, Scope> | HandlersContext<AddMiddleware<R, Middleware>, Handlers>>;
|
|
123
|
+
toLayerDynamic: <Handlers extends HandlersFrom<AddMiddleware<R, Middleware>>, EX = never, RX = never>(build: Handlers | Effect.Effect<Handlers, EX, RX>) => Layer.Layer<Rpc.ToHandler<AddMiddleware<R, Middleware>>, EX, Exclude<RX, Scope> | RpcMiddlewareX.HandlersContext<AddMiddleware<R, Middleware>, Handlers>>;
|
|
88
124
|
};
|
|
89
|
-
export type HandlersContext<Rpcs extends Rpc.Any, Handlers> = keyof Handlers extends infer K ? K extends keyof Handlers & string ? HandlerContext<Rpcs, K, Handlers[K]> : never : never;
|
|
90
|
-
export type HandlerContext<Rpcs extends Rpc.Any, K extends Rpcs["_tag"], Handler> = [Rpc.IsStream<Rpcs, K>] extends [
|
|
91
|
-
true
|
|
92
|
-
] ? Handler extends (...args: any) => Stream.Stream<infer _A, infer _E, infer _R> | Rpc.Fork<Stream.Stream<infer _A, infer _E, infer _R>> | Effect.Effect<ReadonlyMailbox<infer _A, infer _E>, infer _EX, infer _R> | Rpc.Fork<Effect.Effect<ReadonlyMailbox<infer _A, infer _E>, infer _EX, infer _R>> ? Exclude<ExcludeProvides<_R, Rpcs, K>, Scope> : never : Handler extends (...args: any) => Effect.Effect<infer _A, infer _E, infer _R> | Rpc.Fork<Effect.Effect<infer _A, infer _E, infer _R>> ? ExcludeProvides<_R, Rpcs, K> : never;
|
|
93
|
-
export type ExtractDynamicallyProvides<R extends Rpc.Any, Tag extends string> = R extends Rpc.Rpc<Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? _Middleware extends {
|
|
94
|
-
readonly requestContextMap: infer _RC;
|
|
95
|
-
} ? _RC extends Record<string, RPCContextMap.Any> ? R extends {
|
|
96
|
-
readonly config: infer _C;
|
|
97
|
-
} ? GetEffectContext<_RC, _C> : GetEffectContext<_RC, {}> : never : never : never;
|
|
98
|
-
export type ExtractProvides<R extends Rpc.Any, Tag extends string> = R extends Rpc.Rpc<Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? _Middleware extends {
|
|
99
|
-
readonly provides: Context.Tag<infer _I, infer _S>;
|
|
100
|
-
} ? _I : never : never;
|
|
101
|
-
export type ExcludeProvides<Env, R extends Rpc.Any, Tag extends string> = Exclude<Env, ExtractProvides<R, Tag> | ExtractDynamicallyProvides<R, Tag>>;
|
|
102
|
-
export interface MiddlewareMakerId {
|
|
103
|
-
readonly _id: unique symbol;
|
|
104
|
-
}
|
|
105
|
-
export type MakeTags<A> = Context.Tag<A, A>;
|
|
106
125
|
export {};
|
|
107
|
-
//# sourceMappingURL=
|
|
126
|
+
//# sourceMappingURL=MiddlewareMaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareMaker.d.ts","sourceRoot":"","sources":["../../src/rpc/MiddlewareMaker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAwB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACjI,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,OAAO,MAAM,CAAA;CAC5B;AAGD,KAAK,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEpC,MAAM,WAAW,eAAe,CAC9B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,mBAAmB,SAAS,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAC9D,SACA,aAAa,CAAC,QAAQ,CACpB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,CACJ;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GACvB,CAAC,OAAO,CACR,eAAe,CAAC,YAAY,CAAC,mBAAmB,CAAC,EACjD,eAAe,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAClD,SAAS,KAAK,GAAG,EAAE,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,OAAO,CACL,eAAe,CAAC,YAAY,CAAC,mBAAmB,CAAC,EACjD,eAAe,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAClD,CACF,CAAA;CACF,CAAC,GACA,CAAC,eAAe,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,KAAK,GAAG,EAAE,GACjE;IACA,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAA;CAC5E,CAAC,GACF,CAAC,eAAe,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,KAAK,GAAG,EAAE,GACnE;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAA;CAAE,CAAC,CACxF,CACF;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClG,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAC9C;AAED,MAAM,WAAW,iBAAiB,CAAC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAC5F,SAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CAChF;AAEF,yBAAiB,eAAe,CAAC;IAC/B,KAAY,GAAG,GAAG,WAAW,CAAA;IAE7B,KAAY,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3F,KAAY,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,IACzE,OAAO,CAAC,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,MAAM,CAAC,CAAC,GACtD;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,MAAM,CAAC,CAAA;IAE9C,KAAY,YAAY,CAAC,CAAC,SAAS,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,WAAW,CAAC,GACzG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,MAAM,CAAC,GAC1C,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACvB,KAAY,YAAY,CAAC,CAAC,SAAS,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,WAAW,CAAC,GACzG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,MAAM,CAAC,GAC1C,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACvB,KAAY,UAAU,CAAC,CAAC,SAAS,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,WAAW,CAAC,GACvG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,MAAM,CAAC,GACxC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAErB,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,SAAS;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,EAAE,GACnF,KAAK,GACL,KAAK,CAAA;IAET,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;KAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAC7G,KAAK,GACL,KAAK,CAAA;IAET,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,SAAS;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,EAAE,GACnF,KAAK,GACL,KAAK,CAAA;CACV;AAMD,KAAK,gBAAgB,CAAC,EAAE,SAAS,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS;IAAE,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;CAAE,GAAG;KAClH,CAAC,IAAI,MAAM,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GACtG,KAAK;CACV,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,GACtB,KAAK,CAAA;AAET,KAAK,0BAA0B,CAC7B,GAAG,SAAS,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EAC9C,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IACzD;KACD,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS;QAAE,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAA;KAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAC9G,KAAK;CACV,CAAA;AAED,KAAK,0BAA0B,CAC7B,GAAG,EACH,CAAC,SAAS;IACR,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAA;IACxB,WAAW,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IAC/C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,EAAE,GAAG,CAAA;CACjB,IACC,GAAG,SAAS,EAAE,GAAG,CAAC,GAClB,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,SAAS,aAAa,CAAC,GAAG,CAAC,CAAC,GAC7D,CAAC,SAAS,eAAe,CAAC,GAAG,GAAG,0BAA0B,CAAC,IAAI,EAAE;IAC/D,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;IAGb,QAAQ,EAAE,OAAO,CACf,CAAC,CAAC,UAAU,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAEnF,gBAAgB,CAAC,CAAC,CAAC,CACpB,CAAA;IACD,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,GAAG,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAE7E,CAAC,CAAC,KAAK,CAAC,GACR;SACC,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;KACnF,CAAA;IACL,WAAW,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;CACtE,CAAC,GAGF,2CAA2C,GAC7C,KAAK,CAAA;AAET,MAAM,WAAW,kBAAkB,CACjC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,QAAQ,SAAS,MAAM,iBAAiB,EACxC,WAAW,SAAS,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EACtD,0BAA0B,EAC1B,GAAG,CAAC,WAAW,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK;IAEhD,GAAG,EAAE,CACH,KAAK,CAAC,GAAG,SAAS,MAAM,EACxB,OAAO,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,EAC7E,OAAO,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACtD,KAAK,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,KAAK,EACrD,KAAK,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,EACpC,MAAM,SAAS,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EACvD,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;QAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;QAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAC1D,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAC5E,KAAK,CAAA;KACV,KACG,GAAG,CAAC,GAAG,CACP,GAAG,EACH,OAAO,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,EACvE,MAAM,SAAS,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,EAChE,MAAM,SAAS,IAAI,GAAG,OAAO,MAAM,CAAC,KAAK,GAAG,KAAK,CAClD,GACC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAE/B,UAAU,CAAC,GAAG,SAAS,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EACvD,GAAG,EAAE,EAAE,GAAG,GACT,0BAA0B,CAAC,GAAG,EAAE;QACjC,GAAG,EAAE,iBAAiB,CAAA;QACtB,QAAQ,EAAE,QAAQ,CAAA;QAClB,WAAW,EAAE,WAAW,CAAA;QACxB,GAAG,EAAE,0BAA0B,CAAA;QAC/B,WAAW,EAAE,WAAW,CAAA;KACzB,CAAC,SAAS,MAAM,GAAG,SAAS;QAC3B,GAAG,EAAE,iBAAiB,CAAA;QACtB,QAAQ,EAAE,MAAM,iBAAiB,CAAA;QACjC,WAAW,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC/C,GAAG,EAAE,GAAG,CAAA;QACR,WAAW,EAAE,GAAG,CAAA;KACjB,GAAG,kBAAkB,CAClB,GAAG,CAAC,KAAK,CAAC,EACV,GAAG,CAAC,UAAU,CAAC,EACf,GAAG,CAAC,aAAa,CAAC,EAClB,GAAG,CAAC,KAAK,CAAC,EACV,GAAG,CAAC,aAAa,CAAC,CACnB,GACC,KAAK,CAAA;IAGT,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;QACrB,yBAAyB,EAAE,OAAO,CAAC,MAAM,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QACrE,cAAc,EAAE,WAAW,CAAA;KAC5B,CAAA;CACF;AAED,MAAM,MAAM,kBAAkB,CAC5B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,QAAQ,SAAS,MAAM,iBAAiB,GAAG,KAAK,EAChD,WAAW,SAAS,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,EAC3D,0BAA0B,GAAG,OAAO,EACpC,WAAW,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,IAE1C,kBAAkB,CAClB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,0BAA0B,EAC1B,WAAW,CACZ,GACC,+GAA+G;AAEjH,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,SAAS,KAAK,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,eAAe,CAClG,iBAAiB,EACjB,WAAW,CACZ,GACD,EAAE,GACF,EAAE,CAAC,CAAA;AAiHT,eAAO,MAAM,cAAc,GACzB,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,KAAK,iBAAiB,KAAG,kBAAkB,CAAC,iBAAiB,CA0D9D,CAAA;AAGD,eAAO,MAAM,eAAe,GAC1B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3D,UAAU,SAAS,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG;IACnF,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAC9C,EAED,YAAY,UAAU,MAEvB,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;qBAMzC,QAAQ,SAAS,YAAY,8BAAI,EACjC,EAAE,UACF,EAAE,iBAGE,QAAQ,GACR,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,KAClC,KAAK,CAAC,KAAK,CACZ,GAAG,CAAC,SAAS,8BAAI,EACjB,EAAE,EACA,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,GAClB,cAAc,CAAC,eAAe,+BAAK,QAAQ,CAAC,CAC/C;CAIJ,CAAA"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Rpc } from "@effect/rpc";
|
|
3
|
+
import { Context, Effect, Layer, Schema as S } from "effect";
|
|
4
|
+
import { PreludeLogger } from "../logger.js";
|
|
5
|
+
import { typedValuesOf } from "../utils.js";
|
|
6
|
+
import * as RpcMiddlewareX from "./RpcMiddleware.js";
|
|
7
|
+
const middlewareMaker = (middlewares) => {
|
|
8
|
+
// we want to run them in reverse order because latter middlewares will provide context to former ones
|
|
9
|
+
middlewares = middlewares.toReversed();
|
|
10
|
+
return Effect.gen(function* () {
|
|
11
|
+
const context = yield* Effect.context();
|
|
12
|
+
// returns a Effect/RpcMiddlewareV4 with Scope in requirements
|
|
13
|
+
return (_options) => {
|
|
14
|
+
const { next, ...options } = _options;
|
|
15
|
+
// we start with the actual handler
|
|
16
|
+
let handler = next;
|
|
17
|
+
// inspired from Effect/RpcMiddleware
|
|
18
|
+
for (const tag of middlewares) {
|
|
19
|
+
// use the tag to get the middleware from context
|
|
20
|
+
const middleware = Context.unsafeGet(context, tag);
|
|
21
|
+
// wrap the current handler, allowing the middleware to run before and after it
|
|
22
|
+
handler = PreludeLogger.logDebug("Applying middleware wrap " + tag.key).pipe(Effect.zipRight(middleware(handler, options)));
|
|
23
|
+
}
|
|
24
|
+
return handler;
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const makeMiddlewareBasic =
|
|
29
|
+
// by setting RequestContextMap beforehand, execute contextual typing does not fuck up itself to anys
|
|
30
|
+
(rcm, ...make) => {
|
|
31
|
+
// reverse middlewares and wrap one after the other
|
|
32
|
+
const middleware = middlewareMaker(make);
|
|
33
|
+
const failures = make.map((_) => _.failure).filter(Boolean);
|
|
34
|
+
const provides = make.flatMap((_) => !_.provides ? [] : Array.isArray(_.provides) ? _.provides : [_.provides]);
|
|
35
|
+
const requires = make
|
|
36
|
+
.flatMap((_) => !_.requires ? [] : Array.isArray(_.requires) ? _.requires : [_.requires])
|
|
37
|
+
.filter((_) => !provides.includes(_));
|
|
38
|
+
const MiddlewareMaker = RpcMiddlewareX.Tag()("MiddlewareMaker", {
|
|
39
|
+
failure: (failures.length > 0
|
|
40
|
+
? S.Union(...failures)
|
|
41
|
+
: S.Never),
|
|
42
|
+
requires: (requires.length > 0
|
|
43
|
+
? requires
|
|
44
|
+
: undefined),
|
|
45
|
+
provides: (provides.length > 0
|
|
46
|
+
? provides
|
|
47
|
+
: undefined),
|
|
48
|
+
wrap: true
|
|
49
|
+
});
|
|
50
|
+
const layer = Layer
|
|
51
|
+
.scoped(MiddlewareMaker, middleware);
|
|
52
|
+
// add to the tag a default implementation
|
|
53
|
+
return Object.assign(MiddlewareMaker, {
|
|
54
|
+
layer,
|
|
55
|
+
// tag to be used to retrieve the RequestContextConfig from Rpc annotations
|
|
56
|
+
requestContext: Context.GenericTag("RequestContextConfig"),
|
|
57
|
+
requestContextMap: rcm
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export const makeMiddleware = (rcm) => {
|
|
61
|
+
let allMiddleware = [];
|
|
62
|
+
const requestContext = Context.GenericTag("RequestContextConfig");
|
|
63
|
+
const it = {
|
|
64
|
+
// rpc with config
|
|
65
|
+
rpc: (tag, options) => {
|
|
66
|
+
const config = options?.config ?? {};
|
|
67
|
+
// based on the config, we must enhance (union) or set failures.
|
|
68
|
+
// TODO: we should only include errors that are relevant based on the middleware config.ks
|
|
69
|
+
const error = options?.error;
|
|
70
|
+
const errors = typedValuesOf(rcm).map((_) => _.error).filter((_) => _ && _ !== S.Never); // TODO: only the errors relevant based on config
|
|
71
|
+
const newError = error ? S.Union(error, ...errors) : S.Union(...errors);
|
|
72
|
+
const rpc = Rpc.make(tag, { ...options, error: newError });
|
|
73
|
+
return Object.assign(rpc.annotate(requestContext, config), { config });
|
|
74
|
+
},
|
|
75
|
+
middleware: (...middlewares) => {
|
|
76
|
+
for (const mw of middlewares) {
|
|
77
|
+
// recall that we run middlewares in reverse order
|
|
78
|
+
allMiddleware = [mw, ...allMiddleware];
|
|
79
|
+
}
|
|
80
|
+
return allMiddleware.filter((m) => !!m.dynamic).length !== Object.keys(rcm).length
|
|
81
|
+
// for sure, until all the dynamic middlewares are provided it's non sensical to call makeMiddlewareBasic
|
|
82
|
+
? it
|
|
83
|
+
// actually, we don't know yet if MiddlewareR is never, but we can't easily check it at runtime
|
|
84
|
+
: Object.assign(makeMiddlewareBasic(rcm, ...allMiddleware), it);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
return it;
|
|
88
|
+
};
|
|
89
|
+
// alternatively consider group.serverMiddleware? hmmm
|
|
90
|
+
export const middlewareGroup = (middleware) => (group) => {
|
|
91
|
+
const middlewaredGroup = group.middleware(middleware);
|
|
92
|
+
const toLayerOriginal = middlewaredGroup.toLayer.bind(middlewaredGroup);
|
|
93
|
+
return Object.assign(middlewaredGroup, {
|
|
94
|
+
toLayerDynamic: (build) => {
|
|
95
|
+
return toLayerOriginal(build); // ??
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZU1ha2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9NaWRkbGV3YXJlTWFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQXFELE1BQU0sYUFBYSxDQUFBO0FBRXBGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBS3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUczQyxPQUFPLEtBQUssY0FBYyxNQUFNLG9CQUFvQixDQUFBO0FBd05wRCxNQUFNLGVBQWUsR0FBRyxDQUV0QixXQUFnQyxFQVVoQyxFQUFFO0lBQ0Ysc0dBQXNHO0lBQ3RHLFdBQVcsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFTLENBQUE7SUFFN0MsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFdkMsOERBQThEO1FBQzlELE9BQU8sQ0FDTCxRQUtJLEVBQ0osRUFBRTtZQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUE7WUFDckMsbUNBQW1DO1lBQ25DLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQTtZQUVsQixxQ0FBcUM7WUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDOUIsaURBQWlEO2dCQUNqRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFFbEQsK0VBQStFO2dCQUMvRSxPQUFPLEdBQUcsYUFBYSxDQUFD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
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { type AnyWithProps } from "@effect/rpc/Rpc";
|
|
2
|
+
import { Context, type Schema as S } from "effect";
|
|
3
|
+
import { type NonEmptyReadonlyArray } from "effect/Array";
|
|
4
|
+
import { type Tag } from "effect/Context";
|
|
5
|
+
import { type RpcDynamic } from "./RpcMiddleware.js";
|
|
6
|
+
/** Adapter used when setting the dynamic prop on a middleware implementation */
|
|
7
|
+
export declare const contextMap: <RequestContextMap extends Record<string, RpcContextMap.Any>, Key extends (keyof RequestContextMap) & string>(rcm: RequestContextMap, key: Key) => RpcDynamic<Key, RequestContextMap[Key]>;
|
|
8
|
+
/** Retrieves RequestContextConfig out of the Rpc annotations */
|
|
9
|
+
export declare const getConfig: <RequestContextMap extends Record<string, RpcContextMap.Any>>() => (rpc: AnyWithProps) => GetContextConfig<RequestContextMap>;
|
|
10
|
+
type Values<T extends Record<any, any>> = T[keyof T];
|
|
11
|
+
/** @deprecated just use Service Identifier Union */
|
|
12
|
+
export type ContextTagArray = NonEmptyReadonlyArray<Context.Tag<any, any>>;
|
|
13
|
+
/** @deprecated just use Service Identifier Union */
|
|
14
|
+
export declare namespace ContextTagArray {
|
|
15
|
+
type Identifier<A> = A extends ContextTagArray ? Tag.Identifier<A[number]> : never;
|
|
16
|
+
type Service<A> = A extends ContextTagArray ? Tag.Service<A[number]> : never;
|
|
17
|
+
}
|
|
18
|
+
/** @deprecated just use Service Identifier Union */
|
|
19
|
+
export type AnyService = Context.Tag<any, any> | ContextTagArray;
|
|
20
|
+
/** @deprecated just use Service Identifier Union */
|
|
21
|
+
export declare namespace AnyService {
|
|
22
|
+
type Bla<A> = A extends ContextTagArray ? Context.Context<ContextTagArray.Identifier<A>> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
|
|
23
|
+
type Identifier<A> = A extends ContextTagArray ? ContextTagArray.Identifier<A> : A extends Context.Tag<any, any> ? Tag.Identifier<A> : never;
|
|
24
|
+
type Service<A> = A extends ContextTagArray ? ContextTagArray.Service<A> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
|
|
25
|
+
}
|
|
26
|
+
export declare namespace RpcContextMap {
|
|
27
|
+
/**
|
|
28
|
+
* Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
|
|
29
|
+
* Unless explicitly configured as `true`.
|
|
30
|
+
*/
|
|
31
|
+
type RpcContextMap<Service, E> = {
|
|
32
|
+
service: Service;
|
|
33
|
+
error: E;
|
|
34
|
+
contextActivation: true;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context.
|
|
38
|
+
* Unless explicitly omitted.
|
|
39
|
+
*/
|
|
40
|
+
type Inverted<Service extends AnyService, E> = {
|
|
41
|
+
service: Service;
|
|
42
|
+
error: E;
|
|
43
|
+
contextActivation: false;
|
|
44
|
+
};
|
|
45
|
+
type Custom<Service extends AnyService, E, C> = {
|
|
46
|
+
service: Service;
|
|
47
|
+
error: E;
|
|
48
|
+
contextActivation: C;
|
|
49
|
+
};
|
|
50
|
+
type Any = {
|
|
51
|
+
service: AnyService;
|
|
52
|
+
error: S.Schema.All;
|
|
53
|
+
contextActivation: any;
|
|
54
|
+
};
|
|
55
|
+
const make: <Service extends AnyService, E>(service: Service, error: E) => RpcContextMap<Service, E>;
|
|
56
|
+
const makeInverted: <Service extends AnyService, E>(service: Service, error: E) => Inverted<Service, E>;
|
|
57
|
+
const makeCustom: <Service extends AnyService, E, C>(service: Service, error: E, contextActivation: C) => Custom<Service, E, C>;
|
|
58
|
+
}
|
|
59
|
+
export type GetContextConfig<RequestContextMap extends Record<string, RpcContextMap.Any>> = {
|
|
60
|
+
[K in keyof RequestContextMap]?: RequestContextMap[K]["contextActivation"] extends true ? false : RequestContextMap[K]["contextActivation"] extends false ? true : RequestContextMap[K]["contextActivation"];
|
|
61
|
+
};
|
|
62
|
+
export type GetEffectContext<RequestContextMap extends Record<string, RpcContextMap.Any>, T> = Values<{
|
|
63
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: AnyService.Identifier<RequestContextMap[key]["service"]>;
|
|
64
|
+
} & {
|
|
65
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: AnyService.Identifier<RequestContextMap[key]["service"]>;
|
|
66
|
+
}>;
|
|
67
|
+
export type GetEffectError<RequestContextMap extends Record<string, RpcContextMap.Any>, T> = Values<{
|
|
68
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: RequestContextMap[key]["error"];
|
|
69
|
+
} & {
|
|
70
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: RequestContextMap[key]["error"];
|
|
71
|
+
}>;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=RpcContextMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcContextMap.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcContextMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
import { Context } from "effect";
|
|
5
|
+
/** Adapter used when setting the dynamic prop on a middleware implementation */
|
|
6
|
+
export const contextMap = (rcm, key) => ({
|
|
7
|
+
key,
|
|
8
|
+
settings: { service: rcm[key]["service"] }
|
|
9
|
+
});
|
|
10
|
+
const tag = Context.GenericTag("RequestContextConfig");
|
|
11
|
+
/** Retrieves RequestContextConfig out of the Rpc annotations */
|
|
12
|
+
export const getConfig = () => (rpc) => {
|
|
13
|
+
return Context.getOrElse(rpc.annotations, tag, () => ({}));
|
|
14
|
+
};
|
|
15
|
+
export var RpcContextMap;
|
|
16
|
+
(function (RpcContextMap) {
|
|
17
|
+
RpcContextMap.make = (service, error) => ({
|
|
18
|
+
service,
|
|
19
|
+
error,
|
|
20
|
+
contextActivation: true
|
|
21
|
+
});
|
|
22
|
+
RpcContextMap.makeInverted = (service, error) => ({
|
|
23
|
+
service,
|
|
24
|
+
error,
|
|
25
|
+
contextActivation: false
|
|
26
|
+
});
|
|
27
|
+
RpcContextMap.makeCustom = (service, error, contextActivation) => ({
|
|
28
|
+
service,
|
|
29
|
+
error,
|
|
30
|
+
contextActivation
|
|
31
|
+
});
|
|
32
|
+
})(RpcContextMap || (RpcContextMap = {}));
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjQ29udGV4dE1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ycGMvUnBjQ29udGV4dE1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUd2RCxPQUFPLEVBQUUsT0FBTyxFQUFvQixNQUFNLFFBQVEsQ0FBQTtBQUtsRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBR3hCLEdBQXNCLEVBQUUsR0FBUSxFQUEyQyxFQUFFLENBQUMsQ0FBQztJQUMvRSxHQUFHO0lBQ0gsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxTQUFTLENBQUMsRUFBNEI7Q0FDdEUsQ0FBQyxDQUFBO0FBRUYsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQ3RELGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FFckIsRUFBRSxDQUNOLENBQUMsR0FBaUIsRUFBdUMsRUFBRTtJQUN6RCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ25FLENBQUMsQ0FBQTtBQTRCRCxNQUFNLEtBQVcsYUFBYSxDQTREN0I7QUE1REQsV0FBaUIsYUFBYTtJQWlDZixrQkFBSSxHQUFHLENBQ2xCLE9BQWdCLEVBQ2hCLEtBQVEsRUFDbUIsRUFBRSxDQUFDLENBQUM7UUFDL0IsT0FBTztRQUNQLEtBQUs7UUFDTCxpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCLENBQUMsQ0FBQTtJQUVXLDBCQUFZLEdBQUcsQ0FDMUIsT0FBZ0IsRUFDaEIsS0FBUSxFQUNjLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE9BQU87UUFDUCxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixDQUFDLENBQUE7SUFFVyx3QkFBVSxHQUFHLENBQ3hCLE9BQWdCLEVBQ2hCLEtBQVEsRUFDUixpQkFBb0IsRUFDRyxFQUFFLENBQUMsQ0FBQztRQUMzQixPQUFPO1FBQ1AsS0FBSztRQUNMLGlCQUFpQjtLQUNsQixDQUFDLENBQUE7QUFDSixDQUFDLEVBNURnQixhQUFhLEtBQWIsYUFBYSxRQTREN0IifQ==
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { type Rpc } from "@effect/rpc";
|
|
1
|
+
import { type Rpc, RpcMiddleware } from "@effect/rpc";
|
|
2
2
|
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware";
|
|
3
|
-
import { type Context, type Effect, type
|
|
4
|
-
import type { ContextTagArray, RPCContextMap } from "effect-app/client/req";
|
|
3
|
+
import { type Context, type Effect, type Schema, type Schema as S, type Scope, type Stream } from "effect";
|
|
5
4
|
import { type HttpHeaders } from "effect-app/http";
|
|
6
|
-
|
|
5
|
+
import { type NonEmptyReadonlyArray } from "effect/Array";
|
|
6
|
+
import { type ReadonlyMailbox } from "effect/Mailbox";
|
|
7
|
+
import { type GetEffectContext, type RpcContextMap } from "./RpcContextMap.js";
|
|
8
|
+
export interface RpcMiddlewareV4<Provides, E, Requires> {
|
|
7
9
|
(effect: Effect.Effect<SuccessValue, E, Provides | Scope.Scope | Requires>, options: {
|
|
8
10
|
readonly clientId: number;
|
|
9
11
|
readonly rpc: Rpc.AnyWithProps;
|
|
@@ -16,7 +18,7 @@ export type RpcOptionsOriginal = {
|
|
|
16
18
|
readonly failure?: Schema.Schema.All;
|
|
17
19
|
readonly requiredForClient?: boolean;
|
|
18
20
|
};
|
|
19
|
-
export type RpcDynamic<Key extends string, A extends
|
|
21
|
+
export type RpcDynamic<Key extends string, A extends RpcContextMap.Any> = {
|
|
20
22
|
key: Key;
|
|
21
23
|
settings: A;
|
|
22
24
|
};
|
|
@@ -26,12 +28,12 @@ export type AnyDynamic = {
|
|
|
26
28
|
export type DependsOn = {
|
|
27
29
|
readonly dependsOn: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
28
30
|
};
|
|
29
|
-
export interface RpcOptionsDynamic<Key extends string, A extends
|
|
31
|
+
export interface RpcOptionsDynamic<Key extends string, A extends RpcContextMap.Any> extends RpcOptionsOriginal {
|
|
30
32
|
readonly dynamic: RpcDynamic<Key, A>;
|
|
31
33
|
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
32
34
|
}
|
|
33
35
|
export type Dynamic<Options> = Options extends RpcOptionsDynamic<any, any> ? true : false;
|
|
34
|
-
export interface
|
|
36
|
+
export interface RpcMiddlewareDynamic<E, R, _Config> {
|
|
35
37
|
(effect: Effect.Effect<SuccessValue, E, Scope.Scope | R>, options: {
|
|
36
38
|
readonly clientId: number;
|
|
37
39
|
readonly rpc: Rpc.AnyWithProps;
|
|
@@ -51,26 +53,6 @@ export interface TagClassAny extends Context.Tag<any, any> {
|
|
|
51
53
|
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
52
54
|
}
|
|
53
55
|
export declare namespace TagClass {
|
|
54
|
-
/**
|
|
55
|
-
* @since 1.0.0
|
|
56
|
-
* @category models
|
|
57
|
-
*/
|
|
58
|
-
type Provides<Options> = Options extends {
|
|
59
|
-
readonly provides: Context.Tag<any, any>;
|
|
60
|
-
readonly optional?: false;
|
|
61
|
-
} ? Context.Tag.Identifier<Options["provides"]> : Options extends {
|
|
62
|
-
readonly provides: ContextTagArray;
|
|
63
|
-
readonly optional?: false;
|
|
64
|
-
} ? ContextTagArray.Identifier<Options["provides"]> : never;
|
|
65
|
-
/**
|
|
66
|
-
* @since 1.0.0
|
|
67
|
-
* @category models
|
|
68
|
-
*/
|
|
69
|
-
type Requires<Options> = Options extends {
|
|
70
|
-
readonly requires: Context.Tag<any, any>;
|
|
71
|
-
} ? Context.Tag.Identifier<Options["requires"]> : Options extends {
|
|
72
|
-
readonly requires: ContextTagArray;
|
|
73
|
-
} ? ContextTagArray.Identifier<Options["requires"]> : never;
|
|
74
56
|
/**
|
|
75
57
|
* @since 1.0.0
|
|
76
58
|
* @category models
|
|
@@ -113,13 +95,6 @@ export declare namespace TagClass {
|
|
|
113
95
|
type RequiredForClient<Options> = Options extends {
|
|
114
96
|
readonly requiredForClient: true;
|
|
115
97
|
} ? true : false;
|
|
116
|
-
/**
|
|
117
|
-
* @since 1.0.0
|
|
118
|
-
* @category models
|
|
119
|
-
*/
|
|
120
|
-
type Wrap<Options> = Options extends {
|
|
121
|
-
readonly wrap: true;
|
|
122
|
-
} ? true : false;
|
|
123
98
|
/**
|
|
124
99
|
* @since 1.0.0
|
|
125
100
|
* @category models
|
|
@@ -146,9 +121,9 @@ export interface TagClass<Self, Name extends string, Options, Config extends {
|
|
|
146
121
|
} = {
|
|
147
122
|
requires: never;
|
|
148
123
|
provides: never;
|
|
149
|
-
}> extends TagClass.Base<Self, Name, Options, Options extends RpcOptionsDynamic<any, any> ?
|
|
124
|
+
}> extends TagClass.Base<Self, Name, Options, Options extends RpcOptionsDynamic<any, any> ? RpcMiddlewareDynamic<TagClass.FailureService<Options>, "requires" extends keyof Config ? Config["requires"] : never, {
|
|
150
125
|
[K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"];
|
|
151
|
-
}> :
|
|
126
|
+
}> : RpcMiddlewareV4<"provides" extends keyof Config ? Config["provides"] : never, TagClass.Failure<Options>, "requires" extends keyof Config ? Config["requires"] : never>, Config> {
|
|
152
127
|
}
|
|
153
128
|
export declare const Tag: <Self, Config extends {
|
|
154
129
|
requires?: any;
|
|
@@ -156,5 +131,23 @@ export declare const Tag: <Self, Config extends {
|
|
|
156
131
|
} = {
|
|
157
132
|
requires: never;
|
|
158
133
|
provides: never;
|
|
159
|
-
}>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any
|
|
134
|
+
}>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any> = {}>(id: Name, options?: Options | undefined) => TagClass<Self, Name, Options, Config>;
|
|
135
|
+
export type AddMiddleware<R extends Rpc.Any, Middleware extends RpcMiddleware.TagClassAny> = R extends Rpc.Rpc<infer _Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? Rpc.Rpc<_Tag, _Payload, _Success, _Error, _Middleware | Middleware> & {
|
|
136
|
+
readonly config: R extends {
|
|
137
|
+
readonly config: infer _C;
|
|
138
|
+
} ? _C : never;
|
|
139
|
+
} : never;
|
|
140
|
+
export type HandlersContext<Rpcs extends Rpc.Any, Handlers> = keyof Handlers extends infer K ? K extends keyof Handlers & string ? HandlerContext<Rpcs, K, Handlers[K]> : never : never;
|
|
141
|
+
export type HandlerContext<Rpcs extends Rpc.Any, K extends Rpcs["_tag"], Handler> = [Rpc.IsStream<Rpcs, K>] extends [
|
|
142
|
+
true
|
|
143
|
+
] ? Handler extends (...args: any) => Stream.Stream<infer _A, infer _E, infer _R> | Rpc.Fork<Stream.Stream<infer _A, infer _E, infer _R>> | Effect.Effect<ReadonlyMailbox<infer _A, infer _E>, infer _EX, infer _R> | Rpc.Fork<Effect.Effect<ReadonlyMailbox<infer _A, infer _E>, infer _EX, infer _R>> ? Exclude<ExcludeProvides<_R, Rpcs, K>, Scope.Scope> : never : Handler extends (...args: any) => Effect.Effect<infer _A, infer _E, infer _R> | Rpc.Fork<Effect.Effect<infer _A, infer _E, infer _R>> ? ExcludeProvides<_R, Rpcs, K> : never;
|
|
144
|
+
export type ExtractDynamicallyProvides<R extends Rpc.Any, Tag extends string> = R extends Rpc.Rpc<Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? _Middleware extends {
|
|
145
|
+
readonly requestContextMap: infer _RC;
|
|
146
|
+
} ? _RC extends Record<string, RpcContextMap.Any> ? R extends {
|
|
147
|
+
readonly config: infer _C;
|
|
148
|
+
} ? GetEffectContext<_RC, _C> : GetEffectContext<_RC, {}> : never : never : never;
|
|
149
|
+
export type ExtractProvides<R extends Rpc.Any, Tag extends string> = R extends Rpc.Rpc<Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? _Middleware extends {
|
|
150
|
+
readonly provides: Context.Tag<infer _I, infer _S>;
|
|
151
|
+
} ? _I : never : never;
|
|
152
|
+
export type ExcludeProvides<Env, R extends Rpc.Any, Tag extends string> = Exclude<Env, ExtractProvides<R, Tag> | ExtractDynamicallyProvides<R, Tag>>;
|
|
160
153
|
//# sourceMappingURL=RpcMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
import { RpcMiddleware } from "@effect/rpc";
|
|
5
|
-
import { Unify } from "effect
|
|
5
|
+
import { Unify } from "effect";
|
|
6
6
|
export const Tag = () => (id, options) => class extends RpcMiddleware.Tag()(id, options) {
|
|
7
7
|
static requires;
|
|
8
8
|
static provides;
|
|
@@ -12,4 +12,4 @@ export const Tag = () => (id, options) => class extends RpcMiddleware.Tag()(id,
|
|
|
12
12
|
static [Unify.unifySymbol];
|
|
13
13
|
static [Unify.ignoreSymbol];
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ycGMvUnBjTWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUN2RCxPQUFPLEVBQVksYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXJELE9BQU8sRUFBcUYsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBc0tqSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FNZixFQUFFLENBQ04sQ0FJRSxFQUFRLEVBQ1IsT0FBNkIsRUFDVSxFQUFFLENBQ3pDLEtBQU0sU0FBUSxhQUFhLENBQUMsR0FBRyxFQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQztJQUNsRCxNQUFNLENBQVUsUUFBUSxDQUE4RDtJQUN0RixNQUFNLENBQW1CLFFBQVEsQ0FBOEQ7SUFDL0YsTUFBTSxDQUFVLE9BQU8sR0FBRyxPQUFPLElBQUksU0FBUyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ3ZGLE1BQU0sQ0FBVSxTQUFTLEdBQUcsT0FBTyxJQUFJLFdBQVcsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUM3RixNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVU7SUFDNUMsTUFBTSxDQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUF3QjtJQUMzRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQWlCO0NBQy9DLENBQUEifQ==
|
package/dist/rpc.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export * from "./rpc/
|
|
2
|
-
export * from "./rpc/
|
|
3
|
-
export * from "./rpc/middleware-native.js";
|
|
1
|
+
export * from "./rpc/MiddlewareMaker.js";
|
|
2
|
+
export * from "./rpc/RpcContextMap.js";
|
|
4
3
|
export * from "./rpc/RpcMiddleware.js";
|
|
5
|
-
export * from "./rpc/RpcMiddlewareX.js";
|
|
6
4
|
export * as Middleware from "./rpc.js";
|
|
7
5
|
//# sourceMappingURL=rpc.d.ts.map
|
package/dist/rpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,OAAO,KAAK,UAAU,MAAM,UAAU,CAAA"}
|
package/dist/rpc.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
// codegen:start {preset: barrel, include: ./rpc/*.ts, nodir: false }
|
|
2
|
-
export * from "./rpc/
|
|
3
|
-
export * from "./rpc/
|
|
4
|
-
export * from "./rpc/middleware-native.js";
|
|
2
|
+
export * from "./rpc/MiddlewareMaker.js";
|
|
3
|
+
export * from "./rpc/RpcContextMap.js";
|
|
5
4
|
export * from "./rpc/RpcMiddleware.js";
|
|
6
|
-
export * from "./rpc/RpcMiddlewareX.js";
|
|
7
5
|
// codegen:end
|
|
8
6
|
export * as Middleware from "./rpc.js";
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7QUFDckUsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYztBQUVkLE9BQU8sS0FBSyxVQUFVLE1BQU0sVUFBVSxDQUFBIn0=
|