effect-app 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/Context.d.ts +23 -3
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +5 -1
- package/dist/NonEmptySet.d.ts +1 -1
- package/dist/client/apiClientFactory.d.ts +2 -18
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/makeClient.d.ts +58 -0
- package/dist/client/makeClient.d.ts.map +1 -0
- package/dist/client/makeClient.js +36 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -2
- package/dist/{rpc/middleware-native.d.ts → middleware.d.ts} +11 -8
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +17 -0
- package/dist/rpc/{middleware-api.d.ts → MiddlewareMaker.d.ts} +62 -40
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -0
- package/dist/rpc/MiddlewareMaker.js +99 -0
- package/dist/rpc/RpcContextMap.d.ts +73 -0
- package/dist/rpc/RpcContextMap.d.ts.map +1 -0
- package/dist/rpc/RpcContextMap.js +33 -0
- package/dist/rpc/RpcMiddleware.d.ts +54 -89
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +4 -2
- package/dist/rpc.d.ts +2 -4
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +3 -5
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +1 -1
- package/package.json +22 -24
- package/src/Context.ts +55 -0
- package/src/client/{req.ts → makeClient.ts} +5 -137
- package/src/client.ts +1 -1
- package/src/middleware.ts +19 -0
- package/src/rpc/{middleware-api.ts → MiddlewareMaker.ts} +146 -117
- package/src/rpc/README.md +41 -0
- package/src/rpc/RpcContextMap.ts +163 -0
- package/src/rpc/RpcMiddleware.ts +122 -112
- package/src/rpc.ts +2 -4
- package/src/utils.ts +0 -2
- package/test/rpc.test.ts +1 -1
- package/dist/client/req.d.ts +0 -116
- package/dist/client/req.d.ts.map +0 -1
- package/dist/client/req.js +0 -56
- package/dist/rpc/RpcMiddlewareX.d.ts +0 -18
- package/dist/rpc/RpcMiddlewareX.d.ts.map +0 -1
- package/dist/rpc/RpcMiddlewareX.js +0 -16
- package/dist/rpc/generic-middleware.d.ts +0 -55
- package/dist/rpc/generic-middleware.d.ts.map +0 -1
- package/dist/rpc/generic-middleware.js +0 -67
- package/dist/rpc/middleware-api.d.ts.map +0 -1
- package/dist/rpc/middleware-api.js +0 -88
- package/dist/rpc/middleware-native.d.ts.map +0 -1
- package/dist/rpc/middleware-native.js +0 -19
- package/src/rpc/RpcMiddlewareX.ts +0 -70
- package/src/rpc/generic-middleware.ts +0 -198
- package/src/rpc/middleware-native.ts +0 -23
- package/wallaby.cjs +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Rpc } from "@effect/rpc";
|
|
3
|
+
import { Context, Effect, Layer, Schema as S } from "effect";
|
|
4
|
+
import { PreludeLogger } from "../logger.js";
|
|
5
|
+
import { typedValuesOf } from "../utils.js";
|
|
6
|
+
import * as RpcMiddlewareX from "./RpcMiddleware.js";
|
|
7
|
+
const middlewareMaker = (middlewares) => {
|
|
8
|
+
// we want to run them in reverse order because latter middlewares will provide context to former ones
|
|
9
|
+
middlewares = middlewares.toReversed();
|
|
10
|
+
return Effect.gen(function* () {
|
|
11
|
+
const context = yield* Effect.context();
|
|
12
|
+
// returns a Effect/RpcMiddlewareV4 with Scope in requirements
|
|
13
|
+
return (_options) => {
|
|
14
|
+
const { next, ...options } = _options;
|
|
15
|
+
// we start with the actual handler
|
|
16
|
+
let handler = next;
|
|
17
|
+
// inspired from Effect/RpcMiddleware
|
|
18
|
+
for (const tag of middlewares) {
|
|
19
|
+
// use the tag to get the middleware from context
|
|
20
|
+
const middleware = Context.unsafeGet(context, tag);
|
|
21
|
+
// wrap the current handler, allowing the middleware to run before and after it
|
|
22
|
+
handler = PreludeLogger.logDebug("Applying middleware wrap " + tag.key).pipe(Effect.zipRight(middleware(handler, options)));
|
|
23
|
+
}
|
|
24
|
+
return handler;
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const makeMiddlewareBasic =
|
|
29
|
+
// by setting RequestContextMap beforehand, execute contextual typing does not fuck up itself to anys
|
|
30
|
+
(rcm, ...make) => {
|
|
31
|
+
// reverse middlewares and wrap one after the other
|
|
32
|
+
const middleware = middlewareMaker(make);
|
|
33
|
+
const failures = make.map((_) => _.failure).filter(Boolean);
|
|
34
|
+
const provides = make.flatMap((_) => !_.provides ? [] : Array.isArray(_.provides) ? _.provides : [_.provides]);
|
|
35
|
+
const requires = make
|
|
36
|
+
.flatMap((_) => !_.requires ? [] : Array.isArray(_.requires) ? _.requires : [_.requires])
|
|
37
|
+
.filter((_) => !provides.includes(_));
|
|
38
|
+
const MiddlewareMaker = RpcMiddlewareX.Tag()("MiddlewareMaker", {
|
|
39
|
+
failure: (failures.length > 0
|
|
40
|
+
? S.Union(...failures)
|
|
41
|
+
: S.Never),
|
|
42
|
+
requires: (requires.length > 0
|
|
43
|
+
? requires
|
|
44
|
+
: undefined),
|
|
45
|
+
provides: (provides.length > 0
|
|
46
|
+
? provides
|
|
47
|
+
: undefined),
|
|
48
|
+
wrap: true
|
|
49
|
+
});
|
|
50
|
+
const layer = Layer
|
|
51
|
+
.scoped(MiddlewareMaker, middleware);
|
|
52
|
+
// add to the tag a default implementation
|
|
53
|
+
return Object.assign(MiddlewareMaker, {
|
|
54
|
+
layer,
|
|
55
|
+
// tag to be used to retrieve the RequestContextConfig from Rpc annotations
|
|
56
|
+
requestContext: Context.GenericTag("RequestContextConfig"),
|
|
57
|
+
requestContextMap: rcm
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export const makeMiddleware = (rcm) => {
|
|
61
|
+
let allMiddleware = [];
|
|
62
|
+
const requestContext = Context.GenericTag("RequestContextConfig");
|
|
63
|
+
const it = {
|
|
64
|
+
// rpc with config
|
|
65
|
+
rpc: (tag, options) => {
|
|
66
|
+
const config = options?.config ?? {};
|
|
67
|
+
// based on the config, we must enhance (union) or set failures.
|
|
68
|
+
// TODO: we should only include errors that are relevant based on the middleware config.ks
|
|
69
|
+
const error = options?.error;
|
|
70
|
+
const errors = typedValuesOf(rcm).map((_) => _.error).filter((_) => _ && _ !== S.Never); // TODO: only the errors relevant based on config
|
|
71
|
+
const newError = error ? S.Union(error, ...errors) : S.Union(...errors);
|
|
72
|
+
const rpc = Rpc.make(tag, { ...options, error: newError });
|
|
73
|
+
return Object.assign(rpc.annotate(requestContext, config), { config });
|
|
74
|
+
},
|
|
75
|
+
middleware: (...middlewares) => {
|
|
76
|
+
for (const mw of middlewares) {
|
|
77
|
+
// recall that we run middlewares in reverse order
|
|
78
|
+
allMiddleware = [mw, ...allMiddleware];
|
|
79
|
+
}
|
|
80
|
+
return allMiddleware.filter((m) => !!m.dynamic).length !== Object.keys(rcm).length
|
|
81
|
+
// for sure, until all the dynamic middlewares are provided it's non sensical to call makeMiddlewareBasic
|
|
82
|
+
? it
|
|
83
|
+
// actually, we don't know yet if MiddlewareR is never, but we can't easily check it at runtime
|
|
84
|
+
: Object.assign(makeMiddlewareBasic(rcm, ...allMiddleware), it);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
return it;
|
|
88
|
+
};
|
|
89
|
+
// alternatively consider group.serverMiddleware? hmmm
|
|
90
|
+
export const middlewareGroup = (middleware) => (group) => {
|
|
91
|
+
const middlewaredGroup = group.middleware(middleware);
|
|
92
|
+
const toLayerOriginal = middlewaredGroup.toLayer.bind(middlewaredGroup);
|
|
93
|
+
return Object.assign(middlewaredGroup, {
|
|
94
|
+
toLayerDynamic: (build) => {
|
|
95
|
+
return toLayerOriginal(build); // ??
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZU1ha2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9NaWRkbGV3YXJlTWFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQXFELE1BQU0sYUFBYSxDQUFBO0FBRXBGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBS3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUczQyxPQUFPLEtBQUssY0FBYyxNQUFNLG9CQUFvQixDQUFBO0FBc05wRCxNQUFNLGVBQWUsR0FBRyxDQUV0QixXQUFnQyxFQVVoQyxFQUFFO0lBQ0Ysc0dBQXNHO0lBQ3RHLFdBQVcsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFTLENBQUE7SUFFN0MsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFdkMsOERBQThEO1FBQzlELE9BQU8sQ0FDTCxRQUtJLEVBQ0osRUFBRTtZQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUE7WUFDckMsbUNBQW1DO1lBQ25DLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQTtZQUVsQixxQ0FBcUM7WUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDOUIsaURBQWlEO2dCQUNqRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFFbEQsK0VBQStFO2dCQUMvRSxPQUFPLEdBQUcsYUFBYSxDQUFD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
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { type AnyWithProps } from "@effect/rpc/Rpc";
|
|
2
|
+
import { Context, type Schema as S } from "effect";
|
|
3
|
+
import { type NonEmptyReadonlyArray } from "effect/Array";
|
|
4
|
+
import { type Tag } from "effect/Context";
|
|
5
|
+
import { type RpcDynamic } from "./RpcMiddleware.js";
|
|
6
|
+
/** Adapter used when setting the dynamic prop on a middleware implementation */
|
|
7
|
+
export declare const contextMap: <RequestContextMap extends Record<string, RpcContextMap.Any>, Key extends (keyof RequestContextMap) & string>(rcm: RequestContextMap, key: Key) => RpcDynamic<Key, RequestContextMap[Key]>;
|
|
8
|
+
/** Retrieves RequestContextConfig out of the Rpc annotations */
|
|
9
|
+
export declare const getConfig: <RequestContextMap extends Record<string, RpcContextMap.Any>>() => (rpc: AnyWithProps) => GetContextConfig<RequestContextMap>;
|
|
10
|
+
type Values<T extends Record<any, any>> = T[keyof T];
|
|
11
|
+
/** @deprecated just use Service Identifier Union */
|
|
12
|
+
export type ContextTagArray = NonEmptyReadonlyArray<Context.Tag<any, any>>;
|
|
13
|
+
/** @deprecated just use Service Identifier Union */
|
|
14
|
+
export declare namespace ContextTagArray {
|
|
15
|
+
type Identifier<A> = A extends ContextTagArray ? Tag.Identifier<A[number]> : never;
|
|
16
|
+
type Service<A> = A extends ContextTagArray ? Tag.Service<A[number]> : never;
|
|
17
|
+
}
|
|
18
|
+
/** @deprecated just use Service Identifier Union */
|
|
19
|
+
export type AnyService = Context.Tag<any, any> | ContextTagArray;
|
|
20
|
+
/** @deprecated just use Service Identifier Union */
|
|
21
|
+
export declare namespace AnyService {
|
|
22
|
+
type Bla<A> = A extends ContextTagArray ? Context.Context<ContextTagArray.Identifier<A>> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
|
|
23
|
+
type Identifier<A> = A extends ContextTagArray ? ContextTagArray.Identifier<A> : A extends Context.Tag<any, any> ? Tag.Identifier<A> : never;
|
|
24
|
+
type Service<A> = A extends ContextTagArray ? ContextTagArray.Service<A> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
|
|
25
|
+
}
|
|
26
|
+
export declare namespace RpcContextMap {
|
|
27
|
+
/**
|
|
28
|
+
* Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
|
|
29
|
+
* Unless explicitly configured as `true`.
|
|
30
|
+
*/
|
|
31
|
+
type RpcContextMap<Service, E> = {
|
|
32
|
+
service: Service;
|
|
33
|
+
error: E;
|
|
34
|
+
contextActivation: true;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context.
|
|
38
|
+
* Unless explicitly omitted.
|
|
39
|
+
*/
|
|
40
|
+
type Inverted<Service extends AnyService, E> = {
|
|
41
|
+
service: Service;
|
|
42
|
+
error: E;
|
|
43
|
+
contextActivation: false;
|
|
44
|
+
};
|
|
45
|
+
type Custom<Service extends AnyService, E, C> = {
|
|
46
|
+
service: Service;
|
|
47
|
+
error: E;
|
|
48
|
+
contextActivation: C;
|
|
49
|
+
};
|
|
50
|
+
type Any = {
|
|
51
|
+
service: AnyService;
|
|
52
|
+
error: S.Schema.All;
|
|
53
|
+
contextActivation: any;
|
|
54
|
+
};
|
|
55
|
+
const make: <Service extends AnyService, E>(service: Service, error: E) => RpcContextMap<Service, E>;
|
|
56
|
+
const makeInverted: <Service extends AnyService, E>(service: Service, error: E) => Inverted<Service, E>;
|
|
57
|
+
const makeCustom: <Service extends AnyService, E, C>(service: Service, error: E, contextActivation: C) => Custom<Service, E, C>;
|
|
58
|
+
}
|
|
59
|
+
export type GetContextConfig<RequestContextMap extends Record<string, RpcContextMap.Any>> = {
|
|
60
|
+
[K in keyof RequestContextMap]?: RequestContextMap[K]["contextActivation"] extends true ? false : RequestContextMap[K]["contextActivation"] extends false ? true : RequestContextMap[K]["contextActivation"];
|
|
61
|
+
};
|
|
62
|
+
export type GetEffectContext<RequestContextMap extends Record<string, RpcContextMap.Any>, T> = Values<{
|
|
63
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: AnyService.Identifier<RequestContextMap[key]["service"]>;
|
|
64
|
+
} & {
|
|
65
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: AnyService.Identifier<RequestContextMap[key]["service"]>;
|
|
66
|
+
}>;
|
|
67
|
+
export type GetEffectError<RequestContextMap extends Record<string, RpcContextMap.Any>, T> = Values<{
|
|
68
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: RequestContextMap[key]["error"];
|
|
69
|
+
} & {
|
|
70
|
+
[key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: RequestContextMap[key]["error"];
|
|
71
|
+
}>;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=RpcContextMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcContextMap.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcContextMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
import { Context } from "effect";
|
|
5
|
+
/** Adapter used when setting the dynamic prop on a middleware implementation */
|
|
6
|
+
export const contextMap = (rcm, key) => ({
|
|
7
|
+
key,
|
|
8
|
+
settings: { service: rcm[key]["service"] }
|
|
9
|
+
});
|
|
10
|
+
const tag = Context.GenericTag("RequestContextConfig");
|
|
11
|
+
/** Retrieves RequestContextConfig out of the Rpc annotations */
|
|
12
|
+
export const getConfig = () => (rpc) => {
|
|
13
|
+
return Context.getOrElse(rpc.annotations, tag, () => ({}));
|
|
14
|
+
};
|
|
15
|
+
export var RpcContextMap;
|
|
16
|
+
(function (RpcContextMap) {
|
|
17
|
+
RpcContextMap.make = (service, error) => ({
|
|
18
|
+
service,
|
|
19
|
+
error,
|
|
20
|
+
contextActivation: true
|
|
21
|
+
});
|
|
22
|
+
RpcContextMap.makeInverted = (service, error) => ({
|
|
23
|
+
service,
|
|
24
|
+
error,
|
|
25
|
+
contextActivation: false
|
|
26
|
+
});
|
|
27
|
+
RpcContextMap.makeCustom = (service, error, contextActivation) => ({
|
|
28
|
+
service,
|
|
29
|
+
error,
|
|
30
|
+
contextActivation
|
|
31
|
+
});
|
|
32
|
+
})(RpcContextMap || (RpcContextMap = {}));
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjQ29udGV4dE1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ycGMvUnBjQ29udGV4dE1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUd2RCxPQUFPLEVBQUUsT0FBTyxFQUFvQixNQUFNLFFBQVEsQ0FBQTtBQUtsRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBR3hCLEdBQXNCLEVBQUUsR0FBUSxFQUEyQyxFQUFFLENBQUMsQ0FBQztJQUMvRSxHQUFHO0lBQ0gsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxTQUFTLENBQUMsRUFBNEI7Q0FDdEUsQ0FBQyxDQUFBO0FBRUYsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQ3RELGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FFckIsRUFBRSxDQUNOLENBQUMsR0FBaUIsRUFBdUMsRUFBRTtJQUN6RCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ25FLENBQUMsQ0FBQTtBQTRCRCxNQUFNLEtBQVcsYUFBYSxDQTREN0I7QUE1REQsV0FBaUIsYUFBYTtJQWlDZixrQkFBSSxHQUFHLENBQ2xCLE9BQWdCLEVBQ2hCLEtBQVEsRUFDbUIsRUFBRSxDQUFDLENBQUM7UUFDL0IsT0FBTztRQUNQLEtBQUs7UUFDTCxpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCLENBQUMsQ0FBQTtJQUVXLDBCQUFZLEdBQUcsQ0FDMUIsT0FBZ0IsRUFDaEIsS0FBUSxFQUNjLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE9BQU87UUFDUCxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixDQUFDLENBQUE7SUFFVyx3QkFBVSxHQUFHLENBQ3hCLE9BQWdCLEVBQ2hCLEtBQVEsRUFDUixpQkFBb0IsRUFDRyxFQUFFLENBQUMsQ0FBQztRQUMzQixPQUFPO1FBQ1AsS0FBSztRQUNMLGlCQUFpQjtLQUNsQixDQUFDLENBQUE7QUFDSixDQUFDLEVBNURnQixhQUFhLEtBQWIsYUFBYSxRQTREN0IifQ==
|
|
@@ -1,33 +1,24 @@
|
|
|
1
|
-
import { type Rpc } from "@effect/rpc";
|
|
1
|
+
import { type Rpc, RpcMiddleware } from "@effect/rpc";
|
|
2
2
|
import { type SuccessValue, type TypeId } from "@effect/rpc/RpcMiddleware";
|
|
3
|
-
import { type Context, type Effect, type
|
|
4
|
-
import type { AnyService, ContextTagArray, RPCContextMap } from "effect-app/client/req";
|
|
3
|
+
import { type Context, type Effect, type Schema, type Schema as S, type Scope, type Stream } from "effect";
|
|
5
4
|
import { type HttpHeaders } from "effect-app/http";
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { type NonEmptyReadonlyArray } from "effect/Array";
|
|
6
|
+
import { type ReadonlyMailbox } from "effect/Mailbox";
|
|
7
|
+
import { type GetEffectContext, type RpcContextMap } from "./RpcContextMap.js";
|
|
8
|
+
export interface RpcMiddlewareV4<Provides, E, Requires> {
|
|
9
|
+
(effect: Effect.Effect<SuccessValue, E, Provides | Scope.Scope | Requires>, options: {
|
|
8
10
|
readonly clientId: number;
|
|
9
11
|
readonly rpc: Rpc.AnyWithProps;
|
|
10
12
|
readonly payload: unknown;
|
|
11
13
|
readonly headers: HttpHeaders.Headers;
|
|
12
|
-
}): Effect.Effect<Provides, E, Scope.Scope | Requires>;
|
|
13
|
-
}
|
|
14
|
-
export interface RpcMiddlewareWrap<Provides, E, Requires> {
|
|
15
|
-
(options: {
|
|
16
|
-
readonly clientId: number;
|
|
17
|
-
readonly rpc: Rpc.AnyWithProps;
|
|
18
|
-
readonly payload: unknown;
|
|
19
|
-
readonly headers: HttpHeaders.Headers;
|
|
20
|
-
readonly next: Effect.Effect<SuccessValue, E, Provides | Scope.Scope | Requires>;
|
|
21
14
|
}): Effect.Effect<SuccessValue, E, Scope.Scope | Requires>;
|
|
22
15
|
}
|
|
23
16
|
export type RpcOptionsOriginal = {
|
|
24
|
-
readonly wrap?: boolean;
|
|
25
17
|
readonly optional?: boolean;
|
|
26
18
|
readonly failure?: Schema.Schema.All;
|
|
27
|
-
readonly provides?: AnyService;
|
|
28
19
|
readonly requiredForClient?: boolean;
|
|
29
20
|
};
|
|
30
|
-
export type RpcDynamic<Key extends string, A extends
|
|
21
|
+
export type RpcDynamic<Key extends string, A extends RpcContextMap.Any> = {
|
|
31
22
|
key: Key;
|
|
32
23
|
settings: A;
|
|
33
24
|
};
|
|
@@ -37,73 +28,31 @@ export type AnyDynamic = {
|
|
|
37
28
|
export type DependsOn = {
|
|
38
29
|
readonly dependsOn: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
39
30
|
};
|
|
40
|
-
export interface RpcOptionsDynamic<Key extends string, A extends
|
|
31
|
+
export interface RpcOptionsDynamic<Key extends string, A extends RpcContextMap.Any> extends RpcOptionsOriginal {
|
|
41
32
|
readonly dynamic: RpcDynamic<Key, A>;
|
|
42
33
|
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
43
34
|
}
|
|
44
35
|
export type Dynamic<Options> = Options extends RpcOptionsDynamic<any, any> ? true : false;
|
|
45
|
-
export interface
|
|
46
|
-
(options: {
|
|
47
|
-
readonly next: Effect.Effect<SuccessValue, E, Scope.Scope | R>;
|
|
36
|
+
export interface RpcMiddlewareDynamic<E, R, _Config> {
|
|
37
|
+
(effect: Effect.Effect<SuccessValue, E, Scope.Scope | R>, options: {
|
|
48
38
|
readonly clientId: number;
|
|
49
39
|
readonly rpc: Rpc.AnyWithProps;
|
|
50
40
|
readonly payload: unknown;
|
|
51
41
|
readonly headers: HttpHeaders.Headers;
|
|
52
42
|
}): Effect.Effect<SuccessValue, E, Scope.Scope | R>;
|
|
53
43
|
}
|
|
54
|
-
export interface RpcMiddlewareDynamicNormal<A, E, R, _Config> {
|
|
55
|
-
(options: {
|
|
56
|
-
readonly clientId: number;
|
|
57
|
-
readonly rpc: Rpc.AnyWithProps;
|
|
58
|
-
readonly payload: unknown;
|
|
59
|
-
readonly headers: HttpHeaders.Headers;
|
|
60
|
-
}): Effect.Effect<Option.Option<A>, E, Scope.Scope | R>;
|
|
61
|
-
}
|
|
62
44
|
export interface TagClassAny extends Context.Tag<any, any> {
|
|
63
45
|
readonly [TypeId]: TypeId;
|
|
64
46
|
readonly optional: boolean;
|
|
65
|
-
readonly provides
|
|
66
|
-
readonly requires
|
|
47
|
+
readonly provides: any;
|
|
48
|
+
readonly requires: any;
|
|
67
49
|
readonly failure: Schema.Schema.All;
|
|
68
50
|
readonly requiredForClient: boolean;
|
|
69
|
-
readonly wrap:
|
|
51
|
+
readonly wrap: true;
|
|
70
52
|
readonly dynamic?: RpcDynamic<any, any> | undefined;
|
|
71
53
|
readonly dependsOn?: NonEmptyReadonlyArray<AnyDynamic> | undefined;
|
|
72
54
|
}
|
|
73
55
|
export declare namespace TagClass {
|
|
74
|
-
/**
|
|
75
|
-
* @since 1.0.0
|
|
76
|
-
* @category models
|
|
77
|
-
*/
|
|
78
|
-
type Provides<Options> = Options extends {
|
|
79
|
-
readonly provides: Context.Tag<any, any>;
|
|
80
|
-
readonly optional?: false;
|
|
81
|
-
} ? Context.Tag.Identifier<Options["provides"]> : Options extends {
|
|
82
|
-
readonly provides: ContextTagArray;
|
|
83
|
-
readonly optional?: false;
|
|
84
|
-
} ? ContextTagArray.Identifier<Options["provides"]> : never;
|
|
85
|
-
/**
|
|
86
|
-
* @since 1.0.0
|
|
87
|
-
* @category models
|
|
88
|
-
*/
|
|
89
|
-
type Requires<Options> = Options extends {
|
|
90
|
-
readonly requires: Context.Tag<any, any>;
|
|
91
|
-
} ? Context.Tag.Identifier<Options["requires"]> : Options extends {
|
|
92
|
-
readonly requires: ContextTagArray;
|
|
93
|
-
} ? ContextTagArray.Identifier<Options["requires"]> : never;
|
|
94
|
-
/**
|
|
95
|
-
* @since 1.0.0
|
|
96
|
-
* @category models
|
|
97
|
-
*/
|
|
98
|
-
type Service<Options> = Options extends {
|
|
99
|
-
readonly provides: Context.Tag<any, any>;
|
|
100
|
-
} ? Context.Tag.Service<Options["provides"]> : Options extends {
|
|
101
|
-
readonly dynamic: RpcDynamic<any, infer A>;
|
|
102
|
-
} ? Options extends {
|
|
103
|
-
wrap: true;
|
|
104
|
-
} ? void : AnyService.Bla<A["service"]> : Options extends {
|
|
105
|
-
readonly provides: ContextTagArray;
|
|
106
|
-
} ? Context.Context<ContextTagArray.Identifier<Options["provides"]>> : void;
|
|
107
56
|
/**
|
|
108
57
|
* @since 1.0.0
|
|
109
58
|
* @category models
|
|
@@ -150,39 +99,55 @@ export declare namespace TagClass {
|
|
|
150
99
|
* @since 1.0.0
|
|
151
100
|
* @category models
|
|
152
101
|
*/
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
* @since 1.0.0
|
|
158
|
-
* @category models
|
|
159
|
-
*/
|
|
160
|
-
interface Base<Self, Name extends string, Options, Service> extends Context.Tag<Self, Service> {
|
|
102
|
+
interface Base<Self, Name extends string, Options, Service, Config extends {
|
|
103
|
+
requires?: any;
|
|
104
|
+
provides?: any;
|
|
105
|
+
}> extends Context.Tag<Self, Service> {
|
|
161
106
|
new (_: never): Context.TagClassShape<Name, Service>;
|
|
162
107
|
readonly [TypeId]: TypeId;
|
|
163
108
|
readonly optional: Optional<Options>;
|
|
164
109
|
readonly failure: FailureSchema<Options>;
|
|
165
|
-
readonly provides:
|
|
166
|
-
|
|
167
|
-
} ? Options["provides"] : Options extends {
|
|
168
|
-
readonly provides: ContextTagArray;
|
|
169
|
-
} ? Options["provides"] : undefined;
|
|
170
|
-
readonly requires: Options extends {
|
|
171
|
-
readonly requires: Context.Tag<any, any>;
|
|
172
|
-
} ? Options["requires"] : Options extends {
|
|
173
|
-
readonly requires: ContextTagArray;
|
|
174
|
-
} ? Options["requires"] : undefined;
|
|
110
|
+
readonly provides: "provides" extends keyof Config ? Config["provides"] : never;
|
|
111
|
+
readonly requires: "requires" extends keyof Config ? Config["requires"] : never;
|
|
175
112
|
readonly dynamic: Options extends RpcOptionsDynamic<any, any> ? Options["dynamic"] : undefined;
|
|
176
113
|
readonly dependsOn: Options extends DependsOn ? Options["dependsOn"] : undefined;
|
|
177
114
|
readonly requiredForClient: RequiredForClient<Options>;
|
|
178
|
-
readonly wrap:
|
|
115
|
+
readonly wrap: true;
|
|
179
116
|
}
|
|
180
117
|
}
|
|
181
|
-
export interface TagClass<Self, Name extends string, Options
|
|
182
|
-
|
|
183
|
-
|
|
118
|
+
export interface TagClass<Self, Name extends string, Options, Config extends {
|
|
119
|
+
requires?: any;
|
|
120
|
+
provides?: any;
|
|
121
|
+
} = {
|
|
122
|
+
requires: never;
|
|
123
|
+
provides: never;
|
|
124
|
+
}> extends TagClass.Base<Self, Name, Options, Options extends RpcOptionsDynamic<any, any> ? RpcMiddlewareDynamic<TagClass.FailureService<Options>, "requires" extends keyof Config ? Config["requires"] : never, {
|
|
184
125
|
[K in Options["dynamic"]["key"]]?: Options["dynamic"]["settings"]["contextActivation"];
|
|
185
|
-
}> :
|
|
126
|
+
}> : RpcMiddlewareV4<"provides" extends keyof Config ? Config["provides"] : never, TagClass.Failure<Options>, "requires" extends keyof Config ? Config["requires"] : never>, Config> {
|
|
186
127
|
}
|
|
187
|
-
export declare const Tag: <Self
|
|
128
|
+
export declare const Tag: <Self, Config extends {
|
|
129
|
+
requires?: any;
|
|
130
|
+
provides?: any;
|
|
131
|
+
} = {
|
|
132
|
+
requires: never;
|
|
133
|
+
provides: never;
|
|
134
|
+
}>() => <const Name extends string, const Options extends RpcOptionsOriginal | RpcOptionsDynamic<any, any>>(id: Name, options?: Options | undefined) => TagClass<Self, Name, Options, Config>;
|
|
135
|
+
export type AddMiddleware<R extends Rpc.Any, Middleware extends RpcMiddleware.TagClassAny> = R extends Rpc.Rpc<infer _Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? Rpc.Rpc<_Tag, _Payload, _Success, _Error, _Middleware | Middleware> & {
|
|
136
|
+
readonly config: R extends {
|
|
137
|
+
readonly config: infer _C;
|
|
138
|
+
} ? _C : never;
|
|
139
|
+
} : never;
|
|
140
|
+
export type HandlersContext<Rpcs extends Rpc.Any, Handlers> = keyof Handlers extends infer K ? K extends keyof Handlers & string ? HandlerContext<Rpcs, K, Handlers[K]> : never : never;
|
|
141
|
+
export type HandlerContext<Rpcs extends Rpc.Any, K extends Rpcs["_tag"], Handler> = [Rpc.IsStream<Rpcs, K>] extends [
|
|
142
|
+
true
|
|
143
|
+
] ? Handler extends (...args: any) => Stream.Stream<infer _A, infer _E, infer _R> | Rpc.Fork<Stream.Stream<infer _A, infer _E, infer _R>> | Effect.Effect<ReadonlyMailbox<infer _A, infer _E>, infer _EX, infer _R> | Rpc.Fork<Effect.Effect<ReadonlyMailbox<infer _A, infer _E>, infer _EX, infer _R>> ? Exclude<ExcludeProvides<_R, Rpcs, K>, Scope.Scope> : never : Handler extends (...args: any) => Effect.Effect<infer _A, infer _E, infer _R> | Rpc.Fork<Effect.Effect<infer _A, infer _E, infer _R>> ? ExcludeProvides<_R, Rpcs, K> : never;
|
|
144
|
+
export type ExtractDynamicallyProvides<R extends Rpc.Any, Tag extends string> = R extends Rpc.Rpc<Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? _Middleware extends {
|
|
145
|
+
readonly requestContextMap: infer _RC;
|
|
146
|
+
} ? _RC extends Record<string, RpcContextMap.Any> ? R extends {
|
|
147
|
+
readonly config: infer _C;
|
|
148
|
+
} ? GetEffectContext<_RC, _C> : GetEffectContext<_RC, {}> : never : never : never;
|
|
149
|
+
export type ExtractProvides<R extends Rpc.Any, Tag extends string> = R extends Rpc.Rpc<Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? _Middleware extends {
|
|
150
|
+
readonly provides: Context.Tag<infer _I, infer _S>;
|
|
151
|
+
} ? _I : never : never;
|
|
152
|
+
export type ExcludeProvides<Env, R extends Rpc.Any, Tag extends string> = Exclude<Env, ExtractProvides<R, Tag> | ExtractDynamicallyProvides<R, Tag>>;
|
|
188
153
|
//# sourceMappingURL=RpcMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"RpcMiddleware.d.ts","sourceRoot":"","sources":["../../src/rpc/RpcMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
import { RpcMiddleware } from "@effect/rpc";
|
|
5
|
-
import { Unify } from "effect
|
|
5
|
+
import { Unify } from "effect";
|
|
6
6
|
export const Tag = () => (id, options) => class extends RpcMiddleware.Tag()(id, options) {
|
|
7
|
+
static requires;
|
|
8
|
+
static provides;
|
|
7
9
|
static dynamic = options && "dynamic" in options ? options.dynamic : undefined;
|
|
8
10
|
static dependsOn = options && "dependsOn" in options ? options.dependsOn : undefined;
|
|
9
11
|
static [Unify.typeSymbol];
|
|
10
12
|
static [Unify.unifySymbol];
|
|
11
13
|
static [Unify.ignoreSymbol];
|
|
12
14
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnBjTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ycGMvUnBjTWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUN2RCxPQUFPLEVBQVksYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXJELE9BQU8sRUFBcUYsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBc0tqSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FNZixFQUFFLENBQ04sQ0FJRSxFQUFRLEVBQ1IsT0FBNkIsRUFDVSxFQUFFLENBQ3pDLEtBQU0sU0FBUSxhQUFhLENBQUMsR0FBRyxFQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQztJQUNsRCxNQUFNLENBQVUsUUFBUSxDQUE4RDtJQUN0RixNQUFNLENBQW1CLFFBQVEsQ0FBOEQ7SUFDL0YsTUFBTSxDQUFVLE9BQU8sR0FBRyxPQUFPLElBQUksU0FBUyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ3ZGLE1BQU0sQ0FBVSxTQUFTLEdBQUcsT0FBTyxJQUFJLFdBQVcsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUM3RixNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVU7SUFDNUMsTUFBTSxDQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUF3QjtJQUMzRCxNQUFNLENBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQWlCO0NBQy9DLENBQUEifQ==
|
package/dist/rpc.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export * from "./rpc/
|
|
2
|
-
export * from "./rpc/
|
|
3
|
-
export * from "./rpc/middleware-native.js";
|
|
1
|
+
export * from "./rpc/MiddlewareMaker.js";
|
|
2
|
+
export * from "./rpc/RpcContextMap.js";
|
|
4
3
|
export * from "./rpc/RpcMiddleware.js";
|
|
5
|
-
export * from "./rpc/RpcMiddlewareX.js";
|
|
6
4
|
export * as Middleware from "./rpc.js";
|
|
7
5
|
//# sourceMappingURL=rpc.d.ts.map
|
package/dist/rpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,OAAO,KAAK,UAAU,MAAM,UAAU,CAAA"}
|
package/dist/rpc.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
// codegen:start {preset: barrel, include: ./rpc/*.ts, nodir: false }
|
|
2
|
-
export * from "./rpc/
|
|
3
|
-
export * from "./rpc/
|
|
4
|
-
export * from "./rpc/middleware-native.js";
|
|
2
|
+
export * from "./rpc/MiddlewareMaker.js";
|
|
3
|
+
export * from "./rpc/RpcContextMap.js";
|
|
5
4
|
export * from "./rpc/RpcMiddleware.js";
|
|
6
|
-
export * from "./rpc/RpcMiddlewareX.js";
|
|
7
5
|
// codegen:end
|
|
8
6
|
export * as Middleware from "./rpc.js";
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7QUFDckUsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYztBQUVkLE9BQU8sS0FBSyxVQUFVLE1BQU0sVUFBVSxDQUFBIn0=
|
package/dist/utils.d.ts
CHANGED
|
@@ -182,7 +182,6 @@ export declare const mutable: {
|
|
|
182
182
|
<A>(a: A, deep: true): DeepMutable<A>;
|
|
183
183
|
<A>(a: A): Mutable<A>;
|
|
184
184
|
};
|
|
185
|
-
export type Values<T extends Record<any, any>> = T[keyof T];
|
|
186
185
|
/**
|
|
187
186
|
* Recursively removes all elements assignable to type `E` from tuple `T`.
|
|
188
187
|
*
|