@effect-app/infra 3.0.6 → 3.0.7

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,13 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 3.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 182ca78: improve: MiddlewareMaker is a Tag with Self so we can extend it from class.
8
+ - Updated dependencies [182ca78]
9
+ - effect-app@3.0.5
10
+
3
11
  ## 3.0.6
4
12
 
5
13
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "3.0.6",
3
+ "version": "3.0.7",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -13,7 +13,7 @@
13
13
  "proper-lockfile": "^4.1.2",
14
14
  "pure-rand": "7.0.1",
15
15
  "query-string": "^9.2.2",
16
- "effect-app": "3.0.4"
16
+ "effect-app": "3.0.5"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@azure/cosmos": "^4.5.0",
@@ -7,13 +7,14 @@ import { Context, Effect, Layer, S, Scope } from "effect-app"
7
7
  import { InvalidStateError, makeRpcClient, NotLoggedInError, UnauthorizedError } from "effect-app/client"
8
8
  import { DefaultGenericMiddlewares } from "effect-app/middleware"
9
9
  import * as RpcX from "effect-app/rpc"
10
+ import { MiddlewareMaker } from "effect-app/rpc"
10
11
  import { TypeTestId } from "effect-app/TypeTest"
11
12
  import { DefaultGenericMiddlewaresLive } from "../src/api/routing/middleware.js"
12
13
  import { sort } from "../src/api/routing/tsort.js"
13
14
  import { AllowAnonymous, AllowAnonymousLive, CustomError1, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElse, SomeService, Test, TestLive } from "./fixtures.js"
14
15
 
15
16
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
16
- class MyContextProvider extends RpcX.Tag<MyContextProvider, {
17
+ class MyContextProvider extends RpcX.RpcMiddleware.Tag<MyContextProvider, {
17
18
  provides: Some
18
19
  requires: SomeElse
19
20
  }>()("MyContextProvider") {
@@ -45,7 +46,7 @@ class MyContextProvider extends RpcX.Tag<MyContextProvider, {
45
46
  }
46
47
 
47
48
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
48
- class MyContextProvider3 extends RpcX.Tag<MyContextProvider3, {
49
+ class MyContextProvider3 extends RpcX.RpcMiddleware.Tag<MyContextProvider3, {
49
50
  provides: Some
50
51
  requires: SomeElse
51
52
  }>()("MyContextProvider3") {
@@ -83,7 +84,9 @@ expectTypeOf(MyContextProvider3.Default).toEqualTypeOf<
83
84
  >()
84
85
 
85
86
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
86
- class MyContextProvider2 extends RpcX.Tag<MyContextProvider2, { provides: SomeElse }>()("MyContextProvider2") {
87
+ class MyContextProvider2
88
+ extends RpcX.RpcMiddleware.Tag<MyContextProvider2, { provides: SomeElse }>()("MyContextProvider2")
89
+ {
87
90
  static Default = Layer.make(this, {
88
91
  *make() {
89
92
  if (Math.random() > 0.5) return yield* new CustomError1()
@@ -101,7 +104,7 @@ class MyContextProvider2 extends RpcX.Tag<MyContextProvider2, { provides: SomeEl
101
104
 
102
105
  const Str = Context.GenericTag<"str", "str">("str")
103
106
 
104
- export class BogusMiddleware extends RpcX.Tag<BogusMiddleware>()("BogusMiddleware") {
107
+ export class BogusMiddleware extends RpcX.RpcMiddleware.Tag<BogusMiddleware>()("BogusMiddleware") {
105
108
  static Default = Layer.make(this, {
106
109
  *make() {
107
110
  yield* Str
@@ -127,8 +130,8 @@ const genericMiddlewaresLive = [
127
130
  MyContextProvider2.Default
128
131
  ] as const
129
132
 
130
- const middleware = RpcX
131
- .makeMiddleware<RequestContextMap>(RequestContextMap)
133
+ const middleware = MiddlewareMaker
134
+ .Tag()("middleware", RequestContextMap)
132
135
  .middleware(
133
136
  RequireRoles,
134
137
  Test
@@ -138,8 +141,8 @@ const middleware = RpcX
138
141
  .middleware(MyContextProvider)
139
142
  .middleware(...genericMiddlewares)
140
143
 
141
- const middlewareBis = RpcX
142
- .makeMiddleware<RequestContextMap>(RequestContextMap)
144
+ const middlewareBis = MiddlewareMaker
145
+ .Tag()("middleware", RequestContextMap)
143
146
  .middleware(
144
147
  RequireRoles,
145
148
  Test
@@ -149,8 +152,8 @@ const middlewareBis = RpcX
149
152
 
150
153
  expectTypeOf(middleware).toEqualTypeOf<typeof middlewareBis>()
151
154
 
152
- const middlewareTrisWip = RpcX
153
- .makeMiddleware<RequestContextMap>(RequestContextMap)
155
+ const middlewareTrisWip = MiddlewareMaker
156
+ .Tag()("middleware", RequestContextMap)
154
157
  .middleware(
155
158
  MyContextProvider,
156
159
  RequireRoles,
@@ -163,8 +166,8 @@ expectTypeOf(middlewareTrisWip).toEqualTypeOf<{
163
166
  }>()
164
167
 
165
168
  // testing more sideways elimination]
166
- const middlewareQuater = RpcX
167
- .makeMiddleware<RequestContextMap>(RequestContextMap)
169
+ const middlewareQuater = MiddlewareMaker
170
+ .Tag()("middleware", RequestContextMap)
168
171
  .middleware(
169
172
  RequireRoles,
170
173
  Test,
@@ -175,15 +178,15 @@ const middlewareQuater = RpcX
175
178
 
176
179
  expectTypeOf(middleware).toEqualTypeOf<typeof middlewareQuater>()
177
180
 
178
- const middleware2 = RpcX
179
- .makeMiddleware<RequestContextMap>(RequestContextMap)
181
+ const middleware2 = MiddlewareMaker
182
+ .Tag()("middleware", RequestContextMap)
180
183
  .middleware(MyContextProvider)
181
184
  .middleware(RequireRoles, Test)
182
185
  .middleware(AllowAnonymous)
183
186
  .middleware(...DefaultGenericMiddlewares, BogusMiddleware, MyContextProvider2)
184
187
 
185
- export const middleware3 = RpcX
186
- .makeMiddleware<RequestContextMap>(RequestContextMap)
188
+ export const middleware3 = MiddlewareMaker
189
+ .Tag()("middleware", RequestContextMap)
187
190
  .middleware(...genericMiddlewares)
188
191
  .middleware(AllowAnonymous, RequireRoles)
189
192
  .middleware(Test)
@@ -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;AAC7F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAItC,OAAO,EAAE,cAAc,EAAsB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAoB,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,eAAe,CAAA;;cAyEtG,QAAQ;;AAAlF,cAAM,kBAAmB,SAAQ,uBAA4E;IAC3G,MAAM,CAAC,OAAO,uDAUZ;CACH;;;;;AAMD,qBAAa,eAAgB,SAAQ,oBAA8C;IACjF,MAAM,CAAC,OAAO,6CAUZ;CACH;AAqED,eAAO,MAAM,WAAW;;;;;;YAKM,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;AAUL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;qGAK9B,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGd,CAAA"}
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;AAC7F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAS,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAoC,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEzG,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAKtC,OAAO,EAAE,cAAc,EAAsB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAA0B,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,eAAe,CAAA;;cA0E/G,QAAQ;;AADzE,cAAM,kBACJ,SAAQ,uBAA0F;IAElG,MAAM,CAAC,OAAO,uDAUZ;CACH;;;;;AAMD,qBAAa,eAAgB,SAAQ,oBAA4D;IAC/F,MAAM,CAAC,OAAO,6CAUZ;CACH;AAqED,eAAO,MAAM,WAAW;;;;;;;;;;YAKM,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;AAUL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;qGAK9B,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGd,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { Context, Effect, Layer, S, Scope } from "effect-app";
2
2
  import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
3
- import { RpcContextMap } from "effect-app/rpc";
3
+ import { RpcX } from "effect-app/rpc";
4
+ import { RpcContextMap } from "effect-app/rpc/RpcContextMap";
4
5
  declare const UserProfile_base: S.EnhancedClass<UserProfile, {
5
6
  id: typeof S.String;
6
7
  roles: S.Array$<typeof S.String> & {
@@ -93,13 +94,13 @@ declare const SomeService_base: (abstract new (service: {
93
94
  };
94
95
  export declare class SomeService extends SomeService_base {
95
96
  }
96
- declare const SomeMiddleware_base: import("effect-app/rpc").TagClass<SomeMiddleware, "SomeMiddleware", {}, {
97
+ declare const SomeMiddleware_base: RpcX.RpcMiddleware.TagClass<SomeMiddleware, "SomeMiddleware", {}, {
97
98
  provides: Some;
98
99
  }>;
99
100
  export declare class SomeMiddleware extends SomeMiddleware_base {
100
101
  }
101
102
  export declare const SomeMiddlewareLive: Layer.Layer<SomeMiddleware, never, never>;
102
- declare const SomeElseMiddleware_base: import("effect-app/rpc").TagClass<SomeElseMiddleware, "SomeElseMiddleware", {}, {
103
+ declare const SomeElseMiddleware_base: RpcX.RpcMiddleware.TagClass<SomeElseMiddleware, "SomeElseMiddleware", {}, {
103
104
  provides: SomeElse;
104
105
  }>;
105
106
  export declare class SomeElseMiddleware extends SomeElseMiddleware_base {
@@ -113,16 +114,16 @@ export declare const RequestContextMap: {
113
114
  type _RequestContextMap = typeof RequestContextMap;
114
115
  export interface RequestContextMap extends _RequestContextMap {
115
116
  }
116
- declare const AllowAnonymous_base: import("effect-app/rpc").TagClass<AllowAnonymous, "AllowAnonymous", {
117
- readonly dynamic: import("effect-app/rpc").RpcDynamic<"allowAnonymous", RpcContextMap.Inverted<[typeof UserProfile], typeof NotLoggedInError>>;
117
+ declare const AllowAnonymous_base: RpcX.RpcMiddleware.TagClass<AllowAnonymous, "AllowAnonymous", {
118
+ readonly dynamic: RpcX.RpcMiddleware.RpcDynamic<"allowAnonymous", RpcContextMap.Inverted<[typeof UserProfile], typeof NotLoggedInError>>;
118
119
  }, {
119
120
  requires: SomeElse;
120
121
  }>;
121
122
  export declare class AllowAnonymous extends AllowAnonymous_base {
122
123
  }
123
124
  export declare const AllowAnonymousLive: Layer.Layer<AllowAnonymous, never, never>;
124
- declare const RequireRoles_base: import("effect-app/rpc").TagClass<RequireRoles, "RequireRoles", {
125
- readonly dynamic: import("effect-app/rpc").RpcDynamic<"requireRoles", RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>>;
125
+ declare const RequireRoles_base: RpcX.RpcMiddleware.TagClass<RequireRoles, "RequireRoles", {
126
+ readonly dynamic: RpcX.RpcMiddleware.RpcDynamic<"requireRoles", RpcContextMap.Custom<never, typeof UnauthorizedError, string[]>>;
126
127
  readonly dependsOn: readonly [typeof AllowAnonymous];
127
128
  }, {
128
129
  requires: never;
@@ -131,8 +132,8 @@ declare const RequireRoles_base: import("effect-app/rpc").TagClass<RequireRoles,
131
132
  export declare class RequireRoles extends RequireRoles_base {
132
133
  }
133
134
  export declare const RequireRolesLive: Layer.Layer<RequireRoles, never, SomeService>;
134
- declare const Test_base: import("effect-app/rpc").TagClass<Test, "Test", {
135
- readonly dynamic: import("effect-app/rpc").RpcDynamic<"test", RpcContextMap.RpcContextMap<never, typeof S.Never>>;
135
+ declare const Test_base: RpcX.RpcMiddleware.TagClass<Test, "Test", {
136
+ readonly dynamic: RpcX.RpcMiddleware.RpcDynamic<"test", RpcContextMap.RpcContextMap<never, typeof S.Never>>;
136
137
  }, {
137
138
  requires: never;
138
139
  provides: never;
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAyB,aAAa,EAAO,MAAM,gBAAgB,CAAA;;;;;;;;;;;;;AAG1E,qBAAa,WAAY,SAAQ,gBAKhC;CACA;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAA2D;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;AACxF,qBAAa,QAAS,SAAQ,aAAmE;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;AAEpG,qBAAa,WAAY,SAAQ,gBAAgE;CAAG;;cAGhC,IAAI;;AAAxE,qBAAa,cAAe,SAAQ,mBAA2D;CAC9F;AAED,eAAO,MAAM,kBAAkB,2CAM9B,CAAA;;cAE2E,QAAQ;;AAApF,qBAAa,kBAAmB,SAAQ,uBAAuE;CAAG;AAElH,eAAO,MAAM,sBAAsB,+CAUlC,CAAA;AASD,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAA;AAEV,KAAK,kBAAkB,GAAG,OAAO,iBAAiB,CAAA;AAClD,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;CAAG;;;;cAEI,QAAQ;;AAA5E,qBAAa,cAAe,SAAQ,mBAElC;CAAG;AAEL,eAAO,MAAM,kBAAkB,2CAyB9B,CAAA;;;;;;;;AAID,qBAAa,YAAa,SAAQ,iBAKhC;CAAG;AAEL,eAAO,MAAM,gBAAgB,+CAuB5B,CAAA;;;;;;;AAGD,qBAAa,IAAK,SAAQ,SAExB;CAAG;AAEL,eAAO,MAAM,QAAQ,iCAOpB,CAAA;;;;AAED,qBAAa,YAAa,SAAQ,iBAAmD;CAAG;;;;AACxF,qBAAa,YAAa,SAAQ,iBAAmD;CAAG"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAyB,aAAa,EAAE,MAAM,8BAA8B,CAAA;;;;;;;;;;;;;AAGnF,qBAAa,WAAY,SAAQ,gBAKhC;CACA;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAA2D;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;AACxF,qBAAa,QAAS,SAAQ,aAAmE;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;AAEpG,qBAAa,WAAY,SAAQ,gBAAgE;CAAG;;cAGb,IAAI;;AAA3F,qBAAa,cAAe,SAAQ,mBAA8E;CACjH;AAED,eAAO,MAAM,kBAAkB,2CAM9B,CAAA;;cAGgE,QAAQ;;AADzE,qBAAa,kBACX,SAAQ,uBAA0F;CAClG;AAEF,eAAO,MAAM,sBAAsB,+CAUlC,CAAA;AASD,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAA;AAEV,KAAK,kBAAkB,GAAG,OAAO,iBAAiB,CAAA;AAClD,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;CAAG;;;;cAEuB,QAAQ;;AAA/F,qBAAa,cAAe,SAAQ,mBAElC;CAAG;AAEL,eAAO,MAAM,kBAAkB,2CAyB9B,CAAA;;;;;;;;AAID,qBAAa,YAAa,SAAQ,iBAKhC;CAAG;AAEL,eAAO,MAAM,gBAAgB,+CAuB5B,CAAA;;;;;;;AAGD,qBAAa,IAAK,SAAQ,SAExB;CAAG;AAEL,eAAO,MAAM,QAAQ,iCAOpB,CAAA;;;;AAED,qBAAa,YAAa,SAAQ,iBAAmD;CAAG;;;;AACxF,qBAAa,YAAa,SAAQ,iBAAmD;CAAG"}
@@ -1,6 +1,7 @@
1
1
  import { Context, Effect, Layer, S, Scope } from "effect-app";
2
2
  import { NotLoggedInError, UnauthorizedError } from "effect-app/client";
3
- import { contextMap, getConfig, RpcContextMap, Tag } from "effect-app/rpc";
3
+ import { RpcX } from "effect-app/rpc";
4
+ import { contextMap, getConfig, RpcContextMap } from "effect-app/rpc/RpcContextMap";
4
5
  import { TaggedError } from "effect-app/Schema";
5
6
  export class UserProfile extends Context.assignTag("UserProfile")(S.Class("UserProfile")({
6
7
  id: S.String,
@@ -15,13 +16,13 @@ const MakeSomeService = Effect.succeed({ a: 1 });
15
16
  export class SomeService extends Context.TagMakeId("SomeService", MakeSomeService)() {
16
17
  }
17
18
  // functionally equivalent to the one above
18
- export class SomeMiddleware extends Tag()("SomeMiddleware") {
19
+ export class SomeMiddleware extends RpcX.RpcMiddleware.Tag()("SomeMiddleware") {
19
20
  }
20
21
  export const SomeMiddlewareLive = Layer.effect(SomeMiddleware, Effect.gen(function* () {
21
22
  // yield* Effect.context<"test-dep">()
22
23
  return (effect) => effect.pipe(Effect.provideService(Some, new Some({ a: 1 })));
23
24
  }));
24
- export class SomeElseMiddleware extends Tag()("SomeElseMiddleware") {
25
+ export class SomeElseMiddleware extends RpcX.RpcMiddleware.Tag()("SomeElseMiddleware") {
25
26
  }
26
27
  export const SomeElseMiddlewareLive = Layer.effect(SomeElseMiddleware, Effect.gen(function* () {
27
28
  // yield* Effect.context<"test-dep">()
@@ -41,7 +42,7 @@ export const RequestContextMap = {
41
42
  requireRoles: RpcContextMap.makeCustom(null, UnauthorizedError, Array()),
42
43
  test: RpcContextMap.make(null, S.Never)
43
44
  };
44
- export class AllowAnonymous extends Tag()("AllowAnonymous", {
45
+ export class AllowAnonymous extends RpcX.RpcMiddleware.Tag()("AllowAnonymous", {
45
46
  dynamic: contextMap(RequestContextMap, "allowAnonymous")
46
47
  }) {
47
48
  }
@@ -64,7 +65,7 @@ export const AllowAnonymousLive = Layer.effect(AllowAnonymous, Effect.gen(functi
64
65
  }));
65
66
  // TODO: don't expect service when it's wrap
66
67
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
67
- export class RequireRoles extends Tag()("RequireRoles", {
68
+ export class RequireRoles extends RpcX.RpcMiddleware.Tag()("RequireRoles", {
68
69
  dynamic: contextMap(RequestContextMap, "requireRoles"),
69
70
  // had to move this in here, because once you put it manually as a readonly static property on the class,
70
71
  // there's a weird issue where the fluent api stops behaving properly after adding this middleware via `addDynamicMiddleware`
@@ -88,7 +89,7 @@ export const RequireRolesLive = Layer.effect(RequireRoles, Effect.gen(function*
88
89
  });
89
90
  }));
90
91
  // TODO: don't expect service when it's wrap
91
- export class Test extends Tag()("Test", {
92
+ export class Test extends RpcX.RpcMiddleware.Tag()("Test", {
92
93
  dynamic: contextMap(RequestContextMap, "test")
93
94
  }) {
94
95
  }
@@ -101,4 +102,4 @@ export class CustomError1 extends TaggedError()("CustomError1", {}) {
101
102
  }
102
103
  export class CustomError2 extends TaggedError()("CustomError1", {}) {
103
104
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRS9DLE1BQU0sT0FBTyxXQUFZLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBMkIsYUFBYSxDQUFDLENBQ3pGLENBQUMsQ0FBQyxLQUFLLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDbEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDLENBQ0g7Q0FDQTtBQUVELE1BQU0sT0FBTyxJQUFLLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQVE7Q0FBRztBQUN4RixNQUFNLE9BQU8sUUFBUyxTQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFZO0NBQUc7QUFDcEcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2hELE1BQU0sT0FBTyxXQUFZLFNB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
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRS9DLE1BQU0sT0FBTyxXQUFZLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBMkIsYUFBYSxDQUFDLENBQ3pGLENBQUMsQ0FBQyxLQUFLLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDbEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztDQUN6QixDQUFDLENBQ0g7Q0FDQTtBQUVELE1BQU0sT0FBTyxJQUFLLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQVE7Q0FBRztBQUN4RixNQUFNLE9BQU8sUUFBUyxTQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFZO0NBQUc7QUFDcEcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUs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
@@ -1 +1 @@
1
- {"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAyC,YAAY,EAAoB,IAAI,EAAE,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,MAAM,eAAe,CAAA;;cAGjL,IAAI;;AAD3D,qBAAa,sBACX,SAAQ,2BAAgF;IAExF,MAAM,CAAC,OAAO,oDASZ;CACH;AAqBD,eAAO,MAAM,eAAe;;;;;;;;;;SAMK,CAAA"}
1
+ {"version":3,"file":"requires.test.d.ts","sourceRoot":"","sources":["../requires.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAEtC,OAAO,EAAE,cAAc,EAAyC,YAAY,EAAoB,IAAI,EAAE,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,MAAM,eAAe,CAAA;;cAGnK,IAAI;;AADzE,qBAAa,sBACX,SAAQ,2BAA8F;IAEtG,MAAM,CAAC,OAAO,oDASZ;CACH;AAqBD,eAAO,MAAM,eAAe;;;;;;;;;;SAMK,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkD,MAAM,aAAa,CAAA;AAEvF,OAAO,EAA2B,KAAK,EAAE,MAAM,QAAQ,CAAA;AAQvD,OAAO,EAA4M,WAAW,EAAE,MAAM,eAAe,CAAA;AA4CrP,eAAO,MAAM,OAAO,uFAMhB,CAAA;AAiBJ,eAAO,MAAM,YAAY,yKAItB,CAAA;AAEH,eAAO,MAAM,YAAY,+FAgByB,CAAA"}
1
+ {"version":3,"file":"rpc-multi-middleware.test.d.ts","sourceRoot":"","sources":["../rpc-multi-middleware.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkD,MAAM,aAAa,CAAA;AAEvF,OAAO,EAA2B,KAAK,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,EAAE,cAAc,EAAyC,YAAY,EAA0B,kBAAkB,EAA0B,cAAc,EAAmC,IAAI,EAAY,WAAW,EAAE,MAAM,eAAe,CAAA;;;;;;;;;;;;AAErP,cAAM,UAAW,SAAQ,eAKkB;CACzC;AAsCF,eAAO,MAAM,OAAO,uFAMhB,CAAA;AAiBJ,eAAO,MAAM,YAAY,yIAItB,CAAA;AAEH,eAAO,MAAM,YAAY,+FAgByB,CAAA"}
package/test/fixtures.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Context, Effect, Layer, S, Scope } from "effect-app"
2
2
  import { NotLoggedInError, UnauthorizedError } from "effect-app/client"
3
- import { contextMap, getConfig, RpcContextMap, Tag } from "effect-app/rpc"
3
+ import { RpcX } from "effect-app/rpc"
4
+ import { contextMap, getConfig, RpcContextMap } from "effect-app/rpc/RpcContextMap"
4
5
  import { TaggedError } from "effect-app/Schema"
5
6
 
6
7
  export class UserProfile extends Context.assignTag<UserProfile, UserProfile>("UserProfile")(
@@ -17,7 +18,7 @@ const MakeSomeService = Effect.succeed({ a: 1 })
17
18
  export class SomeService extends Context.TagMakeId("SomeService", MakeSomeService)<SomeService>() {}
18
19
 
19
20
  // functionally equivalent to the one above
20
- export class SomeMiddleware extends Tag<SomeMiddleware, { provides: Some }>()("SomeMiddleware") {
21
+ export class SomeMiddleware extends RpcX.RpcMiddleware.Tag<SomeMiddleware, { provides: Some }>()("SomeMiddleware") {
21
22
  }
22
23
 
23
24
  export const SomeMiddlewareLive = Layer.effect(
@@ -28,7 +29,9 @@ export const SomeMiddlewareLive = Layer.effect(
28
29
  })
29
30
  )
30
31
 
31
- export class SomeElseMiddleware extends Tag<SomeElseMiddleware, { provides: SomeElse }>()("SomeElseMiddleware") {}
32
+ export class SomeElseMiddleware
33
+ extends RpcX.RpcMiddleware.Tag<SomeElseMiddleware, { provides: SomeElse }>()("SomeElseMiddleware")
34
+ {}
32
35
 
33
36
  export const SomeElseMiddlewareLive = Layer.effect(
34
37
  SomeElseMiddleware,
@@ -58,7 +61,7 @@ export const RequestContextMap = {
58
61
  type _RequestContextMap = typeof RequestContextMap
59
62
  export interface RequestContextMap extends _RequestContextMap {}
60
63
 
61
- export class AllowAnonymous extends Tag<AllowAnonymous, { requires: SomeElse }>()("AllowAnonymous", {
64
+ export class AllowAnonymous extends RpcX.RpcMiddleware.Tag<AllowAnonymous, { requires: SomeElse }>()("AllowAnonymous", {
62
65
  dynamic: contextMap(RequestContextMap, "allowAnonymous")
63
66
  }) {}
64
67
 
@@ -91,7 +94,7 @@ export const AllowAnonymousLive = Layer.effect(
91
94
 
92
95
  // TODO: don't expect service when it's wrap
93
96
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
94
- export class RequireRoles extends Tag<RequireRoles>()("RequireRoles", {
97
+ export class RequireRoles extends RpcX.RpcMiddleware.Tag<RequireRoles>()("RequireRoles", {
95
98
  dynamic: contextMap(RequestContextMap, "requireRoles"),
96
99
  // had to move this in here, because once you put it manually as a readonly static property on the class,
97
100
  // there's a weird issue where the fluent api stops behaving properly after adding this middleware via `addDynamicMiddleware`
@@ -124,7 +127,7 @@ export const RequireRolesLive = Layer.effect(
124
127
  )
125
128
 
126
129
  // TODO: don't expect service when it's wrap
127
- export class Test extends Tag<Test>()("Test", {
130
+ export class Test extends RpcX.RpcMiddleware.Tag<Test>()("Test", {
128
131
  dynamic: contextMap(RequestContextMap, "test")
129
132
  }) {}
130
133
 
@@ -5,10 +5,11 @@ import { Context, Effect, Either, Layer, S } from "effect-app"
5
5
  import { NotLoggedInError, UnauthorizedError } from "effect-app/client"
6
6
  import { HttpHeaders } from "effect-app/http"
7
7
  import * as RpcX from "effect-app/rpc"
8
+ import { MiddlewareMaker } from "effect-app/rpc"
8
9
  import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddleware, SomeMiddlewareLive, SomeService, Test, TestLive } from "./fixtures.js"
9
10
 
10
11
  export class RequiresSomeMiddleware
11
- extends RpcX.Tag<RequiresSomeMiddleware, { requires: Some }>()("RequiresSomeMiddleware")
12
+ extends RpcX.RpcMiddleware.Tag<RequiresSomeMiddleware, { requires: Some }>()("RequiresSomeMiddleware")
12
13
  {
13
14
  static Default = Layer.make(this, {
14
15
  *make() {
@@ -22,27 +23,27 @@ export class RequiresSomeMiddleware
22
23
  })
23
24
  }
24
25
 
25
- const middleware3 = RpcX
26
- .makeMiddleware(RequestContextMap)
26
+ const middleware3 = MiddlewareMaker
27
+ .Tag()("middleware", RequestContextMap)
27
28
  .middleware(RequiresSomeMiddleware)
28
29
  .middleware(SomeMiddleware)
29
30
  .middleware(RequireRoles)
30
31
  .middleware(AllowAnonymous, Test)
31
32
  .middleware(SomeElseMiddleware)
32
33
 
33
- const _middlewareSideways = RpcX
34
- .makeMiddleware(RequestContextMap)
34
+ const _middlewareSideways = MiddlewareMaker
35
+ .Tag()("middleware", RequestContextMap)
35
36
  .middleware(RequiresSomeMiddleware)
36
37
  .middleware(SomeMiddleware)
37
38
  .middleware(RequireRoles, AllowAnonymous, Test)
38
39
  .middleware(SomeElseMiddleware)
39
40
 
40
- const _middlewareSidewaysFully = RpcX
41
- .makeMiddleware(RequestContextMap)
41
+ const _middlewareSidewaysFully = MiddlewareMaker
42
+ .Tag()("middleware", RequestContextMap)
42
43
  .middleware(RequiresSomeMiddleware, SomeMiddleware, RequireRoles, AllowAnonymous, Test, SomeElseMiddleware)
43
44
 
44
- export const _middleware3Bis = RpcX
45
- .makeMiddleware(RequestContextMap)
45
+ export const _middleware3Bis = MiddlewareMaker
46
+ .Tag()("middleware", RequestContextMap)
46
47
  .middleware(RequiresSomeMiddleware)
47
48
  .middleware(SomeMiddleware)
48
49
  .middleware(RequireRoles)
@@ -7,16 +7,19 @@ import { S } from "effect-app"
7
7
  import { NotLoggedInError } from "effect-app/client"
8
8
  import { HttpLayerRouter } from "effect-app/http"
9
9
  import { DefaultGenericMiddlewares } from "effect-app/middleware"
10
- import { makeMiddleware, middlewareGroup } from "effect-app/rpc"
10
+ import { MiddlewareMaker } from "effect-app/rpc"
11
+ import { middlewareGroup } from "effect-app/rpc/MiddlewareMaker"
11
12
  import { createServer } from "http"
12
13
  import { DefaultGenericMiddlewaresLive } from "../src/api/routing.js"
13
14
  import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddleware, SomeMiddlewareLive, SomeService, Test, TestLive, UserProfile } from "./fixtures.js"
14
15
 
15
- const middleware = makeMiddleware(RequestContextMap)
16
+ class middleware extends MiddlewareMaker
17
+ .Tag<middleware>()("MiddlewareMaker", RequestContextMap)
16
18
  .middleware(RequireRoles)
17
19
  .middleware(AllowAnonymous, Test)
18
20
  .middleware(SomeElseMiddleware, SomeMiddleware)
19
21
  .middleware(...DefaultGenericMiddlewares)
22
+ {}
20
23
 
21
24
  const UserRpcs = middlewareGroup(middleware)(
22
25
  RpcGroup.make(