@effect-app/infra 2.94.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/Emailer/service.d.ts +1 -1
- package/dist/MainFiberSet.d.ts +1 -1
- package/dist/Operations.d.ts +1 -1
- package/dist/QueueMaker/errors.d.ts +1 -1
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/RequestFiberSet.d.ts +1 -1
- package/dist/Store/service.d.ts +2 -2
- package/dist/adapters/SQL/Model.d.ts +6 -6
- package/dist/adapters/ServiceBus.d.ts +2 -2
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +13 -10
- package/dist/adapters/memQueue.d.ts +1 -1
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +7 -7
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +6 -27
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +72 -88
- package/dist/api/routing/middleware.d.ts +0 -3
- package/dist/api/routing/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware.js +1 -4
- package/dist/api/routing.d.ts +1 -2
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +2 -8
- package/package.json +3 -15
- package/src/adapters/ServiceBus.ts +7 -5
- package/src/api/routing/middleware/RouterMiddleware.ts +10 -9
- package/src/api/routing/middleware/middleware.ts +35 -40
- package/src/api/routing/middleware.ts +0 -3
- package/src/api/routing.ts +3 -9
- package/test/controller.test.ts +33 -9
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/fixtures.d.ts +48 -32
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +76 -47
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -0
- package/test/fixtures.ts +70 -16
- package/test/requires.test.ts +16 -51
- package/test/rpc-multi-middleware.test.ts +134 -0
- package/dist/api/routing/middleware/RpcMiddleware.d.ts +0 -199
- package/dist/api/routing/middleware/RpcMiddleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/RpcMiddleware.js +0 -14
- package/dist/api/routing/middleware/generic-middleware.d.ts +0 -41
- package/dist/api/routing/middleware/generic-middleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/generic-middleware.js +0 -70
- package/dist/api/routing/middleware/middleware-api.d.ts +0 -88
- package/dist/api/routing/middleware/middleware-api.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware-api.js +0 -58
- package/src/api/routing/middleware/RpcMiddleware.ts +0 -301
- package/src/api/routing/middleware/generic-middleware.ts +0 -163
- package/src/api/routing/middleware/middleware-api.ts +0 -226
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { FetchHttpClient } from "@effect/platform"
|
|
2
|
+
import { NodeHttpServer } from "@effect/platform-node"
|
|
3
|
+
import { RpcClient, RpcGroup, RpcSerialization, RpcServer, RpcTest } from "@effect/rpc"
|
|
4
|
+
import { expect, expectTypeOf, it } from "@effect/vitest"
|
|
5
|
+
import { Console, Effect, Either, Layer } from "effect"
|
|
6
|
+
import { S } from "effect-app"
|
|
7
|
+
import { NotLoggedInError } from "effect-app/client"
|
|
8
|
+
import { HttpLayerRouter } from "effect-app/http"
|
|
9
|
+
import { DefaultGenericMiddlewares, makeMiddleware, middlewareGroup } from "effect-app/rpc"
|
|
10
|
+
import { createServer } from "http"
|
|
11
|
+
import { DefaultGenericMiddlewaresLive } from "../src/api/routing.js"
|
|
12
|
+
import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddlewareWrap, SomeMiddlewareWrapLive, SomeService, Test, TestLive, UserProfile } from "./fixtures.js"
|
|
13
|
+
|
|
14
|
+
const middleware = makeMiddleware(RequestContextMap)
|
|
15
|
+
.middleware(RequireRoles)
|
|
16
|
+
.middleware(AllowAnonymous, Test)
|
|
17
|
+
.middleware(SomeElseMiddleware, SomeMiddlewareWrap)
|
|
18
|
+
.middleware(...DefaultGenericMiddlewares)
|
|
19
|
+
|
|
20
|
+
const UserRpcs = middlewareGroup(middleware)(RpcGroup
|
|
21
|
+
.make(
|
|
22
|
+
middleware.rpc("getUser", {
|
|
23
|
+
success: S.Literal("awesome")
|
|
24
|
+
}),
|
|
25
|
+
middleware.rpc("doSomething", {
|
|
26
|
+
success: S.Literal("also-awesome"),
|
|
27
|
+
config: { allowAnonymous: true }
|
|
28
|
+
})
|
|
29
|
+
))
|
|
30
|
+
|
|
31
|
+
const impl = Effect
|
|
32
|
+
.gen(function*() {
|
|
33
|
+
const impl = UserRpcs
|
|
34
|
+
.toLayerDynamic({
|
|
35
|
+
getUser: Effect.fn(function*(_payload, _headers) {
|
|
36
|
+
yield* Some
|
|
37
|
+
yield* UserProfile // we only access it while protected by allowAnonymous: false
|
|
38
|
+
return "awesome" as const
|
|
39
|
+
}),
|
|
40
|
+
doSomething: Effect.fn(function*() {
|
|
41
|
+
console.log(yield* Effect.serviceOption(UserProfile)) // we access it optionally, while allowAnonymous: true
|
|
42
|
+
return "also-awesome" as const
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
return impl
|
|
46
|
+
})
|
|
47
|
+
.pipe(Layer.unwrapEffect)
|
|
48
|
+
|
|
49
|
+
expectTypeOf<Layer.Layer.Context<typeof impl>>().toEqualTypeOf<never>()
|
|
50
|
+
|
|
51
|
+
const UserRpcsBad = middlewareGroup(middleware)(RpcGroup
|
|
52
|
+
.make(
|
|
53
|
+
middleware.rpc("doSomethingElse", {
|
|
54
|
+
success: S.Literal("also-awesome2"),
|
|
55
|
+
config: { allowAnonymous: true }
|
|
56
|
+
})
|
|
57
|
+
))
|
|
58
|
+
export const badImpl = Effect
|
|
59
|
+
.gen(function*() {
|
|
60
|
+
const impl = UserRpcsBad
|
|
61
|
+
.toLayerDynamic({
|
|
62
|
+
doSomethingElse: Effect.fn(function*() {
|
|
63
|
+
console.log(yield* UserProfile) // bad boy! allowAnonymous: false, so `UserProfile` must fall through to the Layer R.
|
|
64
|
+
return "also-awesome2" as const
|
|
65
|
+
})
|
|
66
|
+
})
|
|
67
|
+
return impl
|
|
68
|
+
})
|
|
69
|
+
.pipe(Layer.unwrapEffect)
|
|
70
|
+
|
|
71
|
+
expectTypeOf<Layer.Layer.Context<typeof badImpl>>().toEqualTypeOf<UserProfile>()
|
|
72
|
+
|
|
73
|
+
const middlwareLayer = middleware
|
|
74
|
+
.layer
|
|
75
|
+
.pipe(
|
|
76
|
+
Layer.provide([
|
|
77
|
+
DefaultGenericMiddlewaresLive,
|
|
78
|
+
SomeElseMiddlewareLive,
|
|
79
|
+
SomeMiddlewareWrapLive,
|
|
80
|
+
TestLive,
|
|
81
|
+
RequireRolesLive.pipe(Layer.provide(SomeService.toLayer())),
|
|
82
|
+
AllowAnonymousLive
|
|
83
|
+
])
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
export const RpcTestLayer = Layer
|
|
87
|
+
.mergeAll(
|
|
88
|
+
impl,
|
|
89
|
+
middlwareLayer
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
export const RpcRealLayer = Layer
|
|
93
|
+
.mergeAll(
|
|
94
|
+
HttpLayerRouter
|
|
95
|
+
.serve(
|
|
96
|
+
RpcServer
|
|
97
|
+
.layerHttpRouter({ group: UserRpcs, path: "/rpc", protocol: "http" })
|
|
98
|
+
.pipe(Layer.provide(impl))
|
|
99
|
+
.pipe(Layer.provide(middlwareLayer))
|
|
100
|
+
)
|
|
101
|
+
.pipe(Layer.provide(NodeHttpServer.layer(() => createServer(), { port: 5918 }))),
|
|
102
|
+
RpcClient
|
|
103
|
+
.layerProtocolHttp({ url: "http://localhost:5918/rpc" })
|
|
104
|
+
.pipe(
|
|
105
|
+
Layer.provide(FetchHttpClient.layer)
|
|
106
|
+
)
|
|
107
|
+
)
|
|
108
|
+
.pipe(Layer.provide(RpcSerialization.layerJson))
|
|
109
|
+
|
|
110
|
+
it.scopedLive(
|
|
111
|
+
"require login",
|
|
112
|
+
Effect.fnUntraced(
|
|
113
|
+
function*() {
|
|
114
|
+
const userClient = yield* RpcTest.makeClient(UserRpcs) // RpcTest.makeClient(UserRpcs) // RpcClient.make(UserRpcs)
|
|
115
|
+
|
|
116
|
+
const user = yield* Effect.either(userClient.getUser().pipe(Effect.onExit((_) => Console.dir(_, { depth: 10 }))))
|
|
117
|
+
expect(user).toStrictEqual(Either.left(new NotLoggedInError("Not logged in")))
|
|
118
|
+
},
|
|
119
|
+
Effect.provide(RpcTestLayer)
|
|
120
|
+
)
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
it.scopedLive(
|
|
124
|
+
"allow anonymous, optional UserProfile",
|
|
125
|
+
Effect.fnUntraced(
|
|
126
|
+
function*() {
|
|
127
|
+
const userClient = yield* RpcTest.makeClient(UserRpcs) // RpcTest.makeClient(UserRpcs) // RpcClient.make(UserRpcs)
|
|
128
|
+
|
|
129
|
+
const user = yield* userClient.doSomething().pipe(Effect.onExit((_) => Console.dir(_, { depth: 10 })))
|
|
130
|
+
expect(user).toBe("also-awesome")
|
|
131
|
+
},
|
|
132
|
+
Effect.provide(RpcTestLayer)
|
|
133
|
+
)
|
|
134
|
+
)
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { type Rpc } from "@effect/rpc";
|
|
2
|
-
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware";
|
|
3
|
-
import { type Context, type Effect, Layer, type NonEmptyReadonlyArray, type Option, type S, type Schema, type Scope } from "effect-app";
|
|
4
|
-
import type { AnyService, ContextTagArray, RPCContextMap } from "effect-app/client/req";
|
|
5
|
-
import { type HttpHeaders } from "effect-app/http";
|
|
6
|
-
import { type Service } from "effect/Effect";
|
|
7
|
-
export interface RpcMiddleware<Provides, E, Requires> {
|
|
8
|
-
(options: {
|
|
9
|
-
readonly clientId: number;
|
|
10
|
-
readonly rpc: Rpc.AnyWithProps;
|
|
11
|
-
readonly payload: unknown;
|
|
12
|
-
readonly headers: HttpHeaders.Headers;
|
|
13
|
-
}): Effect.Effect<Provides, E, Scope.Scope | Requires>;
|
|
14
|
-
}
|
|
15
|
-
export interface RpcMiddlewareWrap<Provides, E, Requires> {
|
|
16
|
-
(options: {
|
|
17
|
-
readonly clientId: number;
|
|
18
|
-
readonly rpc: Rpc.AnyWithProps;
|
|
19
|
-
readonly payload: unknown;
|
|
20
|
-
readonly headers: HttpHeaders.Headers;
|
|
21
|
-
readonly next: Effect.Effect<SuccessValue, E, Provides | Scope.Scope | Requires>;
|
|
22
|
-
}): Effect.Effect<SuccessValue, E, Scope.Scope | Requires>;
|
|
23
|
-
}
|
|
24
|
-
type RpcOptionsOriginal = {
|
|
25
|
-
readonly wrap?: boolean;
|
|
26
|
-
readonly optional?: boolean;
|
|
27
|
-
readonly failure?: Schema.Schema.All;
|
|
28
|
-
readonly provides?: AnyService;
|
|
29
|
-
readonly requiredForClient?: boolean;
|
|
30
|
-
};
|
|
31
|
-
export type RpcDynamic<Key extends string, A extends RPCContextMap.Any> = {
|
|
32
|
-
key: Key;
|
|
33
|
-
settings: A;
|
|
34
|
-
};
|
|
35
|
-
export type AnyDynamic = {
|
|
36
|
-
dynamic: RpcDynamic<any, any>;
|
|
37
|
-
};
|
|
38
|
-
export type DependsOn = {
|
|
39
|
-
readonly dependsOn: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
40
|
-
};
|
|
41
|
-
interface RpcOptionsDynamic<Key extends string, A extends RPCContextMap.Any> extends RpcOptionsOriginal {
|
|
42
|
-
readonly dynamic: RpcDynamic<Key, A>;
|
|
43
|
-
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
44
|
-
}
|
|
45
|
-
export type Dynamic<Options> = Options extends RpcOptionsDynamic<any, any> ? true : false;
|
|
46
|
-
export interface RpcMiddlewareDynamicWrap<E, R, _Config> {
|
|
47
|
-
(options: {
|
|
48
|
-
readonly next: Effect.Effect<SuccessValue, E, Scope.Scope | R>;
|
|
49
|
-
readonly clientId: number;
|
|
50
|
-
readonly rpc: Rpc.AnyWithProps;
|
|
51
|
-
readonly payload: unknown;
|
|
52
|
-
readonly headers: HttpHeaders.Headers;
|
|
53
|
-
}): Effect.Effect<SuccessValue, E, Scope.Scope | R>;
|
|
54
|
-
}
|
|
55
|
-
export interface RpcMiddlewareDynamicNormal<A, E, R, _Config> {
|
|
56
|
-
(options: {
|
|
57
|
-
readonly clientId: number;
|
|
58
|
-
readonly rpc: Rpc.AnyWithProps;
|
|
59
|
-
readonly payload: unknown;
|
|
60
|
-
readonly headers: HttpHeaders.Headers;
|
|
61
|
-
}): Effect.Effect<Option.Option<A>, E, Scope.Scope | R>;
|
|
62
|
-
}
|
|
63
|
-
export interface TagClassAny extends Context.Tag<any, any> {
|
|
64
|
-
readonly [TypeId]: TypeId;
|
|
65
|
-
readonly optional: boolean;
|
|
66
|
-
readonly provides?: Context.Tag<any, any> | ContextTagArray | undefined;
|
|
67
|
-
readonly requires?: Context.Tag<any, any> | ContextTagArray | undefined;
|
|
68
|
-
readonly failure: Schema.Schema.All;
|
|
69
|
-
readonly requiredForClient: boolean;
|
|
70
|
-
readonly wrap: boolean;
|
|
71
|
-
readonly dynamic?: RpcDynamic<any, any> | undefined;
|
|
72
|
-
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
73
|
-
}
|
|
74
|
-
export declare namespace TagClass {
|
|
75
|
-
/**
|
|
76
|
-
* @since 1.0.0
|
|
77
|
-
* @category models
|
|
78
|
-
*/
|
|
79
|
-
type Provides<Options> = Options extends {
|
|
80
|
-
readonly provides: Context.Tag<any, any>;
|
|
81
|
-
readonly optional?: false;
|
|
82
|
-
} ? Context.Tag.Identifier<Options["provides"]> : Options extends {
|
|
83
|
-
readonly provides: ContextTagArray;
|
|
84
|
-
readonly optional?: false;
|
|
85
|
-
} ? ContextTagArray.Identifier<Options["provides"]> : never;
|
|
86
|
-
/**
|
|
87
|
-
* @since 1.0.0
|
|
88
|
-
* @category models
|
|
89
|
-
*/
|
|
90
|
-
type Requires<Options> = Options extends {
|
|
91
|
-
readonly requires: Context.Tag<any, any>;
|
|
92
|
-
} ? Context.Tag.Identifier<Options["requires"]> : Options extends {
|
|
93
|
-
readonly requires: ContextTagArray;
|
|
94
|
-
} ? ContextTagArray.Identifier<Options["requires"]> : never;
|
|
95
|
-
/**
|
|
96
|
-
* @since 1.0.0
|
|
97
|
-
* @category models
|
|
98
|
-
*/
|
|
99
|
-
type Service<Options> = Options extends {
|
|
100
|
-
readonly provides: Context.Tag<any, any>;
|
|
101
|
-
} ? Context.Tag.Service<Options["provides"]> : Options extends {
|
|
102
|
-
readonly dynamic: RpcDynamic<any, infer A>;
|
|
103
|
-
} ? Options extends {
|
|
104
|
-
wrap: true;
|
|
105
|
-
} ? void : AnyService.Bla<A["service"]> : Options extends {
|
|
106
|
-
readonly provides: ContextTagArray;
|
|
107
|
-
} ? Context.Context<ContextTagArray.Identifier<Options["provides"]>> : void;
|
|
108
|
-
/**
|
|
109
|
-
* @since 1.0.0
|
|
110
|
-
* @category models
|
|
111
|
-
*/
|
|
112
|
-
type FailureSchema<Options> = Options extends {
|
|
113
|
-
readonly failure: Schema.Schema.All;
|
|
114
|
-
readonly optional?: false;
|
|
115
|
-
} ? Options["failure"] : typeof Schema.Never;
|
|
116
|
-
/**
|
|
117
|
-
* @since 1.0.0
|
|
118
|
-
* @category models
|
|
119
|
-
*/
|
|
120
|
-
type Failure<Options> = Options extends {
|
|
121
|
-
readonly failure: Schema.Schema<infer _A, infer _I, infer _R>;
|
|
122
|
-
readonly optional?: false;
|
|
123
|
-
} ? _A : Options extends {
|
|
124
|
-
readonly dynamic: RpcDynamic<any, infer A>;
|
|
125
|
-
} ? S.Schema.Type<A["error"]> : never;
|
|
126
|
-
/**
|
|
127
|
-
* @since 1.0.0
|
|
128
|
-
* @category models
|
|
129
|
-
*/
|
|
130
|
-
type FailureContext<Options> = Schema.Schema.Context<FailureSchema<Options>>;
|
|
131
|
-
/**
|
|
132
|
-
* @since 1.0.0
|
|
133
|
-
* @category models
|
|
134
|
-
*/
|
|
135
|
-
type FailureService<Options> = Optional<Options> extends true ? unknown : Failure<Options>;
|
|
136
|
-
/**
|
|
137
|
-
* @since 1.0.0
|
|
138
|
-
* @category models
|
|
139
|
-
*/
|
|
140
|
-
type Optional<Options> = Options extends {
|
|
141
|
-
readonly optional: true;
|
|
142
|
-
} ? true : false;
|
|
143
|
-
/**
|
|
144
|
-
* @since 1.0.0
|
|
145
|
-
* @category models
|
|
146
|
-
*/
|
|
147
|
-
type RequiredForClient<Options> = Options extends {
|
|
148
|
-
readonly requiredForClient: true;
|
|
149
|
-
} ? true : false;
|
|
150
|
-
/**
|
|
151
|
-
* @since 1.0.0
|
|
152
|
-
* @category models
|
|
153
|
-
*/
|
|
154
|
-
type Wrap<Options> = Options extends {
|
|
155
|
-
readonly wrap: true;
|
|
156
|
-
} ? true : false;
|
|
157
|
-
/**
|
|
158
|
-
* @since 1.0.0
|
|
159
|
-
* @category models
|
|
160
|
-
*/
|
|
161
|
-
interface Base<Self, Name extends string, Options, Service> extends Context.Tag<Self, Service> {
|
|
162
|
-
new (_: never): Context.TagClassShape<Name, Service>;
|
|
163
|
-
readonly [TypeId]: TypeId;
|
|
164
|
-
readonly optional: Optional<Options>;
|
|
165
|
-
readonly failure: FailureSchema<Options>;
|
|
166
|
-
readonly provides: Options extends {
|
|
167
|
-
readonly provides: Context.Tag<any, any>;
|
|
168
|
-
} ? Options["provides"] : Options extends {
|
|
169
|
-
readonly provides: ContextTagArray;
|
|
170
|
-
} ? Options["provides"] : undefined;
|
|
171
|
-
readonly requires: Options extends {
|
|
172
|
-
readonly requires: Context.Tag<any, any>;
|
|
173
|
-
} ? Options["requires"] : Options extends {
|
|
174
|
-
readonly requires: ContextTagArray;
|
|
175
|
-
} ? Options["requires"] : undefined;
|
|
176
|
-
readonly dynamic: Options extends RpcOptionsDynamic<any, any> ? Options["dynamic"] : undefined;
|
|
177
|
-
readonly dependsOn: Options extends DependsOn ? Options["dependsOn"] : undefined;
|
|
178
|
-
readonly requiredForClient: RequiredForClient<Options>;
|
|
179
|
-
readonly wrap: Wrap<Options>;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
export interface TagClass<Self, Name extends string, Options> extends TagClass.Base<Self, Name, Options, Options extends RpcOptionsDynamic<any, any> ? TagClass.Wrap<Options> extends true ? RpcMiddlewareDynamicWrap<TagClass.FailureService<Options>, TagClass.Requires<Options>, {
|
|
183
|
-
[K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"];
|
|
184
|
-
}> : RpcMiddlewareDynamicNormal<TagClass.Service<Options>, TagClass.FailureService<Options>, TagClass.Requires<Options>, {
|
|
185
|
-
[K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"];
|
|
186
|
-
}> : TagClass.Wrap<Options> extends true ? RpcMiddlewareWrap<TagClass.Provides<Options>, TagClass.Failure<Options>, TagClass.Requires<Options>> : RpcMiddleware<TagClass.Service<Options>, TagClass.FailureService<Options>, TagClass.Requires<Options>>> {
|
|
187
|
-
}
|
|
188
|
-
export declare const Tag: <Self>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any>>(id: Name, options?: Options | undefined) => <LayerOpts extends {
|
|
189
|
-
effect: Effect.Effect<Options extends RpcOptionsDynamic<any, any> ? TagClass.Wrap<Options> extends true ? RpcMiddlewareDynamicWrap<TagClass.FailureService<Options>, TagClass.Requires<Options>, { [K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"]; }> : RpcMiddlewareDynamicNormal<TagClass.Service<Options>, TagClass.FailureService<Options>, TagClass.Requires<Options>, { [K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"]; }> : TagClass.Wrap<Options> extends true ? RpcMiddlewareWrap<TagClass.Provides<Options>, TagClass.Failure<Options>, TagClass.Requires<Options>> : RpcMiddleware<TagClass.Service<Options>, TagClass.FailureService<Options>, TagClass.Requires<Options>>, any, any>;
|
|
190
|
-
dependencies?: NonEmptyReadonlyArray<Layer.Layer.Any> | ReadonlyArray<Layer.Layer.Any>;
|
|
191
|
-
}>(opts: LayerOpts) => TagClass<Self, Name, Options> & {
|
|
192
|
-
Default: Layer.Layer<Self, (LayerOpts extends {
|
|
193
|
-
effect: Effect<infer _A, infer _E, infer _R>;
|
|
194
|
-
} ? _E : never) | Service.MakeDepsE<LayerOpts>, Exclude<LayerOpts extends {
|
|
195
|
-
effect: Effect<infer _A, infer _E_1, infer _R_1>;
|
|
196
|
-
} ? _R_1 : never, Service.MakeDepsOut<LayerOpts>> | Service.MakeDepsIn<LayerOpts>>;
|
|
197
|
-
};
|
|
198
|
-
export {};
|
|
199
|
-
//# sourceMappingURL=RpcMiddleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/RpcMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
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 { Layer, Unify } from "effect-app";
|
|
6
|
-
export const Tag = () => (id, options) => (opts) => class extends RpcMiddleware.Tag()(id, options) {
|
|
7
|
-
static dynamic = options && "dynamic" in options ? options.dynamic : undefined;
|
|
8
|
-
static dependsOn = options && "dependsOn" in options ? options.dependsOn : undefined;
|
|
9
|
-
static Default = Layer.scoped(this, opts.effect).pipe(Layer.provide([Layer.empty, ...opts.dependencies ?? []]));
|
|
10
|
-
static [Unify.typeSymbol];
|
|
11
|
-
static [Unify.unifySymbol];
|
|
12
|
-
static [Unify.ignoreSymbol];
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9taWRkbGV3YXJlL1JwY01pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFZLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVyRCxPQUFPLEVBQTZCLEtBQUssRUFBNEUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBMk85SSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBUyxFQUFFLENBQzlCLENBSUUsRUFBUSxFQUNSLE9BQTZCLEVBQzdCLEVBQUUsQ0FDSixDQThCRSxJQUFlLEVBWWYsRUFBRSxDQUNGLEtBQU0sU0FBUSxhQUFhLENBQUMsR0FBRyxFQUFRLENBQUMsRUFBRSxFQUFFLE9BQWMsQ0FBQztJQUN6RCxNQUFNLENBQVUsT0FBTyxHQUFHLE9BQU8sSUFBSSxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDdkYsTUFBTSxDQUFVLFNBQVMsR0FBRyxPQUFPLElBQUksV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzdGLE1BQU0sQ0FBVSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDLElBQUksQ0FDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3pELENBQUE7SUFDRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVU7SUFDNUMsTUFBTSxDQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUF3QjtJQUMzRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQWlCO0NBQy9DLENBQUEifQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, type Layer, type NonEmptyReadonlyArray, type S } from "effect-app";
|
|
2
|
-
import { type ContextTagArray } from "effect-app/client";
|
|
3
|
-
import { type RpcMiddlewareWrap, type TagClassAny } from "./RpcMiddleware.js";
|
|
4
|
-
export type MiddlewareMaker = TagClassAny & {
|
|
5
|
-
Default: Layer.Layer.Any;
|
|
6
|
-
};
|
|
7
|
-
export declare namespace MiddlewareMaker {
|
|
8
|
-
type ApplyServices<A extends TagClassAny, R> = Exclude<R, Provided<A>> | Required<A>;
|
|
9
|
-
type ApplyManyServices<A extends NonEmptyReadonlyArray<TagClassAny>, R> = Exclude<R, {
|
|
10
|
-
[K in keyof A]: Provided<A[K]>;
|
|
11
|
-
}[number]> | {
|
|
12
|
-
[K in keyof A]: Required<A[K]>;
|
|
13
|
-
}[number];
|
|
14
|
-
type ManyProvided<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
15
|
-
[K in keyof A]: Provided<A[K]>;
|
|
16
|
-
}[number] : Provided<A[number]>;
|
|
17
|
-
type ManyRequired<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
18
|
-
[K in keyof A]: Required<A[K]>;
|
|
19
|
-
}[number] : Required<A[number]>;
|
|
20
|
-
type ManyErrors<A extends ReadonlyArray<TagClassAny>> = A extends NonEmptyReadonlyArray<TagClassAny> ? {
|
|
21
|
-
[K in keyof A]: Errors<A[K]>;
|
|
22
|
-
}[number] : Errors<A[number]>;
|
|
23
|
-
type Provided<T> = T extends TagClassAny ? T extends {
|
|
24
|
-
provides: Context.Tag<any, any>;
|
|
25
|
-
} ? Context.Tag.Identifier<T["provides"]> : T extends {
|
|
26
|
-
provides: ContextTagArray;
|
|
27
|
-
} ? ContextTagArray.Identifier<T["provides"]> : never : never;
|
|
28
|
-
type Errors<T> = T extends TagClassAny ? T extends {
|
|
29
|
-
failure: S.Schema.Any;
|
|
30
|
-
} ? S.Schema.Type<T["failure"]> : never : never;
|
|
31
|
-
type Required<T> = T extends TagClassAny ? T extends {
|
|
32
|
-
requires: Context.Tag<any, any>;
|
|
33
|
-
} ? Context.Tag.Identifier<T["requires"]> : T extends {
|
|
34
|
-
requires: ContextTagArray;
|
|
35
|
-
} ? ContextTagArray.Identifier<T["requires"]> : never : never;
|
|
36
|
-
}
|
|
37
|
-
export declare const middlewareMaker: <MiddlewareProviders extends ReadonlyArray<MiddlewareMaker>>(middlewares: MiddlewareProviders) => {
|
|
38
|
-
dependencies: { [K in keyof MiddlewareProviders]: MiddlewareProviders[K]["Default"]; };
|
|
39
|
-
effect: 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>>>>;
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=generic-middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generic-middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/generic-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Context, Effect, Option } from "effect-app";
|
|
2
|
-
import { InfraLogger } 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 {
|
|
7
|
-
dependencies: middlewares.map((_) => _.Default),
|
|
8
|
-
effect: Effect.gen(function* () {
|
|
9
|
-
const context = yield* Effect.context();
|
|
10
|
-
// returns a Effect/RpcMiddlewareWrap with Scope in requirements
|
|
11
|
-
return (options) => {
|
|
12
|
-
// we start with the actual handler
|
|
13
|
-
let handler = options.next;
|
|
14
|
-
// inspired from Effect/RpcMiddleware
|
|
15
|
-
for (const tag of middlewares) {
|
|
16
|
-
if (tag.wrap) {
|
|
17
|
-
// use the tag to get the middleware from context
|
|
18
|
-
const middleware = Context.unsafeGet(context, tag);
|
|
19
|
-
// wrap the current handler, allowing the middleware to run before and after it
|
|
20
|
-
handler = InfraLogger.logDebug("Applying middleware wrap " + tag.key).pipe(Effect.zipRight(middleware({ ...options, next: handler })));
|
|
21
|
-
}
|
|
22
|
-
else if (tag.optional) {
|
|
23
|
-
// use the tag to get the middleware from context
|
|
24
|
-
// if the middleware fails to run, we will ignore the error
|
|
25
|
-
const middleware = Context.unsafeGet(context, tag);
|
|
26
|
-
const previous = handler;
|
|
27
|
-
// set the previous handler to run after the middleware
|
|
28
|
-
// if the middleware is not present, we just return the previous handler
|
|
29
|
-
// otherwise the middleware will provide some context to be provided to the previous handler
|
|
30
|
-
handler = InfraLogger.logDebug("Applying middleware optional " + tag.key).pipe(Effect.zipRight(Effect.matchEffect(middleware(options), {
|
|
31
|
-
onFailure: () => previous,
|
|
32
|
-
onSuccess: tag.provides !== undefined
|
|
33
|
-
? (value) => Context.isContext(value)
|
|
34
|
-
? Effect.provide(previous, value)
|
|
35
|
-
: Effect.provideService(previous, tag.provides, value)
|
|
36
|
-
: (_) => previous
|
|
37
|
-
})));
|
|
38
|
-
}
|
|
39
|
-
else if (tag.dynamic) {
|
|
40
|
-
// use the tag to get the middleware from context
|
|
41
|
-
const middleware = Context.unsafeGet(context, tag);
|
|
42
|
-
const previous = handler;
|
|
43
|
-
// set the previous handler to run after the middleware
|
|
44
|
-
// we do expect the middleware to be present, but the context might not be available
|
|
45
|
-
// if it is, we provide it to the previous handler
|
|
46
|
-
handler = InfraLogger.logDebug("Applying middleware dynamic " + tag.key, tag.dynamic).pipe(Effect.zipRight(middleware(options).pipe(Effect.flatMap((o) => Option.isSome(o)
|
|
47
|
-
? Context.isContext(o.value)
|
|
48
|
-
? Effect.provide(previous, o.value)
|
|
49
|
-
: Effect.provideService(previous, tag.dynamic.settings.service, /* TODO */ o.value)
|
|
50
|
-
: previous))));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// use the tag to get the middleware from context
|
|
54
|
-
const middleware = Context.unsafeGet(context, tag);
|
|
55
|
-
const previous = handler;
|
|
56
|
-
// set the previous handler to run after the middleware
|
|
57
|
-
// we do expect both the middleware and the context to be present
|
|
58
|
-
handler = InfraLogger.logDebug("Applying middleware " + tag.key).pipe(Effect.zipRight(tag.provides !== undefined
|
|
59
|
-
? middleware(options).pipe(Effect.flatMap((value) => Context.isContext(value)
|
|
60
|
-
? Effect.provide(previous, value)
|
|
61
|
-
: Effect.provideService(previous, tag.provides, value)))
|
|
62
|
-
: Effect.zipRight(middleware(options), previous)));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return handler;
|
|
66
|
-
};
|
|
67
|
-
})
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9yb3V0aW5nL21pZGRsZXdhcmUvZ2VuZXJpYy1taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUEwQyxNQUFNLEVBQXNCLE1BQU0sWUFBWSxDQUFBO0FBRWhILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQXlDaEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBRTdCLFdBQWdDLEVBYWhDLEVBQUU7SUFDRixzR0FBc0c7SUFDdEcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQVMsQ0FBQTtJQUU3QyxPQUFPO1FBQ0wsWUFBWSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDL0MsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQzFCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUV2QyxnRUFBZ0U7WUFDaEUsT0FBTyxDQUNMLE9BTUksRUFDSixFQUFFO2dCQUNGLG1DQUFtQztnQkFDbkMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtnQkFFMUIscUNBQXFDO2dCQUNyQyxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUM5QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDYixpREFBaUQ7d0JBQ2pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO3dCQUVsRCwrRUFBK0U7d0JBQy9FLE9BQU8sR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLDJCQUEyQixH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
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { type AnyWithProps } from "@effect/rpc/Rpc";
|
|
2
|
-
import { Context, type Effect, type NonEmptyArray, type NonEmptyReadonlyArray, S } from "effect-app";
|
|
3
|
-
import { type GetContextConfig, type RPCContextMap } from "effect-app/client";
|
|
4
|
-
import { type TypeTestId } from "../../routing.js";
|
|
5
|
-
import { type MiddlewareMaker } from "./generic-middleware.js";
|
|
6
|
-
import { type AnyDynamic, type RpcDynamic, type TagClassAny } from "./RpcMiddleware.js";
|
|
7
|
-
/** Adapter used when setting the dynamic prop on a middleware implementation */
|
|
8
|
-
export declare const contextMap: <RequestContextMap extends Record<string, RPCContextMap.Any>, Key extends (keyof RequestContextMap) & string>(rcm: RequestContextMap, key: Key) => RpcDynamic<Key, RequestContextMap[Key]>;
|
|
9
|
-
/** Retrieves RequestContextConfig out of the RPC annotations */
|
|
10
|
-
export declare const getConfig: <RequestContextMap extends Record<string, RPCContextMap.Any>>() => (rpc: AnyWithProps) => GetContextConfig<RequestContextMap>;
|
|
11
|
-
type GetDependsOnKeys<MW extends MiddlewareMaker> = MW extends {
|
|
12
|
-
dependsOn: NonEmptyReadonlyArray<TagClassAny>;
|
|
13
|
-
} ? {
|
|
14
|
-
[K in keyof MW["dependsOn"]]: MW["dependsOn"][K] extends AnyDynamic ? MW["dependsOn"][K]["dynamic"]["key"] : never;
|
|
15
|
-
}[keyof MW["dependsOn"]] : never;
|
|
16
|
-
type FilterInDynamicMiddlewares<MWs extends ReadonlyArray<MiddlewareMaker>, RequestContextMap extends Record<string, RPCContextMap.Any>> = {
|
|
17
|
-
[K in keyof MWs]: MWs[K] extends {
|
|
18
|
-
dynamic: RpcDynamic<any, RequestContextMap[keyof RequestContextMap]>;
|
|
19
|
-
} ? MWs[K] : never;
|
|
20
|
-
};
|
|
21
|
-
type RecursiveHandleMWsSideways<MWs, R extends {
|
|
22
|
-
rcm: Record<string, RPCContextMap.Any>;
|
|
23
|
-
provided: keyof R["rcm"];
|
|
24
|
-
middlewares: ReadonlyArray<MiddlewareMaker>;
|
|
25
|
-
dmp: any;
|
|
26
|
-
middlewareR: any;
|
|
27
|
-
}> = MWs extends [
|
|
28
|
-
infer F extends MiddlewareMaker,
|
|
29
|
-
...infer Rest extends ReadonlyArray<MiddlewareMaker>
|
|
30
|
-
] ? RecursiveHandleMWsSideways<Rest, {
|
|
31
|
-
rcm: R["rcm"];
|
|
32
|
-
provided: Exclude<R["provided"] | FilterInDynamicMiddlewares<[F], R["rcm"]>[number]["dynamic"]["key"], GetDependsOnKeys<F>>;
|
|
33
|
-
middlewares: [...R["middlewares"], F];
|
|
34
|
-
dmp: [FilterInDynamicMiddlewares<[F], R["rcm"]>[number]] extends [never] ? R["dmp"] : R["dmp"] & {
|
|
35
|
-
[U in FilterInDynamicMiddlewares<[F], R["rcm"]>[number] as U["dynamic"]["key"]]: U;
|
|
36
|
-
};
|
|
37
|
-
middlewareR: MiddlewareMaker.ApplyManyServices<[F], R["middlewareR"]>;
|
|
38
|
-
}> : R;
|
|
39
|
-
export interface BuildingMiddleware<RequestContextMap extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContextMap, Middlewares extends ReadonlyArray<MiddlewareMaker>, DynamicMiddlewareProviders, out MiddlewareR extends {
|
|
40
|
-
_tag: string;
|
|
41
|
-
} = never> {
|
|
42
|
-
middleware<MWs extends NonEmptyArray<MiddlewareMaker>>(...mw: MWs): RecursiveHandleMWsSideways<MWs, {
|
|
43
|
-
rcm: RequestContextMap;
|
|
44
|
-
provided: Provided;
|
|
45
|
-
middlewares: Middlewares;
|
|
46
|
-
dmp: DynamicMiddlewareProviders;
|
|
47
|
-
middlewareR: MiddlewareR;
|
|
48
|
-
}> extends infer Res extends {
|
|
49
|
-
rcm: RequestContextMap;
|
|
50
|
-
provided: keyof RequestContextMap;
|
|
51
|
-
middlewares: ReadonlyArray<MiddlewareMaker>;
|
|
52
|
-
dmp: any;
|
|
53
|
-
middlewareR: any;
|
|
54
|
-
} ? MiddlewaresBuilder<Res["rcm"], Res["provided"], Res["middlewares"], Res["dmp"], Res["middlewareR"]> : never;
|
|
55
|
-
readonly [TypeTestId]: {
|
|
56
|
-
missingDynamicMiddlewares: Exclude<keyof RequestContextMap, Provided>;
|
|
57
|
-
missingContext: MiddlewareR;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export type MiddlewaresBuilder<RequestContextMap extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContextMap = never, Middlewares extends ReadonlyArray<MiddlewareMaker> = [], DynamicMiddlewareProviders = unknown, MiddlewareR extends {
|
|
61
|
-
_tag: string;
|
|
62
|
-
} = never> = BuildingMiddleware<RequestContextMap, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> & // keyof Omit<RequestContextMap, Provided> extends never is true when all the dynamic middlewares are provided
|
|
63
|
-
(keyof Omit<RequestContextMap, Provided> extends never ? [MiddlewareR] extends [never] ? ReturnType<typeof makeMiddlewareBasic<RequestContextMap, Middlewares>> : {} : {});
|
|
64
|
-
export declare const makeMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>>(rcm: RequestContextMap) => MiddlewaresBuilder<RequestContextMap>;
|
|
65
|
-
export interface MiddlewareMakerId {
|
|
66
|
-
readonly _id: unique symbol;
|
|
67
|
-
}
|
|
68
|
-
type MakeTags<A> = Context.Tag<A, A>;
|
|
69
|
-
declare const makeMiddlewareBasic: <RequestContextMap extends Record<string, RPCContextMap.Any>, MiddlewareProviders extends ReadonlyArray<MiddlewareMaker>>(_rcm: RequestContextMap, ...make: MiddlewareProviders) => import("./RpcMiddleware.js").TagClass<MiddlewareMakerId, "MiddlewareMaker", {
|
|
70
|
-
readonly failure: MiddlewareMaker.ManyErrors<MiddlewareProviders> extends never ? never : S.Schema<MiddlewareMaker.ManyErrors<MiddlewareProviders>>;
|
|
71
|
-
readonly requires: Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : [MakeTags<Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>];
|
|
72
|
-
readonly provides: MiddlewareMaker.ManyProvided<MiddlewareProviders> extends never ? never : [MakeTags<MiddlewareMaker.ManyProvided<MiddlewareProviders>>];
|
|
73
|
-
readonly wrap: true;
|
|
74
|
-
}> & {
|
|
75
|
-
Default: import("effect/Layer").Layer<MiddlewareMakerId, import("effect/Types").Covariant.Type<Effect.Service.MakeDeps<{
|
|
76
|
-
dependencies: { [K in keyof MiddlewareProviders]: MiddlewareProviders[K]["Default"]; };
|
|
77
|
-
effect: Effect<any, // TODO: why ?
|
|
78
|
-
Effect.Error<Effect.Effect<import("./RpcMiddleware.js").RpcMiddlewareWrap<MiddlewareMaker.ManyProvided<MiddlewareProviders>, MiddlewareMaker.ManyErrors<MiddlewareProviders>, Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>, never, never>>, Effect.Context<Effect.Effect<import("./RpcMiddleware.js").RpcMiddlewareWrap<MiddlewareMaker.ManyProvided<MiddlewareProviders>, MiddlewareMaker.ManyErrors<MiddlewareProviders>, Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>, never, never>>>;
|
|
79
|
-
}>[typeof import("effect/Layer").LayerTypeId]["_E"]>, import("effect/Types").Covariant.Type<Effect.Service.MakeDeps<{
|
|
80
|
-
dependencies: { [K in keyof MiddlewareProviders]: MiddlewareProviders[K]["Default"]; };
|
|
81
|
-
effect: Effect<any, // TODO: why ?
|
|
82
|
-
Effect.Error<Effect.Effect<import("./RpcMiddleware.js").RpcMiddlewareWrap<MiddlewareMaker.ManyProvided<MiddlewareProviders>, MiddlewareMaker.ManyErrors<MiddlewareProviders>, Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>, never, never>>, Effect.Context<Effect.Effect<import("./RpcMiddleware.js").RpcMiddlewareWrap<MiddlewareMaker.ManyProvided<MiddlewareProviders>, MiddlewareMaker.ManyErrors<MiddlewareProviders>, Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>> extends never ? never : Exclude<MiddlewareMaker.ManyRequired<MiddlewareProviders>, MiddlewareMaker.ManyProvided<MiddlewareProviders>>>, never, never>>>;
|
|
83
|
-
}>[typeof import("effect/Layer").LayerTypeId]["_RIn"]>>;
|
|
84
|
-
} & {
|
|
85
|
-
requestContext: Context.Tag<"RequestContextConfig", GetContextConfig<RequestContextMap>>;
|
|
86
|
-
};
|
|
87
|
-
export {};
|
|
88
|
-
//# sourceMappingURL=middleware-api.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-api.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware-api.ts"],"names":[],"mappings":"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"}
|