@effect-app/infra 2.70.2 → 2.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/Store/ContextMapContainer.d.ts +1 -1
- package/dist/api/internal/middlewares.js +1 -1
- package/dist/api/routing/DynamicMiddleware.d.ts +29 -19
- package/dist/api/routing/DynamicMiddleware.d.ts.map +1 -1
- package/dist/api/routing/DynamicMiddleware.js +37 -13
- package/dist/api/routing/utils.d.ts +7 -0
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing/utils.js +2 -1
- package/dist/api/routing.d.ts +47 -48
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +54 -67
- package/package.json +2 -2
- package/src/api/internal/middlewares.ts +1 -1
- package/src/api/routing/DynamicMiddleware.ts +178 -62
- package/src/api/routing/utils.ts +2 -0
- package/src/api/routing.ts +208 -169
- package/test/controller.test.ts +63 -108
- package/test/dist/controller.test.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 2.71.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8bb246b: cleanup and document router/middleware
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 8bb246b: better middlewares creation
|
|
12
|
+
- Updated dependencies [8bb246b]
|
|
13
|
+
- effect-app@2.48.0
|
|
14
|
+
|
|
3
15
|
## 2.70.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from "effect-app";
|
|
2
2
|
import { ContextMap } from "./service.js";
|
|
3
|
-
declare const ContextMapContainer_base: Context.ReferenceClass<ContextMapContainer, "ContextMapContainer",
|
|
3
|
+
declare const ContextMapContainer_base: Context.ReferenceClass<ContextMapContainer, "ContextMapContainer", "root" | ContextMap>;
|
|
4
4
|
export declare class ContextMapContainer extends ContextMapContainer_base {
|
|
5
5
|
static readonly layer: Layer.Layer<ContextMapContainer, never, never>;
|
|
6
6
|
}
|
|
@@ -165,4 +165,4 @@ export const cors = (_options) => {
|
|
|
165
165
|
return response.pipe(ServerResponse.setHeaders(dropUndefined(corsHeaders)));
|
|
166
166
|
}));
|
|
167
167
|
};
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2ludGVybmFsL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQTtBQUVoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMzRCxPQUFPLEtBQUssVUFBVSxNQUFNLGlDQUFpQyxDQUFBO0FBQzdELE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEtBQUssY0FBYyxNQUFNLHFDQUFxQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFHN0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBc0MsTUFBTSxFQUFFLEVBQUUsQ0FDeEUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FDRixpQkFBaUIsQ0FBQyxpQkFBaUIsRUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFB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
|
|
@@ -1,25 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { RPCContextMap } from "effect-app/client/req";
|
|
1
|
+
import { Context, Effect, Layer, type NonEmptyArray, type Request, type S, type Scope } from "effect-app";
|
|
2
|
+
import type { GetEffectContext, RPCContextMap } from "effect-app/client/req";
|
|
3
3
|
import type * as EffectRequest from "effect/Request";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
import { type LayersUtils } from "../routing.js";
|
|
5
|
+
export declare const MiddlewareMaker: Context.Tag<"MiddlewareMaker", any>;
|
|
6
|
+
export type RPCHandlerFactory<RequestContextMap extends Record<string, RPCContextMap.Any>, MiddlewareR> = <T extends {
|
|
7
|
+
config?: Partial<Record<keyof RequestContextMap, any>>;
|
|
8
|
+
}, Req extends S.TaggedRequest.All, HandlerR>(schema: T & S.Schema<Req, any, never>, handler: (request: Req, headers: any) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, HandlerR>, moduleName?: string) => (req: Req, headers: any) => Effect.Effect<Request.Request.Success<Req>, Request.Request.Error<Req>, MiddlewareR | Exclude<HandlerR, GetEffectContext<RequestContextMap, (T & S.Schema<Req, any, never>)["config"]>>>;
|
|
9
|
+
export declare const makeMiddlewareLayer: <RequestContextMap extends Record<string, RPCContextMap.Any>, MiddlewareR, MakeMiddlewareR, MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>, ContextProviderId, ContextProviderKey extends string, ContextProviderA, MakeContextProviderE, MakeContextProviderR>(middleware: Middleware<MiddlewareR, RequestContextMap, MakeMiddlewareR, MiddlewareDependencies, ContextProviderId, ContextProviderKey, ContextProviderA, MakeContextProviderE, MakeContextProviderR>) => Layer.Layer<"MiddlewareMaker", never, Exclude<MiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>>>;
|
|
10
|
+
export type ContextProviderShape<ContextProviderA> = Effect<Context.Context<ContextProviderA>, never, Scope>;
|
|
11
|
+
export interface Middleware<MiddlewareR, // what the middlware requires to execute
|
|
12
|
+
RequestContextMap extends Record<string, RPCContextMap.Any>, // what services will the middlware provide dynamically to the handler, or raise errors.
|
|
13
|
+
MakeMiddlewareR, // what the middlware requires to be constructed
|
|
14
|
+
MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>, // layers provided for the middlware to be constructed
|
|
15
|
+
ContextProviderId, // it is the context provider itself
|
|
16
|
+
ContextProviderKey extends string, // tag for the context provider
|
|
17
|
+
ContextProviderA, // what the context provider provides
|
|
18
|
+
MakeContextProviderE, // what the context provider construction can fail with
|
|
19
|
+
MakeContextProviderR> {
|
|
20
|
+
dependencies?: MiddlewareDependencies;
|
|
21
|
+
contextProvider: Context.Tag<ContextProviderId, ContextProviderId & ContextProviderShape<ContextProviderA> & {
|
|
22
|
+
_tag: ContextProviderKey;
|
|
15
23
|
}> & {
|
|
16
|
-
Default: Layer.Layer<
|
|
24
|
+
Default: Layer.Layer<ContextProviderId, MakeContextProviderE, MakeContextProviderR>;
|
|
17
25
|
};
|
|
18
|
-
execute
|
|
26
|
+
execute?: Effect<RPCHandlerFactory<RequestContextMap, MiddlewareR>, never, MakeMiddlewareR>;
|
|
27
|
+
executeContextual?: (maker: (cb: RPCHandlerFactory<RequestContextMap, MiddlewareR>) => RPCHandlerFactory<RequestContextMap, MiddlewareR>) => Effect<RPCHandlerFactory<RequestContextMap, MiddlewareR>, never, MakeMiddlewareR>;
|
|
19
28
|
}
|
|
20
|
-
export declare const
|
|
29
|
+
export declare const makeMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>, MiddlewareR>() => <M extends Middleware<MiddlewareR, RequestContextMap, any, NonEmptyArray<Layer.Layer.Any>, any, any, any, any, any>>(content: M) => M;
|
|
30
|
+
export declare const makeRpc: <MiddlewareR, RequestContextMap extends Record<string, RPCContextMap.Any>, MakeMiddlewareR, MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>, ContextProviderId, ContextProviderKey extends string, ContextProviderA, MakeContextProviderE, MakeContextProviderR>(middleware: Middleware<MiddlewareR, RequestContextMap, MakeMiddlewareR, MiddlewareDependencies, ContextProviderId, ContextProviderKey, ContextProviderA, MakeContextProviderE, MakeContextProviderR>) => Effect.Effect<{
|
|
21
31
|
effect: <T extends {
|
|
22
|
-
config?: Partial<Record<keyof
|
|
23
|
-
}, Req extends S.TaggedRequest.All,
|
|
24
|
-
}, never,
|
|
32
|
+
config?: Partial<Record<keyof RequestContextMap, any>>;
|
|
33
|
+
}, Req extends S.TaggedRequest.All, HandlerR>(schema: T & S.Schema<Req, any, never>, handler: (request: Req, headers: any) => Effect.Effect<Request.Request.Success<Req>, Request.Request.Error<Req>, HandlerR>, moduleName?: string) => (req: Req, headers: any) => Effect.Effect<Request.Request.Success<Req>, Request.Request.Error<Req>, Scope.Scope | Exclude<MiddlewareR, ContextProviderA> | Exclude<Exclude<HandlerR, GetEffectContext<RequestContextMap, (T & S.Schema<Req, any, never>)["config"]>>, ContextProviderA>>;
|
|
34
|
+
}, never, "MiddlewareMaker" | ContextProviderId>;
|
|
25
35
|
//# sourceMappingURL=DynamicMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing/DynamicMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/routing/DynamicMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,44 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import { Effect } from "effect-app";
|
|
4
|
+
import { Context, Effect, Layer } from "effect-app";
|
|
5
|
+
export const MiddlewareMaker = Context.GenericTag("MiddlewareMaker");
|
|
6
|
+
function makeRpcHandler() {
|
|
7
|
+
return (cb) => cb;
|
|
8
|
+
}
|
|
9
|
+
export const makeMiddlewareLayer = (middleware) => {
|
|
10
|
+
if (!middleware.execute && !middleware.executeContextual) {
|
|
11
|
+
throw new Error("No execute or executeContextual provided in middleware");
|
|
12
|
+
}
|
|
13
|
+
const middlewareLayer = Layer
|
|
14
|
+
.effect(MiddlewareMaker, middleware.execute
|
|
15
|
+
? middleware.execute
|
|
16
|
+
: middleware.executeContextual(makeRpcHandler()))
|
|
17
|
+
.pipe(middleware.dependencies ? Layer.provide(middleware.dependencies) : (_) => _);
|
|
18
|
+
return middlewareLayer;
|
|
19
|
+
};
|
|
20
|
+
// identity factory for Middleware
|
|
21
|
+
export const makeMiddleware =
|
|
22
|
+
// by setting MiddlewareR and RequestContextMap beforehand, executeContextual contextual typing does not fuck up itself to anys
|
|
23
|
+
() => (content) => content;
|
|
24
|
+
// it just provides the right types without cluttering the implementation with them
|
|
25
|
+
function makeRpcEffect() {
|
|
26
|
+
return (cb) => cb;
|
|
27
|
+
}
|
|
5
28
|
export const makeRpc = (middleware) => Effect
|
|
6
29
|
.all({
|
|
7
|
-
|
|
8
|
-
contextProvider: middleware.contextProvider
|
|
30
|
+
middleware: MiddlewareMaker,
|
|
31
|
+
contextProvider: middleware.contextProvider // uses the middleware.contextProvider tag to get the context provider service
|
|
9
32
|
})
|
|
10
|
-
.pipe(Effect.map(({ contextProvider,
|
|
11
|
-
effect: (schema, handler, moduleName) => {
|
|
12
|
-
const h =
|
|
13
|
-
return (req, headers) =>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
|
|
33
|
+
.pipe(Effect.map(({ contextProvider, middleware }) => ({
|
|
34
|
+
effect: makeRpcEffect()((schema, handler, moduleName) => {
|
|
35
|
+
const h = middleware(schema, handler, moduleName);
|
|
36
|
+
return (req, headers) =>
|
|
37
|
+
// the contextProvider is an Effect that builds the context for the request
|
|
38
|
+
contextProvider.pipe(Effect.flatMap((ctx) => h(req, headers)
|
|
39
|
+
.pipe(Effect.provide(ctx),
|
|
40
|
+
// TODO: make this depend on query/command, and consider if middleware also should be affected or not.
|
|
41
|
+
Effect.uninterruptible)));
|
|
42
|
+
})
|
|
19
43
|
})));
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvRHluYW1pY01pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUF3RCxNQUFNLFlBQVksQ0FBQTtBQUt6RyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBeUIsaUJBQWlCLENBQUMsQ0FBQTtBQStCNUYsU0FBUyxjQUFjO0lBQ3JCLE9BQU8sQ0FBQyxFQUFxRCxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDdEUsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBV2pDLFVBVUMsRUFDRCxFQUFFO0lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUNELE1BQU0sZUFBZSxHQUFHLEtBQUs7U0FDMUIsTUFBTSxDQUNMLGVBQWUsRUFDZixVQUFVLENBQUMsT0FBTztRQUNoQixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU87UUFDcEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBa0IsQ0FBQyxjQUFjLEVBQWtDLENBQUMsQ0FDcEY7U0FDQSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUUzRixPQUFPLGVBSU4sQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXdDRCxrQ0FBa0M7QUFDbEMsTUFBTSxDQUFDLE1BQU0sY0FBYztBQUN6QiwrSEFBK0g7QUFDL0gsR0FBNkUsRUFBRSxDQUMvRSxDQUNFLE9BQVUsRUFDUCxFQUFFLENBQUMsT0FBTyxDQUFBO0FBRWpCLG1GQUFtRjtBQUNuRixTQUFTLGFBQWE7SUFDcEIsT0FBTyxDQUNMLEVBNkJDLEVBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNULENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FXckIsVUFVQyxFQUNELEVBQUUsQ0FDRixNQUFNO0tBQ0gsR0FBRyxDQUFDO0lBQ0gsVUFBVSxFQUFFLGVBR1g7SUFDRCxlQUFlLEVBQUUsVUFBVSxDQUFDLGVBQWUsQ0FBQyw4RUFBOEU7Q0FDM0gsQ0FBQztLQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsTUFBTSxFQUFFLGFBQWEsRUFBb0QsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFDeEcsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDakQsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN0QiwyRUFBMkU7UUFDM0UsZUFBZSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ3JCLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO2FBQ1osSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ25CLHNHQUFzRztRQUN0RyxNQUFNLENBQUMsZUFBZSxDQUN2QixDQUNKLENBQ0YsQ0FBQTtJQUNMLENBQUMsQ0FBQztDQUNILENBQUMsQ0FBQyxDQUFDLENBQUEifQ==
|
|
@@ -9,4 +9,11 @@ export declare const determineMethod: (actionName: string, schema: Schema<any, a
|
|
|
9
9
|
readonly _tag: "command";
|
|
10
10
|
readonly method: "PATCH";
|
|
11
11
|
};
|
|
12
|
+
export declare const isCommand: (method: ReturnType<typeof determineMethod>) => method is {
|
|
13
|
+
readonly _tag: "command";
|
|
14
|
+
readonly method: "POST" | "DELETE";
|
|
15
|
+
} | {
|
|
16
|
+
readonly _tag: "command";
|
|
17
|
+
readonly method: "PATCH";
|
|
18
|
+
};
|
|
12
19
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/routing/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA6BpD,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,QAAQ,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;;;;;;;;CAShF,CAAA"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/routing/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA6BpD,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,QAAQ,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;;;;;;;;CAShF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,UAAU,CAAC,OAAO,eAAe,CAAC;;;;;;CAA8B,CAAA"}
|
|
@@ -36,4 +36,5 @@ export const determineMethod = (actionName, schema) => {
|
|
|
36
36
|
return { _tag: "command", method: "PATCH" };
|
|
37
37
|
return { _tag: "command", method: "POST" };
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
export const isCommand = (method) => method._tag === "command";
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUc5QixNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDN0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUV6QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUFXLEVBQUU7SUFDdEQsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLGVBQWU7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUM3QyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUMvRCxPQUFPLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVksRUFBVyxFQUFFO0lBQy9DLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQzVDLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDM0UsQ0FBQyxDQUFBO0FBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUE4RCxFQUFXLEVBQUU7SUFDOUYsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxtQkFBbUI7SUFDL0csT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFVBQWtCLEVBQUUsTUFBNkIsRUFBRSxFQUFFO0lBQ25GLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQVcsQ0FBQTtJQUMxRixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBVyxDQUFBO0lBQ3RGLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFXLENBQUE7SUFDckcsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVyxDQUFBO0FBQ3JELENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQTBDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFBIn0=
|
package/dist/api/routing.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Array, Context, Effect, Layer, type NonEmptyReadonlyArray, ParseResult, S } from "effect-app";
|
|
1
|
+
import { Array, Context, Effect, Layer, type NonEmptyArray, type NonEmptyReadonlyArray, ParseResult, S } from "effect-app";
|
|
2
2
|
import type { GetEffectContext, RPCContextMap } from "effect-app/client/req";
|
|
3
3
|
import { type HttpHeaders, HttpRouter } from "effect-app/http";
|
|
4
4
|
import type { Contravariant } from "effect/Types";
|
|
5
5
|
import { type YieldWrap } from "effect/Utils";
|
|
6
6
|
import { type Middleware } from "./routing/DynamicMiddleware.js";
|
|
7
|
-
|
|
7
|
+
export * from "./routing/DynamicMiddleware.js";
|
|
8
|
+
export declare namespace LayersUtils {
|
|
8
9
|
type GetLayersSuccess<Layers extends ReadonlyArray<Layer.Layer.Any>> = Layers extends NonEmptyReadonlyArray<Layer.Layer.Any> ? {
|
|
9
10
|
[k in keyof Layers]: Layer.Layer.Success<Layers[k]>;
|
|
10
11
|
}[number] : never;
|
|
@@ -66,26 +67,25 @@ export declare const RouterSymbol: unique symbol;
|
|
|
66
67
|
export interface RouterShape<Resource> {
|
|
67
68
|
[RouterSymbol]: Resource;
|
|
68
69
|
}
|
|
69
|
-
type Match<Resource extends Record<string, any>,
|
|
70
|
-
<A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: Effect<A, E, R2>): Handler<Resource[Key], RT, Exclude<
|
|
71
|
-
<A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Resource[Key]>) => Effect<A, E, R2>): Handler<Resource[Key], RT, Exclude<
|
|
70
|
+
type Match<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource, MiddlewareR> = {
|
|
71
|
+
<A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: Effect<A, E, R2>): Handler<Resource[Key], RT, Exclude<MiddlewareR | Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, HttpRouter.HttpRouter.Provided>>;
|
|
72
|
+
<A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: S.Schema.Type<Resource[Key]>) => Effect<A, E, R2>): Handler<Resource[Key], RT, Exclude<MiddlewareR | Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, HttpRouter.HttpRouter.Provided>>;
|
|
72
73
|
};
|
|
73
|
-
export type RouteMatcher<
|
|
74
|
-
[Key in keyof FilterRequestModules<Resource>]: Match<Resource,
|
|
74
|
+
export type RouteMatcher<RequestContextMap extends Record<string, any>, Resource extends Record<string, any>, MiddlewareR> = {
|
|
75
|
+
[Key in keyof FilterRequestModules<Resource>]: Match<Resource, RequestContextMap, RequestTypes.DECODED, Key, MiddlewareR> & {
|
|
75
76
|
success: Resource[Key]["success"];
|
|
76
77
|
successRaw: S.SchemaClass<S.Schema.Encoded<Resource[Key]["success"]>>;
|
|
77
78
|
failure: Resource[Key]["failure"];
|
|
78
79
|
/**
|
|
79
80
|
* Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
|
|
80
81
|
*/
|
|
81
|
-
raw: Match<Resource,
|
|
82
|
+
raw: Match<Resource, RequestContextMap, RequestTypes.TYPE, Key, MiddlewareR>;
|
|
82
83
|
};
|
|
83
84
|
};
|
|
84
|
-
export declare const makeMiddleware: <MiddlewareContext, CTXMap extends Record<string, RPCContextMap.Any>, MiddlewareR, Layers extends NonEmptyReadonlyArray<Layer.Layer.Any> | never[], CtxId, CtxTag extends string, RRet, RErr, RCtx>(content: Middleware<MiddlewareContext, CTXMap, MiddlewareR, Layers, CtxId, CtxTag, RRet, RErr, RCtx>) => Middleware<MiddlewareContext, CTXMap, MiddlewareR, Layers, CtxId, CtxTag, RRet, RErr, RCtx>;
|
|
85
85
|
declare const Router_base: HttpRouter.HttpRouter.TagClass<Router, "@effect-app/Rpc", unknown, HttpRouter.HttpRouter.DefaultServices>;
|
|
86
86
|
export declare class Router extends Router_base {
|
|
87
87
|
}
|
|
88
|
-
export declare const makeRouter: <
|
|
88
|
+
export declare const makeRouter: <MiddlewareR, RequestContextMap extends Record<string, RPCContextMap.Any>, MakeMiddlewareR, MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>, ContextProviderId, ContextProviderKey extends string, ContextProviderA, MakeContextProviderE, MakeContextProviderR>(middleware: Middleware<MiddlewareR, RequestContextMap, MakeMiddlewareR, MiddlewareDependencies, ContextProviderId, ContextProviderKey, ContextProviderA, MakeContextProviderE, MakeContextProviderR>, devMode: boolean) => {
|
|
89
89
|
matchAll: <T extends {
|
|
90
90
|
[key: string]: {
|
|
91
91
|
routes: Layer.Layer<any, any, any>;
|
|
@@ -109,7 +109,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
109
109
|
meta: {
|
|
110
110
|
moduleName: ModuleName;
|
|
111
111
|
};
|
|
112
|
-
})[K]>>,
|
|
112
|
+
})[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
|
|
113
113
|
meta: {
|
|
114
114
|
moduleName: ModuleName;
|
|
115
115
|
};
|
|
@@ -131,7 +131,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
131
131
|
meta: {
|
|
132
132
|
moduleName: ModuleName;
|
|
133
133
|
};
|
|
134
|
-
})[K]>>,
|
|
134
|
+
})[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
|
|
135
135
|
meta: {
|
|
136
136
|
moduleName: ModuleName;
|
|
137
137
|
};
|
|
@@ -145,7 +145,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
145
145
|
meta: {
|
|
146
146
|
moduleName: ModuleName;
|
|
147
147
|
};
|
|
148
|
-
})[K]>>,
|
|
148
|
+
})[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
|
|
149
149
|
meta: {
|
|
150
150
|
moduleName: ModuleName;
|
|
151
151
|
};
|
|
@@ -158,7 +158,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
158
158
|
meta: {
|
|
159
159
|
moduleName: ModuleName;
|
|
160
160
|
};
|
|
161
|
-
})[K]>>,
|
|
161
|
+
})[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
|
|
162
162
|
meta: {
|
|
163
163
|
moduleName: ModuleName;
|
|
164
164
|
};
|
|
@@ -178,7 +178,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
178
178
|
meta: {
|
|
179
179
|
moduleName: ModuleName;
|
|
180
180
|
};
|
|
181
|
-
})[K]>>,
|
|
181
|
+
})[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
|
|
182
182
|
meta: {
|
|
183
183
|
moduleName: ModuleName;
|
|
184
184
|
};
|
|
@@ -190,7 +190,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
190
190
|
meta: {
|
|
191
191
|
moduleName: ModuleName;
|
|
192
192
|
};
|
|
193
|
-
})[K]>>,
|
|
193
|
+
})[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
|
|
194
194
|
meta: {
|
|
195
195
|
moduleName: ModuleName;
|
|
196
196
|
};
|
|
@@ -204,9 +204,9 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
204
204
|
};
|
|
205
205
|
}>[K_1], Impl[K_1] extends {
|
|
206
206
|
raw: any;
|
|
207
|
-
} ? "raw" : "d", Exclude<
|
|
207
|
+
} ? "raw" : "d", Exclude<MiddlewareR, HttpRouter.HttpRouter.Provided> | Exclude<Exclude<Impl[K_1] extends {
|
|
208
208
|
raw: any;
|
|
209
|
-
} ? Impl[K_1]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K_1]["raw"] extends Effect<any, any, infer R_1> ? R_1 : Impl[K_1]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R_2>>, any, any> ? R_2 : never : Impl[K_1] extends (...args: any[]) => Effect<any, any, infer R_3> ? R_3 : Impl[K_1] extends Effect<any, any, infer R_4> ? R_4 : Impl[K_1] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R_5>>, any, any> ? R_5 : never, GetEffectContext<
|
|
209
|
+
} ? Impl[K_1]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K_1]["raw"] extends Effect<any, any, infer R_1> ? R_1 : Impl[K_1]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R_2>>, any, any> ? R_2 : never : Impl[K_1] extends (...args: any[]) => Effect<any, any, infer R_3> ? R_3 : Impl[K_1] extends Effect<any, any, infer R_4> ? R_4 : Impl[K_1] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R_5>>, any, any> ? R_5 : never, GetEffectContext<RequestContextMap, (Resource & {
|
|
210
210
|
meta: {
|
|
211
211
|
moduleName: ModuleName;
|
|
212
212
|
};
|
|
@@ -219,22 +219,22 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
219
219
|
<const Make extends {
|
|
220
220
|
dependencies: Array<Layer.Layer.Any>;
|
|
221
221
|
effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource_1>]: ({
|
|
222
|
-
raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
222
|
+
raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource_1[K]>>, never>;
|
|
223
223
|
} | {
|
|
224
|
-
raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
224
|
+
raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
|
|
225
225
|
} | {
|
|
226
|
-
raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
227
|
-
}) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
226
|
+
raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
|
|
227
|
+
}) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource_1[K]>>, never>) | ((req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource_1>]: Handler<FilterRequestModules<Resource_1>[K], Impl[K] extends {
|
|
228
228
|
raw: any;
|
|
229
|
-
} ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<
|
|
229
|
+
} ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<MiddlewareR | Exclude<Impl[K] extends {
|
|
230
230
|
raw: any;
|
|
231
|
-
} ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<
|
|
231
|
+
} ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>, HttpRouter.HttpRouter.Provided>>; }) => Generator<YieldWrap<Effect<any, any, Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>>>, { [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any>;
|
|
232
232
|
strict?: boolean;
|
|
233
233
|
/** @deprecated */
|
|
234
234
|
readonly ಠ_ಠ: never;
|
|
235
235
|
}>(make: Make): {
|
|
236
236
|
moduleName: ModuleName;
|
|
237
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
237
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
238
238
|
make: Make;
|
|
239
239
|
};
|
|
240
240
|
<const Make extends {
|
|
@@ -245,7 +245,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
245
245
|
readonly ಠ_ಠ: never;
|
|
246
246
|
}>(make: Make): {
|
|
247
247
|
moduleName: ModuleName;
|
|
248
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
248
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
249
249
|
make: Make;
|
|
250
250
|
};
|
|
251
251
|
<const Make extends {
|
|
@@ -256,7 +256,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
256
256
|
readonly ಠ_ಠ: never;
|
|
257
257
|
}>(make: Make): {
|
|
258
258
|
moduleName: ModuleName;
|
|
259
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
259
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
260
260
|
make: Make;
|
|
261
261
|
};
|
|
262
262
|
<const Make extends {
|
|
@@ -267,7 +267,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
267
267
|
readonly ಠ_ಠ: never;
|
|
268
268
|
}>(make: Make): {
|
|
269
269
|
moduleName: ModuleName;
|
|
270
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
270
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
271
271
|
make: Make;
|
|
272
272
|
};
|
|
273
273
|
<const Make extends {
|
|
@@ -278,7 +278,7 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
278
278
|
readonly ಠ_ಠ: never;
|
|
279
279
|
}>(make: Make): {
|
|
280
280
|
moduleName: ModuleName;
|
|
281
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
281
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
282
282
|
make: Make;
|
|
283
283
|
};
|
|
284
284
|
<const Make extends {
|
|
@@ -287,26 +287,26 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
287
287
|
strict?: boolean;
|
|
288
288
|
}>(make: Make): {
|
|
289
289
|
moduleName: ModuleName;
|
|
290
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
290
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
291
291
|
make: Make;
|
|
292
292
|
};
|
|
293
293
|
<const Make extends {
|
|
294
294
|
dependencies: Array<Layer.Layer.Any>;
|
|
295
295
|
effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource_1>]: ({
|
|
296
|
-
raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
296
|
+
raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource_1[K]>>, never>;
|
|
297
297
|
} | {
|
|
298
|
-
raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
298
|
+
raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
|
|
299
299
|
} | {
|
|
300
|
-
raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
301
|
-
}) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
300
|
+
raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
|
|
301
|
+
}) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource_1[K]>>, never>) | ((req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource_1>]: Handler<FilterRequestModules<Resource_1>[K], Impl[K] extends {
|
|
302
302
|
raw: any;
|
|
303
|
-
} ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<
|
|
303
|
+
} ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<MiddlewareR | Exclude<Impl[K] extends {
|
|
304
304
|
raw: any;
|
|
305
|
-
} ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<
|
|
305
|
+
} ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>, HttpRouter.HttpRouter.Provided>>; }) => Generator<YieldWrap<Effect<any, any, Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>>>, { [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any>;
|
|
306
306
|
strict?: boolean;
|
|
307
307
|
}>(make: Make): {
|
|
308
308
|
moduleName: ModuleName;
|
|
309
|
-
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]
|
|
309
|
+
routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | LayersUtils.GetLayersError<Make["dependencies"]> | LayersUtils.GetLayersError<MiddlewareDependencies> | MakeContextProviderE, LayersUtils.GetLayersContext<Make["dependencies"]> | Exclude<MakeMiddlewareR, LayersUtils.GetLayersSuccess<MiddlewareDependencies>> | LayersUtils.GetLayersContext<MiddlewareDependencies> | MakeContextProviderR | Exclude<MakeContext<Make>, LayersUtils.GetLayersSuccess<Make["dependencies"]>>>;
|
|
310
310
|
make: Make;
|
|
311
311
|
};
|
|
312
312
|
<const Make extends {
|
|
@@ -315,23 +315,23 @@ export declare const makeRouter: <MiddlewareContext, CTXMap extends Record<strin
|
|
|
315
315
|
strict?: boolean;
|
|
316
316
|
}>(make: Make): {
|
|
317
317
|
moduleName: ModuleName;
|
|
318
|
-
Router: HttpRouter.HttpRouter.TagClass<RouterShape<Resource_1>, `${ModuleName}Router`, never, Exclude<
|
|
318
|
+
Router: HttpRouter.HttpRouter.TagClass<RouterShape<Resource_1>, `${ModuleName}Router`, never, Exclude<MiddlewareR, HttpRouter.HttpRouter.Provided>>;
|
|
319
319
|
routes: any;
|
|
320
320
|
make: Make;
|
|
321
321
|
};
|
|
322
|
-
} & RouteMatcher<
|
|
322
|
+
} & RouteMatcher<RequestContextMap, Resource_1, MiddlewareR> & {
|
|
323
323
|
router: AddAction<FilterRequestModules<Resource_1>[keyof FilterRequestModules<Resource_1>], {}>;
|
|
324
324
|
router3: <const Impl extends { [K in keyof FilterRequestModules<Resource_1>]: ({
|
|
325
|
-
raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
325
|
+
raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource_1[K]>>, never>;
|
|
326
326
|
} | {
|
|
327
|
-
raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
327
|
+
raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
|
|
328
328
|
} | {
|
|
329
|
-
raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
330
|
-
}) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>,
|
|
329
|
+
raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
|
|
330
|
+
}) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource_1[K]>>, never>) | ((req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource_1>]: Handler<FilterRequestModules<Resource_1>[K], Impl[K] extends {
|
|
331
331
|
raw: any;
|
|
332
|
-
} ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<
|
|
332
|
+
} ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<MiddlewareR | Exclude<Impl[K] extends {
|
|
333
333
|
raw: any;
|
|
334
|
-
} ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<
|
|
334
|
+
} ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>, HttpRouter.HttpRouter.Provided>>; };
|
|
335
335
|
};
|
|
336
336
|
};
|
|
337
337
|
export type MakeDeps<Make> = Make extends {
|
|
@@ -373,10 +373,9 @@ export declare const contextMaker: <TDeps extends Array.NonEmptyReadonlyArray<(C
|
|
|
373
373
|
dependencies: { [K in keyof TDeps]: TDeps[K]["Default"]; };
|
|
374
374
|
effect: Effect.Effect<Effect.Effect<Context.Context<GetContext<Effect.Success<InstanceType<TDeps[number]>>>>, Effect.Error<InstanceType<TDeps[number]>>, Effect.Context<InstanceType<TDeps[number]>>>, never, InstanceType<TDeps[number]>>;
|
|
375
375
|
};
|
|
376
|
-
declare const
|
|
376
|
+
declare const EmptyContextMaker_base: Effect.Service.Class<EmptyContextMaker, "EmptyContextMaker", {
|
|
377
377
|
readonly succeed: Effect.Effect<Context.Context<never>, never, never>;
|
|
378
378
|
}>;
|
|
379
|
-
export declare class
|
|
379
|
+
export declare class EmptyContextMaker extends EmptyContextMaker_base {
|
|
380
380
|
}
|
|
381
|
-
export {};
|
|
382
381
|
//# sourceMappingURL=routing.d.ts.map
|