effect-app 2.51.0 → 2.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 2.52.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 244f84d: various improvements, documentation
8
+
9
+ ## 2.52.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 99cf15f: unify middleware api
14
+
3
15
  ## 2.51.0
4
16
 
5
17
  ### Minor Changes
@@ -1,39 +1,54 @@
1
- import { S } from "../internal/lib.js";
1
+ import { type Tag } from "../Context.js";
2
+ import { type Context, type NonEmptyReadonlyArray, S } from "../internal/lib.js";
2
3
  import { type Values } from "../utils.js";
3
- /**
4
- * Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
5
- * Unless explicitly configured as `true`.
6
- */
7
- export type RPCContextMap<Service, E> = {
8
- service: Service;
9
- error: E;
10
- contextActivation: true;
11
- };
4
+ export type ContextTagArray = NonEmptyReadonlyArray<Context.Tag<any, any>>;
5
+ export declare namespace ContextTagArray {
6
+ type Identifier<A> = A extends ContextTagArray ? Tag.Identifier<A[number]> : never;
7
+ type Service<A> = A extends ContextTagArray ? Tag.Service<A[number]> : never;
8
+ }
9
+ export type AnyService = Context.Tag<any, any> | ContextTagArray;
10
+ export declare namespace AnyService {
11
+ type Bla<A> = A extends ContextTagArray ? Context.Context<ContextTagArray.Identifier<A>> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
12
+ type Identifier<A> = A extends ContextTagArray ? ContextTagArray.Identifier<A> : A extends Context.Tag<any, any> ? Tag.Identifier<A> : never;
13
+ type Service<A> = A extends ContextTagArray ? ContextTagArray.Service<A> : A extends Context.Tag<any, any> ? Tag.Service<A> : never;
14
+ }
12
15
  export declare namespace RPCContextMap {
13
- type Custom<Service, E, Custom> = {
16
+ /**
17
+ * Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
18
+ * Unless explicitly configured as `true`.
19
+ */
20
+ type RPCContextMap<Service, E> = {
14
21
  service: Service;
15
22
  error: E;
16
- contextActivation: Custom;
23
+ contextActivation: true;
17
24
  };
18
25
  /**
19
26
  * Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context.
20
27
  * Unless explicitly omitted.
21
28
  */
22
- type Inverted<Service, E> = {
29
+ type Inverted<Service extends AnyService, E> = {
23
30
  service: Service;
24
31
  error: E;
25
32
  contextActivation: false;
26
33
  };
34
+ type Custom<Service extends AnyService, E, C> = {
35
+ service: Service;
36
+ error: E;
37
+ contextActivation: C;
38
+ };
27
39
  type Any = {
28
- service: any;
40
+ service: AnyService;
29
41
  error: S.Schema.All;
30
42
  contextActivation: any;
31
43
  };
44
+ const make: <Service extends AnyService, E>(service: Service, error: E) => RPCContextMap<Service, E>;
45
+ const makeInverted: <Service extends AnyService, E>(service: Service, error: E) => Inverted<Service, E>;
46
+ const makeCustom: <Service extends AnyService, E, C>(service: Service, error: E, contextActivation: C) => Custom<Service, E, C>;
32
47
  }
33
48
  export type GetEffectContext<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<{
34
- [key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends true ? never : key extends keyof T ? T[key] extends true ? never : key : key]: RequestContextMap[key]["service"];
49
+ [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"]>;
35
50
  } & {
36
- [key in keyof RequestContextMap as RequestContextMap[key]["contextActivation"] extends false ? never : key extends keyof T ? T[key] extends true ? key : never : never]: RequestContextMap[key]["service"];
51
+ [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"]>;
37
52
  }>;
38
53
  export type GetEffectError<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<{
39
54
  [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"];
@@ -1 +1 @@
1
- {"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/client/req.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/client/req.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,24 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
  import { S } from "../internal/lib.js";
5
+ export var RPCContextMap;
6
+ (function (RPCContextMap) {
7
+ RPCContextMap.make = (service, error) => ({
8
+ service,
9
+ error,
10
+ contextActivation: true
11
+ });
12
+ RPCContextMap.makeInverted = (service, error) => ({
13
+ service,
14
+ error,
15
+ contextActivation: false
16
+ });
17
+ RPCContextMap.makeCustom = (service, error, contextActivation) => ({
18
+ service,
19
+ error,
20
+ contextActivation
21
+ });
22
+ })(RPCContextMap || (RPCContextMap = {}));
5
23
  const merge = (a, b) => a !== undefined && b.length ? S.Union(a, ...b) : a !== undefined ? a : b.length ? S.Union(...b) : S.Never;
6
24
  /**
7
25
  * Whatever the input, we will only decode or encode to void
@@ -35,4 +53,4 @@ export const makeRpcClient = (errors, generalErrors) => {
35
53
  TaggedRequest
36
54
  };
37
55
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZXEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBa0Z0QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFhLEVBQUUsRUFBRSxDQUN0QyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBa0IzRzs7R0FFRztBQUNILE1BQU0sU0FBUyxHQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUszQixNQUF5RSxFQUN6RSxhQUE2QixFQUM3QixFQUFFO0lBT0YsU0FBUyxhQUFhO1FBdUVwQiwrREFBK0Q7UUFDL0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMxQyxPQUFPLENBQUMsQ0FDTixHQUFRLEVBQ1IsTUFBYyxFQUNkLE1BQVUsRUFDVixFQUFFO1lBQ0YsMkVBQTJFO1lBQzNFLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLE9BQU8sRUFBRSxNQUFNO2dCQUNmLDhDQUE4QztnQkFDOUMsT0FBTyxFQUFFLEtBQUssQ0FDWixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDcEcsQ0FBQyxHQUFHLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQ2pEO2dCQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTztvQkFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzt3QkFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQ3RFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7b0JBQzVCLENBQUMsQ0FBQyxTQUFTO2FBQ2QsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxLQUFNLFNBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBUztnQkFDMUQsWUFBWSxPQUFZLEVBQUUsb0JBQXlCLElBQUk7b0JBQ3JELDZEQUE2RDtvQkFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO2dCQUNuQyxDQUFDO2FBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBUSxDQUFBO0lBQ1gsQ0FBQztJQUVELE9BQU87UUFDTCxhQUFhO0tBQ2QsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZXEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHdEQUF3RDtBQUN4RCx1REFBdUQ7QUFHdkQsT0FBTyxFQUE0QyxDQUFDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQXFCaEYsTUFBTSxLQUFXLGFBQWEsQ0E0RDdCO0FBNURELFdBQWlCLGFBQWE7SUFpQ2Ysa0JBQUksR0FBRyxDQUNsQixPQUFnQixFQUNoQixLQUFRLEVBQ21CLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE9BQU87UUFDUCxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QixDQUFDLENBQUE7SUFFVywwQkFBWSxHQUFHLENBQzFCLE9BQWdCLEVBQ2hCLEtBQVEsRUFDYyxFQUFFLENBQUMsQ0FBQztRQUMxQixPQUFPO1FBQ1AsS0FBSztRQUNMLGlCQUFpQixFQUFFLEtBQUs7S0FDekIsQ0FBQyxDQUFBO0lBRVcsd0JBQVUsR0FBRyxDQUN4QixPQUFnQixFQUNoQixLQUFRLEVBQ1IsaUJBQW9CLEVBQ0csRUFBRSxDQUFDLENBQUM7UUFDM0IsT0FBTztRQUNQLEtBQUs7UUFDTCxpQkFBaUI7S0FDbEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxFQTVEZ0IsYUFBYSxLQUFiLGFBQWEsUUE0RDdCO0FBK0NELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBTSxFQUFFLENBQWEsRUFBRSxFQUFFLENBQ3RDLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFrQjNHOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7QUFFNUcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBSzNCLE1BQXlFLEVBQ3pFLGFBQTZCLEVBQzdCLEVBQUU7SUFPRixTQUFTLGFBQWE7UUF1RXBCLCtEQUErRDtRQUMvRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxDQUNOLEdBQVEsRUFDUixNQUFjLEVBQ2QsTUFBVSxFQUNWLEVBQUU7WUFDRiwyRUFBMkU7WUFDM0UsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDdkMsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsOENBQThDO2dCQUM5QyxPQUFPLEVBQUUsS0FBSyxDQUNaLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUNwRyxDQUFDLEdBQUcsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDakQ7Z0JBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPO29CQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO3dCQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDdEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztvQkFDNUIsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUFDLENBQUE7WUFDRixPQUFPLEtBQU0sU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFTO2dCQUMxRCxZQUFZLE9BQVksRUFBRSxvQkFBeUIsSUFBSTtvQkFDckQsNkRBQTZEO29CQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUE7Z0JBQ25DLENBQUM7YUFDRixDQUFBO1FBQ0gsQ0FBQyxDQUFRLENBQUE7SUFDWCxDQUFDO0lBRUQsT0FBTztRQUNMLGFBQWE7S0FDZCxDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "2.51.0",
3
+ "version": "2.52.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
package/src/client/req.ts CHANGED
@@ -2,41 +2,88 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-return */
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
 
5
- import { S } from "../internal/lib.js"
5
+ import { type Tag } from "../Context.js"
6
+ import { type Context, type NonEmptyReadonlyArray, S } from "../internal/lib.js"
6
7
  import { type Values } from "../utils.js"
7
8
 
8
- /**
9
- * Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
10
- * Unless explicitly configured as `true`.
11
- */
12
- export type RPCContextMap<Service, E> = {
13
- service: Service
14
- error: E
15
- contextActivation: true
9
+ export type ContextTagArray = NonEmptyReadonlyArray<Context.Tag<any, any>>
10
+ export namespace ContextTagArray {
11
+ export type Identifier<A> = A extends ContextTagArray ? Tag.Identifier<A[number]> : never
12
+ export type Service<A> = A extends ContextTagArray ? Tag.Service<A[number]> : never
13
+ }
14
+ export type AnyService = Context.Tag<any, any> | ContextTagArray
15
+ export namespace AnyService {
16
+ export type Bla<A> = A extends ContextTagArray ? Context.Context<ContextTagArray.Identifier<A>>
17
+ : A extends Context.Tag<any, any> ? Tag.Service<A>
18
+ : never
19
+ export type Identifier<A> = A extends ContextTagArray ? ContextTagArray.Identifier<A>
20
+ : A extends Context.Tag<any, any> ? Tag.Identifier<A>
21
+ : never
22
+ export type Service<A> = A extends ContextTagArray ? ContextTagArray.Service<A>
23
+ : A extends Context.Tag<any, any> ? Tag.Service<A>
24
+ : never
16
25
  }
17
26
 
18
- export declare namespace RPCContextMap {
19
- export type Custom<Service, E, Custom> = {
27
+ export namespace RPCContextMap {
28
+ /**
29
+ * Middleware is inactivate by default, the Key is optional in route context, and the service is optionally provided as Effect Context.
30
+ * Unless explicitly configured as `true`.
31
+ */
32
+ export type RPCContextMap<Service, E> = {
20
33
  service: Service
21
34
  error: E
22
- contextActivation: Custom
35
+ contextActivation: true
23
36
  }
24
37
 
25
38
  /**
26
39
  * Middleware is active by default, and provides the Service at Key in route context, and the Service is provided as Effect Context.
27
40
  * Unless explicitly omitted.
28
41
  */
29
- export type Inverted<Service, E> = {
42
+ export type Inverted<Service extends AnyService, E> = {
30
43
  service: Service
31
44
  error: E
32
45
  contextActivation: false
33
46
  }
34
47
 
48
+ export type Custom<Service extends AnyService, E, C> = {
49
+ service: Service
50
+ error: E
51
+ contextActivation: C
52
+ }
53
+
35
54
  export type Any = {
36
- service: any
55
+ service: AnyService
37
56
  error: S.Schema.All
38
57
  contextActivation: any
39
58
  }
59
+
60
+ export const make = <Service extends AnyService, E>(
61
+ service: Service,
62
+ error: E
63
+ ): RPCContextMap<Service, E> => ({
64
+ service,
65
+ error,
66
+ contextActivation: true
67
+ })
68
+
69
+ export const makeInverted = <Service extends AnyService, E>(
70
+ service: Service,
71
+ error: E
72
+ ): Inverted<Service, E> => ({
73
+ service,
74
+ error,
75
+ contextActivation: false
76
+ })
77
+
78
+ export const makeCustom = <Service extends AnyService, E, C>(
79
+ service: Service,
80
+ error: E,
81
+ contextActivation: C
82
+ ): Custom<Service, E, C> => ({
83
+ service,
84
+ error,
85
+ contextActivation
86
+ })
40
87
  }
41
88
 
42
89
  export type GetEffectContext<RequestContextMap extends Record<string, RPCContextMap.Any>, T> = Values<
@@ -47,7 +94,7 @@ export type GetEffectContext<RequestContextMap extends Record<string, RPCContext
47
94
  : key extends keyof T ? T[key] extends true ? never : key
48
95
  : key
49
96
  ]: // TODO: or as an Optional available?
50
- RequestContextMap[key]["service"]
97
+ AnyService.Identifier<RequestContextMap[key]["service"]>
51
98
  }
52
99
  // normal: contextActivation is true => add if explicitly set to true
53
100
  & {
@@ -56,7 +103,7 @@ export type GetEffectContext<RequestContextMap extends Record<string, RPCContext
56
103
  : key extends keyof T ? T[key] extends true ? key : never
57
104
  : never
58
105
  ]: // TODO: or as an Optional available?
59
- RequestContextMap[key]["service"]
106
+ AnyService.Identifier<RequestContextMap[key]["service"]>
60
107
  }
61
108
  >
62
109