@effect-app/infra 3.0.2 → 3.0.4

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  3. package/dist/api/routing/middleware/middleware.js +10 -9
  4. package/dist/api/routing/tsort.d.ts +2 -2
  5. package/dist/api/routing/tsort.d.ts.map +1 -1
  6. package/dist/api/routing/tsort.js +1 -1
  7. package/dist/api/routing.js +2 -2
  8. package/package.json +2 -2
  9. package/src/api/routing/middleware/middleware.ts +9 -8
  10. package/src/api/routing/tsort.ts +2 -2
  11. package/src/api/routing.ts +1 -1
  12. package/test/controller.test.ts +18 -20
  13. package/test/dist/controller.test.d.ts.map +1 -1
  14. package/test/dist/fixtures.d.ts +12 -15
  15. package/test/dist/fixtures.d.ts.map +1 -1
  16. package/test/dist/fixtures.js +17 -37
  17. package/test/dist/requires.test.d.ts.map +1 -1
  18. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  19. package/test/fixtures.ts +23 -49
  20. package/test/requires.test.ts +11 -13
  21. package/test/rpc-multi-middleware.test.ts +30 -37
  22. package/test/dist/controller/test2.test.d.ts.map +0 -1
  23. package/test/dist/controller.legacy2.test.d.ts.map +0 -1
  24. package/test/dist/controller.legacy3.test.d.ts.map +0 -1
  25. package/test/dist/controller.test copy.js +0 -129
  26. package/test/dist/controller5.test.d.ts.map +0 -1
  27. package/test/dist/controller6.test.d.ts.map +0 -1
  28. package/test/dist/controller7.test.d.ts.map +0 -1
  29. package/test/dist/dynamicContext.test.d.ts.map +0 -1
  30. package/test/dist/filterApi.test.d.ts.map +0 -1
  31. package/test/dist/middleware-api.test.d.ts.map +0 -1
  32. package/test/dist/requires.d.ts +0 -21
  33. package/test/dist/requires.d.ts.map +0 -1
  34. package/test/dist/requires.js +0 -27
  35. package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
  36. package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
  37. package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
  38. package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +0 -37
package/test/fixtures.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Context, Effect, Layer, Option, S, Scope } from "effect-app"
1
+ import { Context, Effect, Layer, S, Scope } from "effect-app"
2
2
  import { NotLoggedInError, RPCContextMap, UnauthorizedError } from "effect-app/client"
3
3
  import { contextMap, getConfig, Tag } from "effect-app/rpc"
4
4
  import { TaggedError } from "effect-app/Schema"
@@ -16,49 +16,28 @@ export class SomeElse extends Context.TagMakeId("SomeElse", Effect.succeed({ b:
16
16
  const MakeSomeService = Effect.succeed({ a: 1 })
17
17
  export class SomeService extends Context.TagMakeId("SomeService", MakeSomeService)<SomeService>() {}
18
18
 
19
- export class SomeMiddleware extends Tag<SomeMiddleware>()("SomeMiddleware", {
20
- provides: Some
21
- }) {}
22
-
23
- export const SomeMiddlewareLive = Layer.effect(
24
- SomeMiddleware,
25
- Effect.gen(function*() {
26
- // yield* Effect.context<"test-dep">()
27
- return () =>
28
- Effect.gen(function*() {
29
- return new Some({ a: 1 })
30
- })
31
- })
32
- )
33
-
34
19
  // functionally equivalent to the one above
35
- export class SomeMiddlewareWrap extends Tag<SomeMiddlewareWrap>()("SomeMiddlewareWrap", {
36
- provides: Some,
37
- wrap: true
38
- }) {
20
+ export class SomeMiddleware extends Tag<SomeMiddleware, { provides: Some }>()("SomeMiddleware", {}) {
39
21
  }
40
22
 
41
- export const SomeMiddlewareWrapLive = Layer.effect(
42
- SomeMiddlewareWrap,
23
+ export const SomeMiddlewareLive = Layer.effect(
24
+ SomeMiddleware,
43
25
  Effect.gen(function*() {
44
26
  // yield* Effect.context<"test-dep">()
45
- return ({ next }) => next.pipe(Effect.provideService(Some, new Some({ a: 1 })))
27
+ return (effect) => effect.pipe(Effect.provideService(Some, new Some({ a: 1 })))
46
28
  })
47
29
  )
48
30
 
49
- export class SomeElseMiddleware extends Tag<SomeElseMiddleware>()("SomeElseMiddleware", {
50
- provides: SomeElse,
51
- wrap: true
52
- }) {}
31
+ export class SomeElseMiddleware extends Tag<SomeElseMiddleware, { provides: SomeElse }>()("SomeElseMiddleware", {}) {}
53
32
 
54
33
  export const SomeElseMiddlewareLive = Layer.effect(
55
34
  SomeElseMiddleware,
56
35
  Effect.gen(function*() {
57
36
  // yield* Effect.context<"test-dep">()
58
- return ({ next }) =>
37
+ return (effect) =>
59
38
  Effect.gen(function*() {
60
39
  // yield* Effect.context<"test-dep2">()
61
- return yield* next.pipe(Effect.provideService(SomeElse, new SomeElse({ b: 2 })))
40
+ return yield* effect.pipe(Effect.provideService(SomeElse, new SomeElse({ b: 2 })))
62
41
  })
63
42
  })
64
43
  )
@@ -79,16 +58,15 @@ export const RequestContextMap = {
79
58
  type _RequestContextMap = typeof RequestContextMap
80
59
  export interface RequestContextMap extends _RequestContextMap {}
81
60
 
82
- export class AllowAnonymous extends Tag<AllowAnonymous>()("AllowAnonymous", {
83
- dynamic: contextMap(RequestContextMap, "allowAnonymous"),
84
- requires: SomeElse
61
+ export class AllowAnonymous extends Tag<AllowAnonymous, { requires: SomeElse }>()("AllowAnonymous", {
62
+ dynamic: contextMap(RequestContextMap, "allowAnonymous")
85
63
  }) {}
86
64
 
87
65
  export const AllowAnonymousLive = Layer.effect(
88
66
  AllowAnonymous,
89
67
  Effect.gen(function*() {
90
68
  return Effect.fnUntraced(
91
- function*({ headers, rpc }) {
69
+ function*(effect, { headers, rpc }) {
92
70
  yield* SomeElse
93
71
  yield* Scope.Scope // provided by HttpLayerRouter.Provided
94
72
  const isLoggedIn = !!headers["x-user"]
@@ -96,16 +74,15 @@ export const AllowAnonymousLive = Layer.effect(
96
74
  if (!requestConfig(rpc).allowAnonymous) {
97
75
  return yield* new NotLoggedInError({ message: "Not logged in" })
98
76
  }
99
- return Option.none()
77
+ return yield* effect
100
78
  }
101
- return Option.some(
102
- Context.make(
103
- UserProfile,
104
- new UserProfile({
105
- id: "whatever",
106
- roles: ["user", ...headers["x-is-manager"] === "true" ? ["manager"] : []]
107
- })
108
- )
79
+ return yield* Effect.provideService(
80
+ effect,
81
+ UserProfile,
82
+ new UserProfile({
83
+ id: "whatever",
84
+ roles: ["user", ...headers["x-is-manager"] === "true" ? ["manager"] : []]
85
+ })
109
86
  )
110
87
  }
111
88
  )
@@ -116,8 +93,6 @@ export const AllowAnonymousLive = Layer.effect(
116
93
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
117
94
  export class RequireRoles extends Tag<RequireRoles>()("RequireRoles", {
118
95
  dynamic: contextMap(RequestContextMap, "requireRoles"),
119
- wrap: true,
120
- // wrap: true,
121
96
  // had to move this in here, because once you put it manually as a readonly static property on the class,
122
97
  // there's a weird issue where the fluent api stops behaving properly after adding this middleware via `addDynamicMiddleware`
123
98
  dependsOn: [AllowAnonymous]
@@ -128,7 +103,7 @@ export const RequireRolesLive = Layer.effect(
128
103
  Effect.gen(function*() {
129
104
  yield* SomeService
130
105
  return Effect.fnUntraced(
131
- function*({ next, rpc }) {
106
+ function*(effect, { rpc }) {
132
107
  // we don't know if the service will be provided or not, so we use option..
133
108
  const userProfile = yield* Effect.serviceOption(UserProfile)
134
109
  const { requireRoles } = requestConfig(rpc)
@@ -142,7 +117,7 @@ export const RequireRolesLive = Layer.effect(
142
117
  if (requireRoles && !userProfile.value?.roles?.some((role) => requireRoles.includes(role))) {
143
118
  return yield* new UnauthorizedError({ message: "don't have the right roles" })
144
119
  }
145
- return yield* next
120
+ return yield* effect
146
121
  }
147
122
  )
148
123
  })
@@ -150,15 +125,14 @@ export const RequireRolesLive = Layer.effect(
150
125
 
151
126
  // TODO: don't expect service when it's wrap
152
127
  export class Test extends Tag<Test>()("Test", {
153
- wrap: true,
154
128
  dynamic: contextMap(RequestContextMap, "test")
155
129
  }) {}
156
130
 
157
131
  export const TestLive = Layer.effect(
158
132
  Test,
159
133
  Effect.gen(function*() {
160
- return Effect.fn(function*({ next }) {
161
- return yield* next
134
+ return Effect.fn(function*(effect) {
135
+ return yield* effect
162
136
  })
163
137
  })
164
138
  )
@@ -5,22 +5,20 @@ 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 { makeMiddleware, TagService } from "effect-app/rpc"
8
- import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddleware, SomeMiddlewareLive, SomeMiddlewareWrap, SomeService, Test, TestLive } from "./fixtures.js"
8
+ import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddleware, SomeMiddlewareLive, SomeService, Test, TestLive } from "./fixtures.js"
9
9
 
10
- export class RequiresSomeMiddleware extends TagService<RequiresSomeMiddleware>()("RequiresSomeMiddleware", {
11
- requires: [Some],
12
- wrap: true
13
- })({
14
- effect: Effect.gen(function*() {
15
- // yield* Effect.context<"test-dep">()
16
- return ({ next }) =>
17
- Effect.gen(function*() {
10
+ export class RequiresSomeMiddleware
11
+ extends TagService<RequiresSomeMiddleware, { requires: Some }>()("RequiresSomeMiddleware", {})({
12
+ effect: Effect.gen(function*() {
13
+ // yield* Effect.context<"test-dep">()
14
+ return Effect.fnUntraced(function*(effect) {
18
15
  yield* Some
19
16
  // yield* Effect.context<"test-dep2">()
20
- return yield* next
17
+ return yield* effect
21
18
  })
19
+ })
22
20
  })
23
- }) {
21
+ {
24
22
  }
25
23
 
26
24
  const middleware3 = makeMiddleware(RequestContextMap)
@@ -41,14 +39,14 @@ const _middlewareSidewaysFully = makeMiddleware(RequestContextMap)
41
39
 
42
40
  export const _middleware3Bis = makeMiddleware(RequestContextMap)
43
41
  .middleware(RequiresSomeMiddleware)
44
- .middleware(SomeMiddlewareWrap)
42
+ .middleware(SomeMiddleware)
45
43
  .middleware(RequireRoles)
46
44
  .middleware(AllowAnonymous, Test)
47
45
  .middleware(SomeElseMiddleware)
48
46
 
49
47
  expectTypeOf(_middlewareSideways).toEqualTypeOf<typeof middleware3>()
50
48
  expectTypeOf(_middlewareSidewaysFully).toEqualTypeOf<typeof _middlewareSideways>()
51
- expectTypeOf(_middleware3Bis).not.toEqualTypeOf<typeof middleware3>() // is not the same because SomeMiddlewareWrap is not SomeMiddleware
49
+ expectTypeOf(_middleware3Bis).toEqualTypeOf<typeof middleware3>()
52
50
 
53
51
  class TestRequest extends S.TaggedRequest<Test>("Test")("Test", {
54
52
  payload: {},
@@ -9,64 +9,57 @@ import { HttpLayerRouter } from "effect-app/http"
9
9
  import { DefaultGenericMiddlewares, makeMiddleware, middlewareGroup } from "effect-app/rpc"
10
10
  import { createServer } from "http"
11
11
  import { DefaultGenericMiddlewaresLive } from "../src/api/routing.js"
12
- import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddlewareWrap, SomeMiddlewareWrapLive, SomeService, Test, TestLive, UserProfile } from "./fixtures.js"
12
+ import { AllowAnonymous, AllowAnonymousLive, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElseMiddleware, SomeElseMiddlewareLive, SomeMiddleware, SomeMiddlewareLive, SomeService, Test, TestLive, UserProfile } from "./fixtures.js"
13
13
 
14
14
  const middleware = makeMiddleware(RequestContextMap)
15
15
  .middleware(RequireRoles)
16
16
  .middleware(AllowAnonymous, Test)
17
- .middleware(SomeElseMiddleware, SomeMiddlewareWrap)
17
+ .middleware(SomeElseMiddleware, SomeMiddleware)
18
18
  .middleware(...DefaultGenericMiddlewares)
19
19
 
20
- const UserRpcs = middlewareGroup(middleware)(RpcGroup
21
- .make(
20
+ const UserRpcs = middlewareGroup(middleware)(
21
+ RpcGroup.make(
22
22
  middleware.rpc("getUser", {
23
23
  success: S.Literal("awesome")
24
24
  }),
25
25
  middleware.rpc("doSomething", {
26
26
  success: S.Literal("also-awesome"),
27
- config: { allowAnonymous: true }
27
+ config: { allowAnonymous: true } // type safe config based on `RequestContextMap`
28
28
  })
29
- ))
29
+ )
30
+ )
30
31
 
31
- const impl = Effect
32
- .gen(function*() {
33
- const impl = UserRpcs
34
- .toLayerDynamic({
35
- getUser: Effect.fn(function*(_payload, _headers) {
36
- yield* Some
37
- yield* UserProfile // we only access it while protected by allowAnonymous: false
38
- return "awesome" as const
39
- }),
40
- doSomething: Effect.fn(function*() {
41
- console.log(yield* Effect.serviceOption(UserProfile)) // we access it optionally, while allowAnonymous: true
42
- return "also-awesome" as const
43
- })
44
- })
45
- return impl
32
+ const impl = UserRpcs
33
+ .toLayerDynamic({
34
+ getUser: Effect.fn(function*(_payload, _headers) {
35
+ yield* Some
36
+ yield* UserProfile // we only access it while protected by allowAnonymous: false
37
+ return "awesome" as const
38
+ }),
39
+ doSomething: Effect.fn(function*() {
40
+ console.log(yield* Effect.serviceOption(UserProfile)) // we access it optionally, while allowAnonymous: true
41
+ return "also-awesome" as const
42
+ })
46
43
  })
47
- .pipe(Layer.unwrapEffect)
48
44
 
49
45
  expectTypeOf<Layer.Layer.Context<typeof impl>>().toEqualTypeOf<never>()
50
46
 
51
- const UserRpcsBad = middlewareGroup(middleware)(RpcGroup
52
- .make(
47
+ const UserRpcsBad = middlewareGroup(middleware)(
48
+ RpcGroup.make(
53
49
  middleware.rpc("doSomethingElse", {
54
50
  success: S.Literal("also-awesome2"),
55
51
  config: { allowAnonymous: true }
56
52
  })
57
- ))
58
- export const badImpl = Effect
59
- .gen(function*() {
60
- const impl = UserRpcsBad
61
- .toLayerDynamic({
62
- doSomethingElse: Effect.fn(function*() {
63
- console.log(yield* UserProfile) // bad boy! allowAnonymous: false, so `UserProfile` must fall through to the Layer R.
64
- return "also-awesome2" as const
65
- })
66
- })
67
- return impl
53
+ )
54
+ )
55
+
56
+ export const badImpl = UserRpcsBad
57
+ .toLayerDynamic({
58
+ doSomethingElse: Effect.fn(function*() {
59
+ console.log(yield* UserProfile) // bad boy! allowAnonymous: false, so `UserProfile` must fall through to the Layer R.
60
+ return "also-awesome2" as const
61
+ })
68
62
  })
69
- .pipe(Layer.unwrapEffect)
70
63
 
71
64
  expectTypeOf<Layer.Layer.Context<typeof badImpl>>().toEqualTypeOf<UserProfile>()
72
65
 
@@ -76,7 +69,7 @@ const middlwareLayer = middleware
76
69
  Layer.provide([
77
70
  DefaultGenericMiddlewaresLive,
78
71
  SomeElseMiddlewareLive,
79
- SomeMiddlewareWrapLive,
72
+ SomeMiddlewareLive,
80
73
  TestLive,
81
74
  RequireRolesLive.pipe(Layer.provide(SomeService.toLayer())),
82
75
  AllowAnonymousLive
@@ -1 +0,0 @@
1
- {"version":3,"file":"test2.test.d.ts","sourceRoot":"","sources":["../../controller/test2.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAA8B,MAAM,+BAA+B,CAAA;AAC7G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,KAAK,gBAAgB,EAAoC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAClI,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;AAE9C,cAAM,WAAY,SAAQ,gBAIzB;CACA;;;;;;AAED,cAAM,gBAAiB,SAAQ,qBAE7B;CAAG;AAKL,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAA2D;CAAG;;;;;AAExF,qBAAa,YAAa,SAAQ,iBAQhC;CAAG;AAEL,MAAM,MAAM,MAAM,GAAG;IACnB,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,gBAAgB,CAAC,CAAA;IAE3F,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAsGD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAA;;;;;;;;;;AAEF,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;AACtE,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;;;AAEtE,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;;;AAE1B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qFAAiC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.legacy2.test.d.ts","sourceRoot":"","sources":["../controller.legacy2.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller.legacy3.test.d.ts","sourceRoot":"","sources":["../controller.legacy3.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;gBA0EgwD,MAAO,KAAK;;;;;;GA1E1wD,QAAQ;;;;;;iDA0Eq0F,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAg1D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAg1D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAg1D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAA2yD,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CA1E1oU,CAAA;AAElE,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;yCAxEL,EAAG,MAAM,CAAC,MAAM;iBAgClC,EA/BK,MACb,CA8BQ,GA9BJ,GA8BI,EA9BC,MAEV,CA4BS,MA5BF;iBAAuB,EAAE,MAC9B,CA2BO,GA3BH,GA2BG,EA3BG,MAAK,CAAC,MAAM;;;;;;2CASkB,EAAG,MAAM,CAAC,MAAM;iBAkBjD,EAAA,MAjBA,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAiBtB,EAPO,MAAC,CAAC,MAAM;iBACA,EAAG,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAc1C,EAAA,MAAL,CAAK,MAAE;;;;;2CAMqC,EAAG,MAAM,CAAC,MAAM;;;;;CA6BnE,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
@@ -1,129 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- import { Rpc } from "@effect/rpc";
3
- import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app";
4
- import { makeRpcClient, UnauthorizedError } from "effect-app/client";
5
- import { HttpHeaders, HttpServerRequest } from "effect-app/http";
6
- import { makeMiddleware, makeRouter } from "../src/api/routing5.js";
7
- const optimisticConcurrencySchedule = Schedule.once
8
- && Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException");
9
- const middleware = makeMiddleware({
10
- contextMap: null,
11
- // helper to deal with nested generic lmitations
12
- context: null,
13
- execute: Effect.gen(function* () {
14
- return (schema, handler, moduleName) => (req) => Effect
15
- .gen(function* () {
16
- const headers = yield* Rpc.currentHeaders;
17
- const ctx = Context.empty();
18
- const config = "config" in schema ? schema.config : undefined;
19
- // Check JWT
20
- // TODO
21
- // if (!fakeLogin && !request.allowAnonymous) {
22
- // yield* Effect.catchAll(
23
- // checkJWTI({
24
- // ...authConfig,
25
- // issuer: authConfig.issuer + "/",
26
- // jwksUri: `${authConfig.issuer}/.well-known/jwks.json`
27
- // }),
28
- // (err) => Effect.fail(new JWTError({ error: err }))
29
- // )
30
- // }
31
- // const fakeLogin = true
32
- // const r = (fakeLogin
33
- // ? makeUserProfileFromUserHeader(headers["x-user"])
34
- // : makeUserProfileFromAuthorizationHeader(
35
- // headers["authorization"]
36
- // ))
37
- // .pipe(Effect.exit, basicRuntime.runSync)
38
- // if (!Exit.isSuccess(r)) {
39
- // yield* Effect.logWarning("Parsing userInfo failed").pipe(Effect.annotateLogs("r", r))
40
- // }
41
- // const userProfile = Option.fromNullable(Exit.isSuccess(r) ? r.value : undefined)
42
- // if (Option.isSome(userProfile)) {
43
- // // yield* rcc.update((_) => ({ ..._, userPorfile: userProfile.value }))
44
- // ctx = ctx.pipe(Context.add(UserProfile, userProfile.value))
45
- // } else if (!config?.allowAnonymous) {
46
- // return yield* new NotLoggedInError({ message: "no auth" })
47
- // }
48
- // if (config?.requireRoles) {
49
- // // TODO
50
- // if (
51
- // !userProfile.value
52
- // || !config.requireRoles.every((role: any) => userProfile.value!.roles.includes(role))
53
- // ) {
54
- // return yield* new UnauthorizedError()
55
- // }
56
- // }
57
- return yield* handler(req).pipe(Effect.retry(optimisticConcurrencySchedule), Effect.provide(ctx));
58
- })
59
- .pipe(Effect.provide(Effect
60
- .gen(function* () {
61
- yield* Effect.annotateCurrentSpan("request.name", moduleName ? `${moduleName}.${req._tag}` : req._tag);
62
- // yield* RequestContextContainer.update((_) => ({
63
- // ..._,
64
- // name: NonEmptyString255(moduleName ? `${moduleName}.${req._tag}` : req._tag)
65
- // }))
66
- const httpReq = yield* HttpServerRequest.HttpServerRequest;
67
- // TODO: only pass Authentication etc, or move headers to actual Rpc Headers
68
- yield* FiberRef.update(Rpc.currentHeaders, (headers) => HttpHeaders.merge(httpReq.headers, headers));
69
- })
70
- .pipe(Layer.effectDiscard)));
71
- // .pipe(Effect.provide(RequestCacheLayers)) as any
72
- })
73
- });
74
- export const { matchAll, matchFor } = makeRouter(middleware, true);
75
- export const { TaggedRequest: Req } = makeRpcClient({
76
- // allowAnonymous: NotLoggedInError,
77
- requireRoles: UnauthorizedError
78
- });
79
- export class GetSomething extends Req()("GetSomething", {
80
- id: S.String
81
- }, { success: S.Void }) {
82
- }
83
- export class GetSomethingElse extends Req()("GetSomethingElse", {
84
- id: S.String
85
- }, { success: S.String }) {
86
- }
87
- const Something = { GetSomething, GetSomethingElse, meta: { moduleName: "Something" } };
88
- export class SomethingService extends Effect.Service()("SomethingService", {
89
- dependencies: [],
90
- effect: Effect.gen(function* () {
91
- return {};
92
- })
93
- }) {
94
- }
95
- const c = a({ a: 5 });
96
- export class SomethingRepo extends Effect.Service()("SomethingRepo", {
97
- dependencies: [SomethingService.Default],
98
- effect: Effect.gen(function* () {
99
- const smth = yield* SomethingService;
100
- return {};
101
- })
102
- }) {
103
- }
104
- export class SomethingService2 extends Effect.Service()("SomethingService2", {
105
- dependencies: [],
106
- effect: Effect.gen(function* () {
107
- return {};
108
- })
109
- }) {
110
- }
111
- const { handle, routes } = matchFor(Something);
112
- const d = handle({
113
- dependencies: [
114
- SomethingRepo.Default,
115
- SomethingService.Default
116
- // SomethingService2.Default
117
- ],
118
- effect: Effect.gen(function* () {
119
- const repo = yield* SomethingRepo;
120
- const smth = yield* SomethingService;
121
- const smth2 = yield* SomethingService2;
122
- const { GetSomething, GetSomethingElse } = routes;
123
- return {
124
- GetSomething: GetSomething(Effect.void),
125
- GetSomethingElse: GetSomethingElse(Effect.succeed("12"))
126
- };
127
- })
128
- });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUUsT0FBTyxFQUF5QixhQUFhLEVBQXNCLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHbkUsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQUMsSUFBSTtPQUM5QyxRQUFRLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLENBQUE7QUFXbEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2hDLFVBQVUsRUFBRSxJQUF5QjtJQUNyQyxnREFBZ0Q7SUFDaEQsT0FBTyxFQUFFLElBQWtEO0lBQzNELE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMzQixPQUFPLENBQ0wsTUFBcUMsRUFDckMsT0FBaUgsRUFDakgsVUFBbUIsRUFDbkIsRUFBRSxDQUNKLENBQ0UsR0FBUSxFQU1SLEVBQUUsQ0FDRixNQUFNO2FBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUE7WUFDekMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller5.test.d.ts","sourceRoot":"","sources":["../controller5.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAK9D,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ,OAAE,QAAQ,KAAiC,CAAA;AAElE,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;2CAvElB,MACZ,CA8BO,MA9BA;mBAEqB,MAC9B,CA2BS,GA3BL,KA2BK,MA3BM,CAAC,MAAM;mBACR,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CA0BhC,MAjBD,CAiBC,MAjBM;mBAiBN,MAhBI,CAgBJ,GAhBQ,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUT,MAAM,CAAC,MAAM;mBAAuC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MACjG;;;;;;6CAciB,MAAM,CAAC,MAAM;;;;;6CAMF,MAAM,CAAC,MAAM;;;CA4B3C,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL,eAAO,MAAM,MAAM,KAmBjB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;gBA0EqxD,MAAO,KAAK;;;;;;GA1E/xD,QAAQ;;;;;;iDA0E01F,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAA6xD,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CA1EvmU,CAAA;AAElE,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;yCAxEE,EAAG,MAAM,CAAC,MAAM;iBAgCzC,EAAA,MA9BD,CA8BC,GA9BG,GA8BH,EAAA,MA5BF,CA4BE,MA5BK;iBA4BL,EAAA,MA3BA,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CASkB,EAAG,MAAM,CAAC,MAAM;iBAkBxD,EAjBC,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAUtB,EAAE,MAAM,CAAC,MAAM;iBACA,EAAG,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAcjD,EAAA,MAAE,CAAC,MAAM;;;;;2CAMqC,EAAG,MAAM,CAAC,MACrE;;;;;CA4BC,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamicContext.test.d.ts","sourceRoot":"","sources":["../dynamicContext.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AA8E7C,eAAO,MAAM,mBAAmB;;CAkB9B,CAAA;AACF,eAAO,MAAM,sBAAsB;;CAkBjC,CAAA;AAMF,eAAO,MAAM,gBAAgB;;CAA0B,CAAA;AACvD,eAAO,MAAM,gBAAgB,0NAA2C,CAAA;AAIxE,eAAO,MAAM,mBAAmB;;CAA6B,CAAA;AAC7D,eAAO,MAAM,mBAAmB,0NAA8C,CAAA;AAQ9E,eAAO,MAAM,iBAAiB;;CAA2B,CAAA;AACzD,eAAO,MAAM,iBAAiB,qOAA+D,CAAA;AAI7F,eAAO,MAAM,oBAAoB;;CAA8B,CAAA;AAC/D,eAAO,MAAM,oBAAoB,qOAAqE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"filterApi.test.d.ts","sourceRoot":"","sources":["../filterApi.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware-api.test.d.ts","sourceRoot":"","sources":["../middleware-api.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC3F,OAAO,EAA4D,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC5G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,gBAAgB,CAAC,CAAA;IAC5E,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACnF,CAAA;;;;;;;;;AAED,qBAAa,cAAe,SAAQ,mBAoBlC;CAAG;AAyBL,eAAO,MAAM,UAAU;;;;;CAQd,CAAA"}
@@ -1,21 +0,0 @@
1
- import { type RPCContextMap } from "effect-app/client";
2
- import { type DynamicMiddlewareMaker, type GenericMiddlewareMaker, type makeMiddlewareBasic, type RequestContextMapProvider } from "../src/api/routing.js";
3
- export interface MiddlewareM<RequestContext extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContext, Middlewares extends ReadonlyArray<GenericMiddlewareMaker>, DynamicMiddlewareProviders, MiddlewareR = never> {
4
- middleware: <MW extends GenericMiddlewareMaker>(mw: MW) => DynamicMiddlewareMakerrsss<RequestContext, Provided, [
5
- ...Middlewares,
6
- MW
7
- ], DynamicMiddlewareProviders, GenericMiddlewareMaker.ApplyServices<MW, MiddlewareR>>;
8
- }
9
- export interface Dynamic<RequestContext extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContext, Middlewares extends ReadonlyArray<GenericMiddlewareMaker>, DynamicMiddlewareProviders, out MiddlewareR> extends MiddlewareM<RequestContext, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> {
10
- middleware: <MW extends DynamicMiddlewareMaker<RequestContext> | GenericMiddlewareMaker>(mw: MW) => MW extends DynamicMiddlewareMaker<RequestContext> ? DynamicMiddlewareMakerrsss<RequestContext, Provided | MW["dynamic"]["key"], Middlewares, DynamicMiddlewareProviders & {
11
- [K in MW["dynamic"]["key"]]: MW;
12
- }, GenericMiddlewareMaker.ApplyServices<MW, MiddlewareR>> : DynamicMiddlewareMakerrsss<RequestContext, Provided, [
13
- ...Middlewares,
14
- MW
15
- ], DynamicMiddlewareProviders, GenericMiddlewareMaker.ApplyServices<MW, MiddlewareR>>;
16
- }
17
- type GetDynamicMiddleware<T, RequestContext extends Record<string, RPCContextMap.Any>> = T extends RequestContextMapProvider<RequestContext> ? T : never;
18
- type DynamicMiddlewareMakerrsss<RequestContext extends Record<string, RPCContextMap.Any>, Provided extends keyof RequestContext = never, Middlewares extends ReadonlyArray<GenericMiddlewareMaker> = [], DynamicMiddlewareProviders = unknown, MiddlewareR = never> = keyof Omit<RequestContext, Provided> extends never ? [MiddlewareR] extends [never] ? ReturnType<typeof makeMiddlewareBasic<RequestContext, GetDynamicMiddleware<DynamicMiddlewareProviders, RequestContext>, Middlewares>> & MiddlewareM<RequestContext, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> : MiddlewareM<RequestContext, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR> : Dynamic<RequestContext, Provided, Middlewares, DynamicMiddlewareProviders, MiddlewareR>;
19
- export declare const makeNewMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>>() => DynamicMiddlewareMakerrsss<RequestContextMap>;
20
- export {};
21
- //# sourceMappingURL=requires.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requires.d.ts","sourceRoot":"","sources":["../requires.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { Array, Either } from "effect-app";
2
- import { makeMiddleware } from "../src/api/routing.js";
3
- export const makeNewMiddleware = () => {
4
- const make = makeMiddleware();
5
- let capturedMiddlewares = [];
6
- const it = {
7
- middleware: (...middlewares) => {
8
- for (const mw of middlewares) {
9
- capturedMiddlewares = [mw, ...capturedMiddlewares];
10
- if (mw.dynamic) {
11
- console.log("Adding dynamic middleware", mw.key, mw.dynamic.key);
12
- }
13
- else {
14
- console.log("Adding generic middleware", mw.key);
15
- }
16
- }
17
- const [genericMiddlewares, dyn] = Array.partitionMap(capturedMiddlewares, (mw) => "dynamic" in mw && mw.dynamic
18
- ? Either.right(mw)
19
- : Either.left(mw));
20
- const dynamicMiddlewares = dyn.reduce((prev, cur) => ({ ...prev, [cur.dynamic.key]: cur }), {});
21
- // TODO: support dynamic and generic intertwined. treat them as one
22
- return Object.assign(make({ genericMiddlewares, dynamicMiddlewares }), it);
23
- }
24
- };
25
- return it;
26
- };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9yZXF1aXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUxQyxPQUFPLEVBQTRELGNBQWMsRUFBNEQsTUFBTSx1QkFBdUIsQ0FBQTtBQWtIMUssTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBRXlCLEdBQUcsRUFBRTtJQUMxRCxNQUFNLElBQUksR0FBRyxjQUFjLEVBQU8sQ0FBQTtJQUNsQyxJQUFJLG1CQUFtQixHQUE2RCxFQUFFLENBQUE7SUFDdEYsTUFBTSxFQUFFLEdBQUc7UUFDVCxVQUFVLEVBQUUsQ0FBQyxHQUFHLFdBQWtCLEVBQUUsRUFBRTtZQUNwQyxLQUFLLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUM3QixtQkFBbUIsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLG1CQUFtQixDQUFDLENBQUE7Z0JBQ2xELElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNsRSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2xELENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQ2xELG1CQUFtQixFQUNuQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ0wsU0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTztnQkFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBaUMsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBNEIsQ0FBQyxDQUNoRCxDQUFBO1lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUNuQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFDcEQsRUFBeUIsQ0FDMUIsQ0FBQTtZQUNELG1FQUFtRTtZQUNuRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLENBQUM7S0FDRixDQUFBO0lBQ0QsT0FBTyxFQUFTLENBQUE7QUFDbEIsQ0FBQyxDQUFBIn0=
@@ -1,37 +0,0 @@
1
- // packages/infra/vitest.config.ts
2
- import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.2.6_@types+node@20.11.30/node_modules/vite/dist/node/index.js";
3
-
4
- // vite.config.base.ts
5
- import path from "path";
6
- import fs from "fs";
7
- var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
8
- function makeConfig(dirName) {
9
- const prefix = path.resolve(__vite_injected_original_dirname, "packages");
10
- const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
11
- const cfg = {
12
- // eslint-disable-next-line @typescript-eslint/no-var-requires
13
- //plugins: [autoImport],
14
- test: {
15
- include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
16
- reporters: "verbose",
17
- globals: true
18
- },
19
- resolve: {
20
- alias: packages.reduce((acc, cur) => {
21
- acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, cur.endsWith("core") ? "dist" : "src");
22
- return acc;
23
- }, {})
24
- // "@effect-app/core/Prelude": path.join(__dirname, "packages/core/src/Prelude.code.ts")
25
- }
26
- };
27
- console.log(cfg);
28
- return cfg;
29
- }
30
-
31
- // packages/infra/vitest.config.ts
32
- var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
33
- var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
34
- export {
35
- vitest_config_default as default
36
- };
37
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczogcGFja2FnZXMucmVkdWNlKChhY2MsIGN1cikgPT4geyAvLyB3b3JrYXJvdW5kIGZvciAvUHJlbHVkZSBpc3N1ZVxuICAgICAgYWNjW0pTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGN1ciArIFwiL3BhY2thZ2UuanNvblwiLCBcInV0Zi04XCIpKS5uYW1lXSA9IHBhdGgucmVzb2x2ZShjdXIsIGN1ci5lbmRzV2l0aChcImNvcmVcIikgPyBcImRpc3RcIiA6IFwic3JjXCIpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgeyB9KSAvLyBcIkBlZmZlY3QtYXBwL2NvcmUvUHJlbHVkZVwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2VzL2NvcmUvc3JjL1ByZWx1ZGUuY29kZS50c1wiKVxuICB9XG4gIH1cbiAgY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFlBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssSUFBSSxTQUFTLE1BQU0sSUFBSSxTQUFTLEtBQUs7QUFDL0gsZUFBTztBQUFBLE1BQ1QsR0FBRyxDQUFFLENBQUM7QUFBQTtBQUFBLElBQ1I7QUFBQSxFQUNBO0FBQ0EsVUFBUSxJQUFJLEdBQUc7QUFDZixTQUFPO0FBQ1Q7OztBRHBDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=