effect-app 3.0.0 → 3.0.2
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/TypeTest.d.ts +3 -0
- package/dist/TypeTest.d.ts.map +1 -0
- package/dist/TypeTest.js +7 -0
- package/dist/client/req.d.ts +4 -0
- package/dist/client/req.d.ts.map +1 -1
- package/dist/client/req.js +1 -1
- package/dist/rpc/RpcMiddleware.d.ts +160 -0
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -0
- package/dist/rpc/RpcMiddleware.js +15 -0
- package/dist/rpc/RpcMiddlewareX.d.ts +24 -0
- package/dist/rpc/RpcMiddlewareX.d.ts.map +1 -0
- package/dist/rpc/RpcMiddlewareX.js +16 -0
- package/dist/rpc/generic-middleware.d.ts +51 -0
- package/dist/rpc/generic-middleware.d.ts.map +1 -0
- package/dist/rpc/generic-middleware.js +24 -0
- package/dist/rpc/middleware-api.d.ts +107 -0
- package/dist/rpc/middleware-api.d.ts.map +1 -0
- package/dist/rpc/middleware-api.js +88 -0
- package/dist/rpc/middleware-native.d.ts +25 -0
- package/dist/rpc/middleware-native.d.ts.map +1 -0
- package/dist/rpc/middleware-native.js +17 -0
- package/dist/rpc.d.ts +7 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +9 -0
- package/package.json +29 -1
- package/src/TypeTest.ts +7 -0
- package/src/client/req.ts +6 -0
- package/src/rpc/RpcMiddleware.ts +224 -0
- package/src/rpc/RpcMiddlewareX.ts +65 -0
- package/src/rpc/generic-middleware.ts +128 -0
- package/src/rpc/middleware-api.ts +404 -0
- package/src/rpc/middleware-native.ts +19 -0
- package/src/rpc.ts +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeTest.d.ts","sourceRoot":"","sources":["../src/TypeTest.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,EAAG,sBAA+B,CAAA;AACzD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA"}
|
package/dist/TypeTest.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Nice way to underline types that are only there for type testing, not for production use
|
|
2
|
+
// sadly with unique symbols we get weird issues in app projects.
|
|
3
|
+
// api/src/X/PackList.Controllers.ts:21:1 - error TS4082: Default export of the module has or is using private name 'TypeTestId'
|
|
4
|
+
// export const TypeTestId: unique symbol = Symbol.for("@effect/infra/type-test")
|
|
5
|
+
// export type TypeTestId = typeof TypeTestId
|
|
6
|
+
export const TypeTestId = "effect-app/type-test";
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVHlwZVRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkZBQTJGO0FBQzNGLGlFQUFpRTtBQUNqRSxnSUFBZ0k7QUFDaEksaUZBQWlGO0FBQ2pGLDZDQUE2QztBQUM3QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsc0JBQStCLENBQUEifQ==
|
package/dist/client/req.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { type Tag } from "../Context.js";
|
|
2
2
|
import { type Context, type NonEmptyReadonlyArray, S } from "../internal/lib.js";
|
|
3
3
|
import { type Values } from "../utils.js";
|
|
4
|
+
/** @deprecated just use Service Identifier Union */
|
|
4
5
|
export type ContextTagArray = NonEmptyReadonlyArray<Context.Tag<any, any>>;
|
|
6
|
+
/** @deprecated just use Service Identifier Union */
|
|
5
7
|
export declare namespace ContextTagArray {
|
|
6
8
|
type Identifier<A> = A extends ContextTagArray ? Tag.Identifier<A[number]> : never;
|
|
7
9
|
type Service<A> = A extends ContextTagArray ? Tag.Service<A[number]> : never;
|
|
8
10
|
}
|
|
11
|
+
/** @deprecated just use Service Identifier Union */
|
|
9
12
|
export type AnyService = Context.Tag<any, any> | ContextTagArray;
|
|
13
|
+
/** @deprecated just use Service Identifier Union */
|
|
10
14
|
export declare namespace AnyService {
|
|
11
15
|
type Bla<A> = A extends ContextTagArray ? Context.Context<ContextTagArray.Identifier<A>> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
|
|
12
16
|
type Identifier<A> = A extends ContextTagArray ? ContextTagArray.Identifier<A> : A extends Context.Tag<any, any> ? Tag.Identifier<A> : never;
|
package/dist/client/req.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/client/req.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,qBAAqB,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/client/req.ts"],"names":[],"mappings":"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"}
|
package/dist/client/req.js
CHANGED
|
@@ -53,4 +53,4 @@ export const makeRpcClient = (errors, generalErrors) => {
|
|
|
53
53
|
TaggedRequest
|
|
54
54
|
};
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZXEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFHdkQsT0FBTyxFQUE0QyxDQUFDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQTJCaEYsTUFBTSxLQUFXLGFBQWEsQ0E0RDdCO0FBNURELFdBQWlCLGFBQWE7SUFpQ2Ysa0JBQUksR0FBRyxDQUNsQixPQUFnQixFQUNoQixLQUFRLEVBQ21CLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE9BQU87UUFDUCxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QixDQUFDLENBQUE7SUFFVywwQkFBWSxHQUFHLENBQzFCLE9BQWdCLEVBQ2hCLEtBQVEsRUFDYyxFQUFFLENBQUMsQ0FBQztRQUMxQixPQUFPO1FBQ1AsS0FBSztRQUNMLGlCQUFpQixFQUFFLEtBQUs7S0FDekIsQ0FBQyxDQUFBO0lBRVcsd0JBQVUsR0FBRyxDQUN4QixPQUFnQixFQUNoQixLQUFRLEVBQ1IsaUJBQW9CLEVBQ0csRUFBRSxDQUFDLENBQUM7UUFDM0IsT0FBTztRQUNQLEtBQUs7UUFDTCxpQkFBaUI7S0FDbEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxFQTVEZ0IsYUFBYSxLQUFiLGFBQWEsUUE0RDdCO0FBcURELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBTSxFQUFFLENBQWEsRUFBRSxFQUFFLENBQ3RDLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFrQjNHOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7QUFFNUcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBSzNCLE1BQXlFLEVBQ3pFLGFBQTZCLEVBQzdCLEVBQUU7SUFPRixTQUFTLGFBQWE7UUF1RXBCLCtEQUErRDtRQUMvRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxDQUNOLEdBQVEsRUFDUixNQUFjLEVBQ2QsTUFBVSxFQUNWLEVBQUU7WUFDRiwyRUFBMkU7WUFDM0UsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDdkMsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsOENBQThDO2dCQUM5QyxPQUFPLEVBQUUsS0FBSyxDQUNaLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUNwRyxDQUFDLEdBQUcsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDakQ7Z0JBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPO29CQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO3dCQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDdEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztvQkFDNUIsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUFDLENBQUE7WUFDRixPQUFPLEtBQU0sU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFTO2dCQUMxRCxZQUFZLE9BQVksRUFBRSxvQkFBeUIsSUFBSTtvQkFDckQsNkRBQTZEO29CQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUE7Z0JBQ25DLENBQUM7YUFDRixDQUFBO1FBQ0gsQ0FBQyxDQUFRLENBQUE7SUFDWCxDQUFDO0lBRUQsT0FBTztRQUNMLGFBQWE7S0FDZCxDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { type Rpc } from "@effect/rpc";
|
|
2
|
+
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware";
|
|
3
|
+
import { type Context, type Effect, type NonEmptyReadonlyArray, type S, type Schema, type Scope } from "effect-app";
|
|
4
|
+
import type { ContextTagArray, RPCContextMap } from "effect-app/client/req";
|
|
5
|
+
import { type HttpHeaders } from "effect-app/http";
|
|
6
|
+
export interface RpcMiddlewareWrap<Provides, E, Requires> {
|
|
7
|
+
(effect: Effect.Effect<SuccessValue, E, Provides | Scope.Scope | Requires>, options: {
|
|
8
|
+
readonly clientId: number;
|
|
9
|
+
readonly rpc: Rpc.AnyWithProps;
|
|
10
|
+
readonly payload: unknown;
|
|
11
|
+
readonly headers: HttpHeaders.Headers;
|
|
12
|
+
}): Effect.Effect<SuccessValue, E, Scope.Scope | Requires>;
|
|
13
|
+
}
|
|
14
|
+
export type RpcOptionsOriginal = {
|
|
15
|
+
readonly optional?: boolean;
|
|
16
|
+
readonly failure?: Schema.Schema.All;
|
|
17
|
+
readonly requiredForClient?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type RpcDynamic<Key extends string, A extends RPCContextMap.Any> = {
|
|
20
|
+
key: Key;
|
|
21
|
+
settings: A;
|
|
22
|
+
};
|
|
23
|
+
export type AnyDynamic = {
|
|
24
|
+
dynamic: RpcDynamic<any, any>;
|
|
25
|
+
};
|
|
26
|
+
export type DependsOn = {
|
|
27
|
+
readonly dependsOn: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
28
|
+
};
|
|
29
|
+
export interface RpcOptionsDynamic<Key extends string, A extends RPCContextMap.Any> extends RpcOptionsOriginal {
|
|
30
|
+
readonly dynamic: RpcDynamic<Key, A>;
|
|
31
|
+
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
32
|
+
}
|
|
33
|
+
export type Dynamic<Options> = Options extends RpcOptionsDynamic<any, any> ? true : false;
|
|
34
|
+
export interface RpcMiddlewareDynamicWrap<E, R, _Config> {
|
|
35
|
+
(effect: Effect.Effect<SuccessValue, E, Scope.Scope | R>, options: {
|
|
36
|
+
readonly clientId: number;
|
|
37
|
+
readonly rpc: Rpc.AnyWithProps;
|
|
38
|
+
readonly payload: unknown;
|
|
39
|
+
readonly headers: HttpHeaders.Headers;
|
|
40
|
+
}): Effect.Effect<SuccessValue, E, Scope.Scope | R>;
|
|
41
|
+
}
|
|
42
|
+
export interface TagClassAny extends Context.Tag<any, any> {
|
|
43
|
+
readonly [TypeId]: TypeId;
|
|
44
|
+
readonly optional: boolean;
|
|
45
|
+
readonly provides: any;
|
|
46
|
+
readonly requires: any;
|
|
47
|
+
readonly failure: Schema.Schema.All;
|
|
48
|
+
readonly requiredForClient: boolean;
|
|
49
|
+
readonly wrap: true;
|
|
50
|
+
readonly dynamic?: RpcDynamic<any, any> | undefined;
|
|
51
|
+
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
52
|
+
}
|
|
53
|
+
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
|
+
/**
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @category models
|
|
77
|
+
*/
|
|
78
|
+
type FailureSchema<Options> = Options extends {
|
|
79
|
+
readonly failure: Schema.Schema.All;
|
|
80
|
+
readonly optional?: false;
|
|
81
|
+
} ? Options["failure"] : typeof Schema.Never;
|
|
82
|
+
/**
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
* @category models
|
|
85
|
+
*/
|
|
86
|
+
type Failure<Options> = Options extends {
|
|
87
|
+
readonly failure: Schema.Schema<infer _A, infer _I, infer _R>;
|
|
88
|
+
readonly optional?: false;
|
|
89
|
+
} ? _A : Options extends {
|
|
90
|
+
readonly dynamic: RpcDynamic<any, infer A>;
|
|
91
|
+
} ? S.Schema.Type<A["error"]> : never;
|
|
92
|
+
/**
|
|
93
|
+
* @since 1.0.0
|
|
94
|
+
* @category models
|
|
95
|
+
*/
|
|
96
|
+
type FailureContext<Options> = Schema.Schema.Context<FailureSchema<Options>>;
|
|
97
|
+
/**
|
|
98
|
+
* @since 1.0.0
|
|
99
|
+
* @category models
|
|
100
|
+
*/
|
|
101
|
+
type FailureService<Options> = Optional<Options> extends true ? unknown : Failure<Options>;
|
|
102
|
+
/**
|
|
103
|
+
* @since 1.0.0
|
|
104
|
+
* @category models
|
|
105
|
+
*/
|
|
106
|
+
type Optional<Options> = Options extends {
|
|
107
|
+
readonly optional: true;
|
|
108
|
+
} ? true : false;
|
|
109
|
+
/**
|
|
110
|
+
* @since 1.0.0
|
|
111
|
+
* @category models
|
|
112
|
+
*/
|
|
113
|
+
type RequiredForClient<Options> = Options extends {
|
|
114
|
+
readonly requiredForClient: true;
|
|
115
|
+
} ? 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
|
+
/**
|
|
124
|
+
* @since 1.0.0
|
|
125
|
+
* @category models
|
|
126
|
+
*/
|
|
127
|
+
interface Base<Self, Name extends string, Options, Service, Config extends {
|
|
128
|
+
requires?: any;
|
|
129
|
+
provides?: any;
|
|
130
|
+
}> extends Context.Tag<Self, Service> {
|
|
131
|
+
new (_: never): Context.TagClassShape<Name, Service>;
|
|
132
|
+
readonly [TypeId]: TypeId;
|
|
133
|
+
readonly optional: Optional<Options>;
|
|
134
|
+
readonly failure: FailureSchema<Options>;
|
|
135
|
+
readonly provides: "provides" extends keyof Config ? Config["provides"] : never;
|
|
136
|
+
readonly requires: "requires" extends keyof Config ? Config["requires"] : never;
|
|
137
|
+
readonly dynamic: Options extends RpcOptionsDynamic<any, any> ? Options["dynamic"] : undefined;
|
|
138
|
+
readonly dependsOn: Options extends DependsOn ? Options["dependsOn"] : undefined;
|
|
139
|
+
readonly requiredForClient: RequiredForClient<Options>;
|
|
140
|
+
readonly wrap: true;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export interface TagClass<Self, Name extends string, Options, Config extends {
|
|
144
|
+
requires?: any;
|
|
145
|
+
provides?: any;
|
|
146
|
+
} = {
|
|
147
|
+
requires: never;
|
|
148
|
+
provides: never;
|
|
149
|
+
}> extends TagClass.Base<Self, Name, Options, Options extends RpcOptionsDynamic<any, any> ? RpcMiddlewareDynamicWrap<TagClass.FailureService<Options>, "requires" extends keyof Config ? Config["requires"] : never, {
|
|
150
|
+
[K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"];
|
|
151
|
+
}> : RpcMiddlewareWrap<"provides" extends keyof Config ? Config["provides"] : never, TagClass.Failure<Options>, "requires" extends keyof Config ? Config["requires"] : never>, Config> {
|
|
152
|
+
}
|
|
153
|
+
export declare const Tag: <Self, Config extends {
|
|
154
|
+
requires?: any;
|
|
155
|
+
provides?: any;
|
|
156
|
+
} = {
|
|
157
|
+
requires: never;
|
|
158
|
+
provides: never;
|
|
159
|
+
}>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any>>(id: Name, options?: Options | undefined) => TagClass<Self, Name, Options, Config>;
|
|
160
|
+
//# sourceMappingURL=RpcMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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 { RpcMiddleware } from "@effect/rpc";
|
|
5
|
+
import { Unify } from "effect-app";
|
|
6
|
+
export const Tag = () => (id, options) => class extends RpcMiddleware.Tag()(id, options) {
|
|
7
|
+
static requires;
|
|
8
|
+
static provides;
|
|
9
|
+
static dynamic = options && "dynamic" in options ? options.dynamic : undefined;
|
|
10
|
+
static dependsOn = options && "dependsOn" in options ? options.dependsOn : undefined;
|
|
11
|
+
static [Unify.typeSymbol];
|
|
12
|
+
static [Unify.unifySymbol];
|
|
13
|
+
static [Unify.ignoreSymbol];
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ycGMvUnBjTWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUN2RCxPQUFPLEVBQVksYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXJELE9BQU8sRUFBMEYsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBb00xSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FNZixFQUFFLENBQ04sQ0FJRSxFQUFRLEVBQ1IsT0FBNkIsRUFDVSxFQUFFLENBQ3pDLEtBQU0sU0FBUSxhQUFhLENBQUMsR0FBRyxFQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQztJQUNsRCxNQUFNLENBQVUsUUFBUSxDQUE4RDtJQUN0RixNQUFNLENBQW1CLFFBQVEsQ0FBOEQ7SUFDL0YsTUFBTSxDQUFVLE9BQU8sR0FBRyxPQUFPLElBQUksU0FBUyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ3ZGLE1BQU0sQ0FBVSxTQUFTLEdBQUcsT0FBTyxJQUFJLFdBQVcsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUM3RixNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVU7SUFDNUMsTUFBTSxDQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUF3QjtJQUMzRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQWlCO0NBQy9DLENBQUEifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Effect, Layer, type NonEmptyReadonlyArray } from "effect-app";
|
|
2
|
+
import { type Service } from "effect/Effect";
|
|
3
|
+
import { type RpcMiddlewareDynamicWrap, type RpcMiddlewareWrap, type RpcOptionsDynamic, type RpcOptionsOriginal, type TagClass } from "./RpcMiddleware.js";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated - RPC groups are defined centrally and re-used between server and client,
|
|
6
|
+
* so layer implementation details should not be mixed.
|
|
7
|
+
*/
|
|
8
|
+
export declare const TagService: <Self, Config extends {
|
|
9
|
+
requires?: any;
|
|
10
|
+
provides?: any;
|
|
11
|
+
} = {
|
|
12
|
+
requires: never;
|
|
13
|
+
provides: never;
|
|
14
|
+
}>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any>>(id: Name, options?: Options | undefined) => <LayerOpts extends {
|
|
15
|
+
effect: Effect.Effect<Options extends RpcOptionsDynamic<any, any> ? RpcMiddlewareDynamicWrap<TagClass.FailureService<Options>, "requires" extends keyof Config ? Config["requires"] : never, { [K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"]; }> : RpcMiddlewareWrap<"provides" extends keyof Config ? Config["provides"] : never, TagClass.Failure<Options>, "requires" extends keyof Config ? Config["requires"] : never>, any, any>;
|
|
16
|
+
dependencies?: NonEmptyReadonlyArray<Layer.Layer.Any>;
|
|
17
|
+
}>(opts: LayerOpts) => TagClass<Self, Name, Options, Config> & {
|
|
18
|
+
Default: Layer.Layer<Self, (LayerOpts extends {
|
|
19
|
+
effect: Effect<infer _A, infer _E, infer _R>;
|
|
20
|
+
} ? _E : never) | Service.MakeDepsE<LayerOpts>, Exclude<LayerOpts extends {
|
|
21
|
+
effect: Effect<infer _A, infer _E_1, infer _R_1>;
|
|
22
|
+
} ? _R_1 : never, Service.MakeDepsOut<LayerOpts>> | Service.MakeDepsIn<LayerOpts>>;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=RpcMiddlewareX.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcMiddlewareX.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcMiddlewareX.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,qBAAqB,EAAS,MAAM,YAAY,CAAA;AAElF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAO,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE/J;;;GAGG;AACH,eAAO,MAAM,UAAU,GACrB,IAAI,EACJ,MAAM,SAAS;IACb,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,QAGxC,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,OAAO,SAAS,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEtE,IAAI,IAAI,EACR,UAAU,OAAO,GAAG,SAAS,MAG7B,SAAS,SAAS;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,OAAO,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,wBAAwB,CAClE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAChC,UAAU,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,EAC5D,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,GAAE,CAC3F,GACC,iBAAiB,CACjB,UAAU,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,EAC5D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EACzB,UAAU,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAC7D,EACH,GAAG,EACH,GAAG,CACJ,CAAA;IACD,YAAY,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;CACtD,EACD,MAAM,SAAS,KAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG;IAC1D,OAAO,EAAE,KAAK,CAAC,KAAK,CAClB,IAAI,EACF,CAAC,SAAS,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GAAG,EAAE,GACtE,KAAK,CAAC,GACR,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAC5B,OAAO,CACP,SAAS,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,IAAE,EAAE,MAAM,IAAE,CAAC,CAAA;KAAE,GAAG,IAAE,GAAG,KAAK,EAC/E,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAC/B,GACC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAChC,CAAA;CASO,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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 { Layer, Unify } from "effect-app";
|
|
5
|
+
import { Tag } from "./RpcMiddleware.js";
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated - RPC groups are defined centrally and re-used between server and client,
|
|
8
|
+
* so layer implementation details should not be mixed.
|
|
9
|
+
*/
|
|
10
|
+
export const TagService = () => (id, options) => (opts) => class extends Tag()(id, options) {
|
|
11
|
+
static Default = Layer.scoped(this, opts.effect).pipe(Layer.provide([Layer.empty, ...opts.dependencies ?? []]));
|
|
12
|
+
static [Unify.typeSymbol];
|
|
13
|
+
static [Unify.unifySymbol];
|
|
14
|
+
static [Unify.ignoreSymbol];
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZVguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnBjL1JwY01pZGRsZXdhcmVYLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCx3REFBd0Q7QUFDeEQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBZSxLQUFLLEVBQThCLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUdsRixPQUFPLEVBQTBHLEdBQUcsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQTtBQUUvSjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FNdEIsRUFBRSxDQUNOLENBSUUsRUFBUSxFQUNSLE9BQTZCLEVBQzdCLEVBQUUsQ0FDSixDQWtCRSxJQUFlLEVBWWYsRUFBRSxDQUNGLEtBQU0sU0FBUSxHQUFHLEVBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBYyxDQUFDO0lBQzNDLE1BQU0sQ0FBVSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDLElBQUksQ0FDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3pELENBQUE7SUFDRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVU7SUFDNUMsTUFBTSxDQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUF3QjtJQUMzRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQWlCO0NBQy9DLENBQUEifQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type RpcMiddleware } from "@effect/rpc";
|
|
2
|
+
import { Context, Effect, type Layer, type NonEmptyReadonlyArray, type S } from "effect-app";
|
|
3
|
+
import { type GetContextConfig, type RPCContextMap } from "effect-app/client";
|
|
4
|
+
import { type Tag } from "effect/Context";
|
|
5
|
+
import { type Simplify } from "effect/Types";
|
|
6
|
+
import { type MakeTags, type MiddlewareMakerId } from "./middleware-api.js";
|
|
7
|
+
import { type RpcMiddlewareWrap, type TagClassAny } from "./RpcMiddleware.js";
|
|
8
|
+
export interface MiddlewareMaker<RequestContextMap extends Record<string, RPCContextMap.Any>, MiddlewareProviders extends ReadonlyArray<MiddlewareMaker.Any>> extends RpcMiddleware.TagClass<MiddlewareMakerId, "MiddlewareMaker", Simplify<{
|
|
9
|
+
readonly wrap: true;
|
|
10
|
+
} & (Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? {} : {
|
|
11
|
+
readonly requires: MakeTags<Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>;
|
|
12
|
+
}) & (MiddlewareMaker.ManyErrors<MiddlewareProviders> extends never ? {} : {
|
|
13
|
+
readonly failure: S.Schema<MiddlewareMaker.ManyErrors<MiddlewareProviders>>;
|
|
14
|
+
}) & (MiddlewareMaker.ManyProvided<MiddlewareProviders> extends never ? {} : {
|
|
15
|
+
readonly provides: MakeTags<MiddlewareMaker.ManyProvided<MiddlewareProviders>>;
|
|
16
|
+
})>> {
|
|
17
|
+
readonly layer: Layer.Layer<MiddlewareMakerId, never, Tag.Identifier<MiddlewareProviders[number]>>;
|
|
18
|
+
readonly requestContext: RequestContextTag<RequestContextMap>;
|
|
19
|
+
readonly requestContextMap: RequestContextMap;
|
|
20
|
+
}
|
|
21
|
+
export interface RequestContextTag<RequestContextMap extends Record<string, RPCContextMap.Any>> extends Context.Tag<"RequestContextConfig", GetContextConfig<RequestContextMap>> {
|
|
22
|
+
}
|
|
23
|
+
export declare namespace MiddlewareMaker {
|
|
24
|
+
type Any = TagClassAny;
|
|
25
|
+
type ApplyServices<A extends TagClassAny, R> = Exclude<R, Provided<A>> | Required<A>;
|
|
26
|
+
type ApplyManyServices<A extends NonEmptyReadonlyArray<TagClassAny>, R> = Exclude<R, {
|
|
27
|
+
[K in keyof A]: Provided<A[K]>;
|
|
28
|
+
}[number]> | {
|
|
29
|
+
[K in keyof A]: Required<A[K]>;
|
|
30
|
+
}[number];
|
|
31
|
+
type ManyProvided<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
32
|
+
[K in keyof A]: Provided<A[K]>;
|
|
33
|
+
}[number] : Provided<A[number]>;
|
|
34
|
+
type ManyRequired<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
35
|
+
[K in keyof A]: Required<A[K]>;
|
|
36
|
+
}[number] : Required<A[number]>;
|
|
37
|
+
type ManyErrors<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
38
|
+
[K in keyof A]: Errors<A[K]>;
|
|
39
|
+
}[number] : Errors<A[number]>;
|
|
40
|
+
type Provided<T> = T extends TagClassAny ? T extends {
|
|
41
|
+
provides: infer _P;
|
|
42
|
+
} ? _P : never : never;
|
|
43
|
+
type Errors<T> = T extends TagClassAny ? T extends {
|
|
44
|
+
failure: S.Schema.Any;
|
|
45
|
+
} ? S.Schema.Type<T["failure"]> : never : never;
|
|
46
|
+
type Required<T> = T extends TagClassAny ? T extends {
|
|
47
|
+
requires: infer _R;
|
|
48
|
+
} ? _R : never : never;
|
|
49
|
+
}
|
|
50
|
+
export declare const middlewareMaker: <MiddlewareProviders extends ReadonlyArray<MiddlewareMaker.Any>>(middlewares: MiddlewareProviders) => Effect.Effect<RpcMiddlewareWrap<MiddlewareMaker.ManyProvided<MiddlewareProviders>, MiddlewareMaker.ManyErrors<MiddlewareProviders>, Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>>;
|
|
51
|
+
//# sourceMappingURL=generic-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-middleware.d.ts","sourceRoot":"","sources":["../../src/rpc/generic-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Context, Effect } from "effect-app";
|
|
2
|
+
import { PreludeLogger } from "../logger.js";
|
|
3
|
+
export const middlewareMaker = (middlewares) => {
|
|
4
|
+
// we want to run them in reverse order because latter middlewares will provide context to former ones
|
|
5
|
+
middlewares = middlewares.toReversed();
|
|
6
|
+
return Effect.gen(function* () {
|
|
7
|
+
const context = yield* Effect.context();
|
|
8
|
+
// returns a Effect/RpcMiddlewareWrap with Scope in requirements
|
|
9
|
+
return (_options) => {
|
|
10
|
+
const { next, ...options } = _options;
|
|
11
|
+
// we start with the actual handler
|
|
12
|
+
let handler = next;
|
|
13
|
+
// inspired from Effect/RpcMiddleware
|
|
14
|
+
for (const tag of middlewares) {
|
|
15
|
+
// use the tag to get the middleware from context
|
|
16
|
+
const middleware = Context.unsafeGet(context, tag);
|
|
17
|
+
// wrap the current handler, allowing the middleware to run before and after it
|
|
18
|
+
handler = PreludeLogger.logDebug("Applying middleware wrap " + tag.key).pipe(Effect.zipRight(middleware(handler, options)));
|
|
19
|
+
}
|
|
20
|
+
return handler;
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9nZW5lcmljLW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQWtELE1BQU0sWUFBWSxDQUFBO0FBSTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUE0RTVDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUU3QixXQUFnQyxFQVVoQyxFQUFFO0lBQ0Ysc0dBQXNHO0lBQ3RHLFdBQVcsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFTLENBQUE7SUFFN0MsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFdkMsZ0VBQWdFO1FBQ2hFLE9BQU8sQ0FDTCxRQUtJLEVBQ0osRUFBRTtZQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUE7WUFDckMsbUNBQW1DO1lBQ25DLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQTtZQUVsQixxQ0FBcUM7WUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDOUIsaURBQWlEO2dCQUNqRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFFbEQsK0VBQStFO2dCQUMvRSxPQUFPLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxRSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDdkMsQ0FBQTtZQUNWLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUE7SUFDSCxDQUFDLENBQVEsQ0FBQTtBQUNYLENBQUMsQ0FBQSJ9
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Rpc, type RpcGroup, type RpcMiddleware, type RpcSchema } from "@effect/rpc";
|
|
2
|
+
import { type AnyWithProps } from "@effect/rpc/Rpc";
|
|
3
|
+
import { type HandlersFrom } from "@effect/rpc/RpcGroup";
|
|
4
|
+
import { Context, type Effect, Layer, type NonEmptyArray, type NonEmptyReadonlyArray, type Schema, type Scope, type Stream } from "effect-app";
|
|
5
|
+
import { type GetContextConfig, type GetEffectContext, type RPCContextMap } from "effect-app/client";
|
|
6
|
+
import { type ReadonlyMailbox } from "effect/Mailbox";
|
|
7
|
+
import { type TypeTestId } from "../TypeTest.js";
|
|
8
|
+
import { type MiddlewareMaker, type RequestContextTag } from "./generic-middleware.js";
|
|
9
|
+
import { type AnyDynamic, type RpcDynamic, type TagClassAny } from "./RpcMiddleware.js";
|
|
10
|
+
/** Adapter used when setting the dynamic prop on a middleware implementation */
|
|
11
|
+
export declare const contextMap: <RequestContextMap extends Record<string, RPCContextMap.Any>, Key extends (keyof RequestContextMap) & string>(rcm: RequestContextMap, key: Key) => RpcDynamic<Key, RequestContextMap[Key]>;
|
|
12
|
+
/** Retrieves RequestContextConfig out of the RPC annotations */
|
|
13
|
+
export declare const getConfig: <RequestContextMap extends Record<string, RPCContextMap.Any>>() => (rpc: AnyWithProps) => GetContextConfig<RequestContextMap>;
|
|
14
|
+
type GetDependsOnKeys<MW extends MiddlewareMaker.Any> = MW extends {
|
|
15
|
+
dependsOn: NonEmptyReadonlyArray<TagClassAny>;
|
|
16
|
+
} ? {
|
|
17
|
+
[K in keyof MW["dependsOn"]]: MW["dependsOn"][K] extends AnyDynamic ? MW["dependsOn"][K]["dynamic"]["key"] : never;
|
|
18
|
+
}[keyof MW["dependsOn"]] : never;
|
|
19
|
+
type FilterInDynamicMiddlewares<MWs extends ReadonlyArray<MiddlewareMaker.Any>, RequestContextMap extends Record<string, RPCContextMap.Any>> = {
|
|
20
|
+
[K in keyof MWs]: MWs[K] extends {
|
|
21
|
+
dynamic: RpcDynamic<any, RequestContextMap[keyof RequestContextMap]>;
|
|
22
|
+
} ? MWs[K] : never;
|
|
23
|
+
};
|
|
24
|
+
type RecursiveHandleMWsSideways<MWs, R extends {
|
|
25
|
+
rcm: Record<string, RPCContextMap.Any>;
|
|
26
|
+
provided: keyof R["rcm"];
|
|
27
|
+
middlewares: ReadonlyArray<MiddlewareMaker.Any>;
|
|
28
|
+
dmp: any;
|
|
29
|
+
middlewareR: any;
|
|
30
|
+
}> = MWs extends [
|
|
31
|
+
infer F extends MiddlewareMaker.Any,
|
|
32
|
+
...infer Rest extends ReadonlyArray<MiddlewareMaker.Any>
|
|
33
|
+
] ? RecursiveHandleMWsSideways<Rest, {
|
|
34
|
+
rcm: R["rcm"];
|
|
35
|
+
provided: Exclude<R["provided"] | FilterInDynamicMiddlewares<[F], R["rcm"]>[number]["dynamic"]["key"], GetDependsOnKeys<F>>;
|
|
36
|
+
middlewares: [...R["middlewares"], F];
|
|
37
|
+
dmp: [FilterInDynamicMiddlewares<[F], R["rcm"]>[number]] extends [never] ? R["dmp"] : R["dmp"] & {
|
|
38
|
+
[U in FilterInDynamicMiddlewares<[F], R["rcm"]>[number] as U["dynamic"]["key"]]: U;
|
|
39
|
+
};
|
|
40
|
+
middlewareR: MiddlewareMaker.ApplyManyServices<[F], R["middlewareR"]>;
|
|
41
|
+
}> : R;
|
|
42
|
+
export interface BuildingMiddleware<RequestContextMap extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContextMap, Middlewares extends ReadonlyArray<MiddlewareMaker.Any>, DynamicMiddlewareProviders, out MiddlewareR extends {
|
|
43
|
+
_tag: string;
|
|
44
|
+
} = never> {
|
|
45
|
+
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?: {
|
|
46
|
+
readonly payload?: Payload;
|
|
47
|
+
readonly success?: Success;
|
|
48
|
+
readonly error?: Error;
|
|
49
|
+
readonly stream?: Stream;
|
|
50
|
+
readonly config?: Config;
|
|
51
|
+
readonly primaryKey?: [Payload] extends [Schema.Struct.Fields] ? ((payload: Schema.Simplify<Schema.Struct.Type<NoInfer<Payload>>>) => string) : never;
|
|
52
|
+
}) => Rpc.Rpc<Tag, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Stream extends true ? RpcSchema.Stream<Success, Error> : Success, Stream extends true ? typeof Schema.Never : Error> & {
|
|
53
|
+
readonly config: Config;
|
|
54
|
+
};
|
|
55
|
+
middleware<MWs extends NonEmptyArray<MiddlewareMaker.Any>>(...mw: MWs): RecursiveHandleMWsSideways<MWs, {
|
|
56
|
+
rcm: RequestContextMap;
|
|
57
|
+
provided: Provided;
|
|
58
|
+
middlewares: Middlewares;
|
|
59
|
+
dmp: DynamicMiddlewareProviders;
|
|
60
|
+
middlewareR: MiddlewareR;
|
|
61
|
+
}> extends infer Res extends {
|
|
62
|
+
rcm: RequestContextMap;
|
|
63
|
+
provided: keyof RequestContextMap;
|
|
64
|
+
middlewares: ReadonlyArray<MiddlewareMaker.Any>;
|
|
65
|
+
dmp: any;
|
|
66
|
+
middlewareR: any;
|
|
67
|
+
} ? MiddlewaresBuilder<Res["rcm"], Res["provided"], Res["middlewares"], Res["dmp"], Res["middlewareR"]> : never;
|
|
68
|
+
readonly [TypeTestId]: {
|
|
69
|
+
missingDynamicMiddlewares: Exclude<keyof RequestContextMap, Provided>;
|
|
70
|
+
missingContext: MiddlewareR;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export type MiddlewaresBuilder<RequestContextMap extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContextMap = never, Middlewares extends ReadonlyArray<MiddlewareMaker.Any> = [], DynamicMiddlewareProviders = unknown, MiddlewareR extends {
|
|
74
|
+
_tag: string;
|
|
75
|
+
} = never> = BuildingMiddleware<RequestContextMap, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> & // keyof Omit<RequestContextMap, Provided> extends never is true when all the dynamic middlewares are provided
|
|
76
|
+
(keyof Omit<RequestContextMap, Provided> extends never ? [MiddlewareR] extends [never] ? MiddlewareMaker<RequestContextMap, Middlewares> : {} : {});
|
|
77
|
+
export declare const makeMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>>(rcm: RequestContextMap) => MiddlewaresBuilder<RequestContextMap>;
|
|
78
|
+
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> & {
|
|
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 & {
|
|
84
|
+
readonly requestContext: RequestContextTag<RequestContextMap>;
|
|
85
|
+
readonly requestContextMap: RequestContextMap;
|
|
86
|
+
}>(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>>;
|
|
88
|
+
};
|
|
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
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=middleware-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-api.d.ts","sourceRoot":"","sources":["../../src/rpc/middleware-api.ts"],"names":[],"mappings":"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"}
|