@effect-app/infra 2.89.0 → 2.89.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/api/layerUtils.d.ts.map +1 -1
- package/dist/api/layerUtils.js +1 -1
- package/dist/api/routing/middleware/RpcMiddleware.d.ts +10 -6
- package/dist/api/routing/middleware/RpcMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/RpcMiddleware.js +1 -1
- package/dist/api/routing/middleware/middleware-api.d.ts +12 -3
- package/dist/api/routing/middleware/middleware-api.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware-api.js +1 -1
- package/package.json +1 -1
- package/src/api/layerUtils.ts +4 -0
- package/src/api/routing/middleware/RpcMiddleware.ts +35 -26
- package/src/api/routing/middleware/middleware-api.ts +11 -16
- package/test/controller.test.ts +36 -5
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/requires.test.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 2.89.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d2776fb: fix dumb layer issues
|
|
8
|
+
|
|
9
|
+
## 2.89.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 85c5d7b: you should always be able to control middleware order, even if everything required has been provided
|
|
14
|
+
|
|
3
15
|
## 2.89.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layerUtils.d.ts","sourceRoot":"","sources":["../../src/api/layerUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,qBAAqB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"layerUtils.d.ts","sourceRoot":"","sources":["../../src/api/layerUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,qBAAqB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAO5F,yBAAiB,UAAU,CAAC;IAC1B,KAAY,gBAAgB,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,SAClF,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SACtC,CAAC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACpD,CAAC,MAAM,CAAC,GACP,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEvC,KAAY,gBAAgB,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,SAClF,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SACtC,CAAC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACpD,CAAC,MAAM,CAAC,GACP,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEvC,KAAY,cAAc,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,SAChF,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SACtC,CAAC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAClD,CAAC,MAAM,CAAC,GACP,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;CACtC;AAED,MAAM,MAAM,qBAAqB,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAClB;IACA,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACzC,CAAA;AAEH,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,IAAI,CAAC,CAAC,IAAI,qBAAqB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAC9D;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1E,eAAO,MAAM,aAAa,GACd,CAAC,SAAS,SAAS;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CAAE,EAAE,wGAenG,CAAA"}
|
package/dist/api/layerUtils.js
CHANGED
|
@@ -13,4 +13,4 @@ export const mergeContexts = Effect.fnUntraced(function* (makers) {
|
|
|
13
13
|
}
|
|
14
14
|
return context;
|
|
15
15
|
});
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvbGF5ZXJVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQTBDLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM1RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBc0MxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FDNUMsUUFBUSxDQUFDLEVBQTJGLE1BQVM7SUFDM0csSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzdCLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxFQUFFLENBQUM7UUFDeEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzFELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUNuRSxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUN6QixzQ0FBc0MsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFDbkUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FDN0QsQ0FBQTtRQUNELElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQStELENBQUE7QUFDeEUsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -3,7 +3,7 @@ import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware";
|
|
|
3
3
|
import { type Context, type Effect, Layer, type NonEmptyReadonlyArray, type Option, type S, type Schema, type Scope } from "effect-app";
|
|
4
4
|
import type { AnyService, ContextTagArray, RPCContextMap } from "effect-app/client/req";
|
|
5
5
|
import { type HttpHeaders } from "effect-app/http";
|
|
6
|
-
import { type
|
|
6
|
+
import { type Service } from "effect/Effect";
|
|
7
7
|
export interface RpcMiddleware<Provides, E, Requires> {
|
|
8
8
|
(options: {
|
|
9
9
|
readonly clientId: number;
|
|
@@ -185,11 +185,15 @@ export interface TagClass<Self, Name extends string, Options> extends TagClass.B
|
|
|
185
185
|
[K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"];
|
|
186
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
187
|
}
|
|
188
|
-
export declare const Tag: <Self>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any>>(id: Name, options?: Options | undefined) => <
|
|
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>>,
|
|
190
|
-
dependencies?:
|
|
191
|
-
}) => TagClass<Self, Name, Options> & {
|
|
192
|
-
Default: Layer.Layer<Self,
|
|
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>>;
|
|
193
197
|
};
|
|
194
198
|
export {};
|
|
195
199
|
//# sourceMappingURL=RpcMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/RpcMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,GAAG,EAAiB,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,qBAAqB,EAAE,KAAK,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAS,MAAM,YAAY,CAAA;AAC9I,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/RpcMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,4 @@ export const Tag = () => (id, options) => (opts) => class extends RpcMiddleware.
|
|
|
11
11
|
static [Unify.unifySymbol];
|
|
12
12
|
static [Unify.ignoreSymbol];
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9taWRkbGV3YXJlL1JwY01pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFZLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVyRCxPQUFPLEVBQTZCLEtBQUssRUFBNEUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBMk85SSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBUyxFQUFFLENBQzlCLENBSUUsRUFBUSxFQUNSLE9BQTZCLEVBQzdCLEVBQUUsQ0FDSixDQThCRSxJQUFlLEVBWWYsRUFBRSxDQUNGLEtBQU0sU0FBUSxhQUFhLENBQUMsR0FBRyxFQUFRLENBQUMsRUFBRSxFQUFFLE9BQWMsQ0FBQztJQUN6RCxNQUFNLENBQVUsT0FBTyxHQUFHLE9BQU8sSUFBSSxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDdkYsTUFBTSxDQUFVLFNBQVMsR0FBRyxPQUFPLElBQUksV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzdGLE1BQU0sQ0FBVSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDLElBQUksQ0FDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ3pELENBQUE7SUFDRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVU7SUFDNUMsTUFBTSxDQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUF3QjtJQUMzRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQWlCO0NBQy9DLENBQUEifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AnyWithProps } from "@effect/rpc/Rpc";
|
|
2
|
-
import { Context, type NonEmptyArray, type NonEmptyReadonlyArray, S } from "effect-app";
|
|
2
|
+
import { Context, type Effect, type NonEmptyArray, type NonEmptyReadonlyArray, S } from "effect-app";
|
|
3
3
|
import { type GetContextConfig, type RPCContextMap } from "effect-app/client";
|
|
4
4
|
import { type MiddlewareMaker } from "./generic-middleware.js";
|
|
5
5
|
import { type AnyDynamic, type RpcDynamic, type TagClassAny } from "./RpcMiddleware.js";
|
|
@@ -58,7 +58,8 @@ export interface BuildingMiddleware<RequestContextMap extends Record<string, RPC
|
|
|
58
58
|
}
|
|
59
59
|
export type MiddlewaresBuilder<RequestContextMap extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContextMap = never, Middlewares extends ReadonlyArray<MiddlewareMaker> = [], DynamicMiddlewareProviders = unknown, MiddlewareR extends {
|
|
60
60
|
_tag: string;
|
|
61
|
-
} = never> =
|
|
61
|
+
} = never> = BuildingMiddleware<RequestContextMap, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> & // keyof Omit<RequestContextMap, Provided> extends never is true when all the dynamic middlewares are provided
|
|
62
|
+
(keyof Omit<RequestContextMap, Provided> extends never ? [MiddlewareR] extends [never] ? ReturnType<typeof makeMiddlewareBasic<RequestContextMap, Middlewares>> : {} : {});
|
|
62
63
|
export declare const makeMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>>(rcm: RequestContextMap) => MiddlewaresBuilder<RequestContextMap>;
|
|
63
64
|
export interface MiddlewareMakerId {
|
|
64
65
|
readonly _id: unique symbol;
|
|
@@ -70,7 +71,15 @@ declare const makeMiddlewareBasic: <RequestContextMap extends Record<string, RPC
|
|
|
70
71
|
readonly provides: MiddlewareMaker.ManyProvided<MiddlewareProviders> extends never ? never : [MakeTags<MiddlewareMaker.ManyProvided<MiddlewareProviders>>];
|
|
71
72
|
readonly wrap: true;
|
|
72
73
|
}> & {
|
|
73
|
-
Default: import("effect/Layer").Layer<MiddlewareMakerId, import("
|
|
74
|
+
Default: import("effect/Layer").Layer<MiddlewareMakerId, import("effect/Types").Covariant.Type<Effect.Service.MakeDeps<{
|
|
75
|
+
dependencies: { [K in keyof MiddlewareProviders]: MiddlewareProviders[K]["Default"]; };
|
|
76
|
+
effect: Effect<any, // TODO: why ?
|
|
77
|
+
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>>>;
|
|
78
|
+
}>[typeof import("effect/Layer").LayerTypeId]["_E"]>, import("effect/Types").Covariant.Type<Effect.Service.MakeDeps<{
|
|
79
|
+
dependencies: { [K in keyof MiddlewareProviders]: MiddlewareProviders[K]["Default"]; };
|
|
80
|
+
effect: Effect<any, // TODO: why ?
|
|
81
|
+
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>>>;
|
|
82
|
+
}>[typeof import("effect/Layer").LayerTypeId]["_RIn"]>>;
|
|
74
83
|
} & {
|
|
75
84
|
requestContext: Context.Tag<"RequestContextConfig", GetContextConfig<RequestContextMap>>;
|
|
76
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-api.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"middleware-api.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,4 +55,4 @@ const makeMiddlewareBasic =
|
|
|
55
55
|
requestContext: Context.GenericTag("RequestContextConfig")
|
|
56
56
|
});
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvbWlkZGxld2FyZS9taWRkbGV3YXJlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUErRCxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFcEcsT0FBTyxFQUF3QixlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMvRSxPQUFPLEVBQW9DLEdBQUcsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUU1RixnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBR3hCLEdBQXNCLEVBQUUsR0FBUSxFQUEyQyxFQUFFLENBQUMsQ0FBQztJQUMvRSxHQUFHO0lBQ0gsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxTQUFTLENBQUMsRUFBNEI7Q0FDdEUsQ0FBQyxDQUFBO0FBRUYsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUVyQixFQUFFLENBQ04sQ0FBQyxHQUFpQixFQUF1QyxFQUFFO0lBQ3pELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFBO0FBQ3ZGLENBQUMsQ0FBQTtBQWtIRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBRTBDLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDM0UsSUFBSSxhQUFhLEdBQXNCLEVBQUUsQ0FBQTtJQUN6QyxNQUFNLEVBQUUsR0FBRztRQUNULFVBQVUsRUFBRSxDQUFDLEdBQUcsV0FBa0IsRUFBRSxFQUFFO1lBQ3BDLEtBQUssTUFBTSxFQUFFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQzdCLGtEQUFrRDtnQkFDbEQsYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEdB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
|
package/package.json
CHANGED
package/src/api/layerUtils.ts
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
import { Context, Effect, type Layer, type NonEmptyReadonlyArray, Option } from "effect-app"
|
|
3
3
|
import { InfraLogger } from "../logger.js"
|
|
4
4
|
|
|
5
|
+
// TODO: These LayerUtils are flaky, like in dependencies as a readonly array, it breaks when there are two entries
|
|
6
|
+
// we should look at Service.MakeDeps[E/RIn/ROut] etc.
|
|
7
|
+
// and in general make sure `dependencies` are NonEmptyReadonlyArrays, so they infer to consts.
|
|
8
|
+
|
|
5
9
|
export namespace LayerUtils {
|
|
6
10
|
export type GetLayersSuccess<Layers extends ReadonlyArray<Layer.Layer.Any>> = Layers extends
|
|
7
11
|
NonEmptyReadonlyArray<Layer.Layer.Any> ? {
|
|
@@ -7,7 +7,7 @@ import { type Context, type Effect, Layer, type NonEmptyReadonlyArray, type Opti
|
|
|
7
7
|
import type { AnyService, ContextTagArray, RPCContextMap } from "effect-app/client/req"
|
|
8
8
|
import { type HttpHeaders } from "effect-app/http"
|
|
9
9
|
import { type TagUnify, type TagUnifyIgnore } from "effect/Context"
|
|
10
|
-
import { type
|
|
10
|
+
import { type Service } from "effect/Effect"
|
|
11
11
|
|
|
12
12
|
// updated to support Scope.Scope and Requires
|
|
13
13
|
export interface RpcMiddleware<Provides, E, Requires> {
|
|
@@ -246,38 +246,47 @@ export const Tag = <Self>() =>
|
|
|
246
246
|
id: Name,
|
|
247
247
|
options?: Options | undefined
|
|
248
248
|
) =>
|
|
249
|
-
<
|
|
250
|
-
|
|
251
|
-
|
|
249
|
+
<
|
|
250
|
+
LayerOpts extends {
|
|
251
|
+
effect: Effect.Effect<
|
|
252
|
+
Options extends RpcOptionsDynamic<any, any> ? TagClass.Wrap<Options> extends true ? RpcMiddlewareDynamicWrap<
|
|
253
|
+
TagClass.FailureService<Options>,
|
|
254
|
+
TagClass.Requires<Options>,
|
|
255
|
+
{ [K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"] }
|
|
256
|
+
>
|
|
257
|
+
: RpcMiddlewareDynamicNormal<
|
|
258
|
+
TagClass.Service<Options>,
|
|
252
259
|
TagClass.FailureService<Options>,
|
|
253
260
|
TagClass.Requires<Options>,
|
|
254
261
|
{ [K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"] }
|
|
255
262
|
>
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
TagClass.
|
|
264
|
-
TagClass.Failure<Options>,
|
|
263
|
+
: TagClass.Wrap<Options> extends true ? RpcMiddlewareWrap<
|
|
264
|
+
TagClass.Provides<Options>,
|
|
265
|
+
TagClass.Failure<Options>,
|
|
266
|
+
TagClass.Requires<Options>
|
|
267
|
+
>
|
|
268
|
+
: RpcMiddleware<
|
|
269
|
+
TagClass.Service<Options>,
|
|
270
|
+
TagClass.FailureService<Options>,
|
|
265
271
|
TagClass.Requires<Options>
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
>
|
|
275
|
-
dependencies?: L
|
|
276
|
-
}): TagClass<Self, Name, Options> & {
|
|
272
|
+
>,
|
|
273
|
+
any,
|
|
274
|
+
any
|
|
275
|
+
>
|
|
276
|
+
// TODO: we really should only support NonEmtyReadonlyArray because ReadonlyArray fucks up once you have a Layer.empty in the list, as the whole thing resolves to never
|
|
277
|
+
dependencies?: NonEmptyReadonlyArray<Layer.Layer.Any> | ReadonlyArray<Layer.Layer.Any>
|
|
278
|
+
}
|
|
279
|
+
>(opts: LayerOpts): TagClass<Self, Name, Options> & {
|
|
277
280
|
Default: Layer.Layer<
|
|
278
281
|
Self,
|
|
279
|
-
|
|
280
|
-
|
|
282
|
+
| (LayerOpts extends { effect: Effect<infer _A, infer _E, infer _R> } ? _E
|
|
283
|
+
: never)
|
|
284
|
+
| Service.MakeDepsE<LayerOpts>,
|
|
285
|
+
| Exclude<
|
|
286
|
+
LayerOpts extends { effect: Effect<infer _A, infer _E, infer _R> } ? _R : never,
|
|
287
|
+
Service.MakeDepsOut<LayerOpts>
|
|
288
|
+
>
|
|
289
|
+
| Service.MakeDepsIn<LayerOpts>
|
|
281
290
|
>
|
|
282
291
|
} =>
|
|
283
292
|
class extends RpcMiddleware.Tag<Self>()(id, options as any) {
|
|
@@ -116,28 +116,23 @@ export type MiddlewaresBuilder<
|
|
|
116
116
|
DynamicMiddlewareProviders = unknown,
|
|
117
117
|
MiddlewareR extends { _tag: string } = never
|
|
118
118
|
> =
|
|
119
|
-
|
|
119
|
+
& BuildingMiddleware<
|
|
120
|
+
RequestContextMap,
|
|
121
|
+
Provided,
|
|
122
|
+
Middlewares,
|
|
123
|
+
DynamicMiddlewareProviders,
|
|
124
|
+
MiddlewareR
|
|
125
|
+
>
|
|
126
|
+
& // keyof Omit<RequestContextMap, Provided> extends never is true when all the dynamic middlewares are provided
|
|
120
127
|
// MiddlewareR is never when all the required services from generic & dynamic middlewares are provided
|
|
121
|
-
keyof Omit<RequestContextMap, Provided> extends never ? [MiddlewareR] extends [never] ? ReturnType<
|
|
128
|
+
(keyof Omit<RequestContextMap, Provided> extends never ? [MiddlewareR] extends [never] ? ReturnType<
|
|
122
129
|
typeof makeMiddlewareBasic<
|
|
123
130
|
RequestContextMap,
|
|
124
131
|
Middlewares
|
|
125
132
|
>
|
|
126
133
|
>
|
|
127
|
-
:
|
|
128
|
-
|
|
129
|
-
Provided,
|
|
130
|
-
Middlewares,
|
|
131
|
-
DynamicMiddlewareProviders,
|
|
132
|
-
MiddlewareR
|
|
133
|
-
>
|
|
134
|
-
: BuildingMiddleware<
|
|
135
|
-
RequestContextMap,
|
|
136
|
-
Provided,
|
|
137
|
-
Middlewares,
|
|
138
|
-
DynamicMiddlewareProviders,
|
|
139
|
-
MiddlewareR
|
|
140
|
-
>
|
|
134
|
+
: {}
|
|
135
|
+
: {})
|
|
141
136
|
|
|
142
137
|
export const makeMiddleware: <
|
|
143
138
|
RequestContextMap extends Record<string, RPCContextMap.Any>
|
package/test/controller.test.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
3
3
|
import { type MakeContext, type MakeErrors, makeRouter } from "@effect-app/infra/api/routing"
|
|
4
4
|
import { expect, expectTypeOf, it } from "@effect/vitest"
|
|
5
|
-
import { Context, Effect,
|
|
5
|
+
import { Context, Effect, Layer, S, Scope } from "effect-app"
|
|
6
6
|
import { InvalidStateError, makeRpcClient, NotLoggedInError, UnauthorizedError } from "effect-app/client"
|
|
7
7
|
import { DefaultGenericMiddlewares, makeMiddleware, Middleware, Tag } from "../src/api/routing/middleware.js"
|
|
8
8
|
import { sort } from "../src/api/routing/tsort.js"
|
|
@@ -37,6 +37,38 @@ class MyContextProvider extends Middleware.Tag<MyContextProvider>()("MyContextPr
|
|
|
37
37
|
})
|
|
38
38
|
}) {}
|
|
39
39
|
|
|
40
|
+
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
41
|
+
class MyContextProvider3 extends Middleware.Tag<MyContextProvider3>()("MyContextProvider3", {
|
|
42
|
+
provides: [Some],
|
|
43
|
+
requires: [SomeElse]
|
|
44
|
+
})({
|
|
45
|
+
dependencies: [Layer.effect(SomeService, SomeService.make)],
|
|
46
|
+
effect: Effect.gen(function*() {
|
|
47
|
+
yield* SomeService
|
|
48
|
+
if (Math.random() > 0.5) return yield* new CustomError1()
|
|
49
|
+
|
|
50
|
+
return Effect.fnUntraced(function*() {
|
|
51
|
+
yield* SomeElse
|
|
52
|
+
// the only requirements you can have are the one provided by HttpRouter.HttpRouter.Provided
|
|
53
|
+
yield* Scope.Scope
|
|
54
|
+
|
|
55
|
+
yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
|
|
56
|
+
yield* Effect.succeed("this is a generator")
|
|
57
|
+
|
|
58
|
+
// this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
|
|
59
|
+
// yield* SomeElse
|
|
60
|
+
|
|
61
|
+
// currently the effectful context provider cannot trigger an error when building the per request context
|
|
62
|
+
// this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
|
|
63
|
+
// if (Math.random() > 0.5) return yield* new CustomError2()
|
|
64
|
+
|
|
65
|
+
return Context.make(Some, new Some({ a: 1 }))
|
|
66
|
+
})
|
|
67
|
+
})
|
|
68
|
+
}) {}
|
|
69
|
+
|
|
70
|
+
expectTypeOf(MyContextProvider3.Default).toEqualTypeOf<Layer.Layer<MyContextProvider3, CustomError1, never>>()
|
|
71
|
+
|
|
40
72
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
41
73
|
class MyContextProvider2 extends Middleware.Tag<MyContextProvider2>()("MyContextProvider2", { provides: SomeElse })({
|
|
42
74
|
effect: Effect.gen(function*() {
|
|
@@ -76,23 +108,22 @@ const genericMiddlewares = [
|
|
|
76
108
|
] as const
|
|
77
109
|
|
|
78
110
|
const middleware = makeMiddleware<RequestContextMap>(RequestContextMap)
|
|
79
|
-
.middleware(MyContextProvider)
|
|
80
111
|
.middleware(
|
|
81
112
|
RequireRoles,
|
|
82
113
|
Test
|
|
83
114
|
)
|
|
84
115
|
// AllowAnonymous provided after RequireRoles so that RequireRoles can access what AllowAnonymous provides
|
|
85
116
|
.middleware(AllowAnonymous)
|
|
117
|
+
.middleware(MyContextProvider)
|
|
86
118
|
.middleware(...genericMiddlewares)
|
|
87
119
|
|
|
88
120
|
const middlewareBis = makeMiddleware<RequestContextMap>(RequestContextMap)
|
|
89
|
-
.middleware(MyContextProvider)
|
|
90
121
|
.middleware(
|
|
91
122
|
RequireRoles,
|
|
92
123
|
Test
|
|
93
124
|
)
|
|
94
125
|
// testing sideways elimination
|
|
95
|
-
.middleware(AllowAnonymous, ...genericMiddlewares)
|
|
126
|
+
.middleware(AllowAnonymous, MyContextProvider, ...genericMiddlewares)
|
|
96
127
|
|
|
97
128
|
expectTypeOf(middleware).toEqualTypeOf<typeof middlewareBis>()
|
|
98
129
|
|
|
@@ -112,10 +143,10 @@ expectTypeOf(middlewareTrisWip).toEqualTypeOf<{
|
|
|
112
143
|
// testing more sideways elimination]
|
|
113
144
|
const middlewareQuater = makeMiddleware<RequestContextMap>(RequestContextMap)
|
|
114
145
|
.middleware(
|
|
115
|
-
MyContextProvider,
|
|
116
146
|
RequireRoles,
|
|
117
147
|
Test,
|
|
118
148
|
AllowAnonymous,
|
|
149
|
+
MyContextProvider,
|
|
119
150
|
...genericMiddlewares
|
|
120
151
|
)
|
|
121
152
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAW,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7D,OAAO,EAA6C,UAAU,EAAO,MAAM,kCAAkC,CAAA;AAE7G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;;;;;;AAgEhI,cAAM,kBAAmB,SAAQ,uBAU/B;CAAG;;;;;;AAML,qBAAa,eAAgB,SAAQ,oBAYnC;CACD;AA2DD,eAAO,MAAM,WAAW;;;;;;YAIM,CAAA;AAE9B,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/B,CAAA;;;;;;;;;;AAEF,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;AACtE,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;;;AAEtE,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;;;AAgB1B,qBAAa,YAAa,SAAQ,iBAET;CAAG;;;;;;;;;;;;AAE5B,qBAAa,aAAc,SAAQ,kBAEA;CAAG;;;;;AAItC,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;2HAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAAiC,CAAA;AAE1E,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgC,CAAA"}
|
package/test/requires.test.ts
CHANGED
|
@@ -88,7 +88,7 @@ const _middleware3Bis = makeMiddleware(RequestContextMap)
|
|
|
88
88
|
|
|
89
89
|
expectTypeOf(_middlewareSideways).toEqualTypeOf<typeof middleware3>()
|
|
90
90
|
expectTypeOf(_middlewareSidewaysFully).toEqualTypeOf<typeof _middlewareSideways>()
|
|
91
|
-
expectTypeOf(_middleware3Bis).toEqualTypeOf<typeof middleware3>()
|
|
91
|
+
// expectTypeOf(_middleware3Bis).toEqualTypeOf<typeof middleware3>() // is not the same because SomeMiddlewareWrap is not SomeMiddleware
|
|
92
92
|
|
|
93
93
|
type Default = typeof middleware3["Default"]
|
|
94
94
|
type LayerContext = Layer.Layer.Context<Default>
|