Ensuring Correct Layer Application Order in TypeScript Code
How do you correctly chain to ensure an layer is applied after everything else?
tried:
also tried:
Both seem to result in the middleware first:
tried:
if ( filteredRoutes.length !== 0 ) {
const routing = Layer.mergeAll( filteredRoutes.shift()!, ...filteredRoutes )
return yield* Layer.launch(
Layer.provide( context )(
Layer.provide( yield* CatchAllHandler )(
Layer.provide( routing )(
server.run
)
)
)
)
} if ( filteredRoutes.length !== 0 ) {
const routing = Layer.mergeAll( filteredRoutes.shift()!, ...filteredRoutes )
return yield* Layer.launch(
Layer.provide( context )(
Layer.provide( yield* CatchAllHandler )(
Layer.provide( routing )(
server.run
)
)
)
)
}also tried:
if ( filteredRoutes.length !== 0 ) {
const routing = Layer.mergeAll( filteredRoutes.shift()!, ...filteredRoutes )
return yield* Layer.launch(
server.run.pipe(
Layer.provide( routing )
).pipe(
Layer.provide( yield* CatchAllHandler ) // must be second to last to apply correctly
).pipe(
Layer.provide( context ) // must be last to apply to all properly
)
)
} if ( filteredRoutes.length !== 0 ) {
const routing = Layer.mergeAll( filteredRoutes.shift()!, ...filteredRoutes )
return yield* Layer.launch(
server.run.pipe(
Layer.provide( routing )
).pipe(
Layer.provide( yield* CatchAllHandler ) // must be second to last to apply correctly
).pipe(
Layer.provide( context ) // must be last to apply to all properly
)
)
}Both seem to result in the middleware first:
[20:36:31.463] DEBUG (#40): [backend:platform]: Setting Service Port to 5100
[20:36:31.464] DEBUG (#40): [backend:platform]: Running Server Default on port 5100
[20:36:31.467] DEBUG (#40): [backend:platform:express_manager]: Registering middleware:
name: catchAllMiddleware
[20:36:31.469] DEBUG (#42): [backend:platform:express_manager]: Registering route:
path: /
[20:36:31.471] DEBUG (#43): [backend:platform:express_manager]: Registering route:
path: /health-check
[20:36:31.475] INFO (#44): [backend:default:server]: Listening on port 5100[20:36:31.463] DEBUG (#40): [backend:platform]: Setting Service Port to 5100
[20:36:31.464] DEBUG (#40): [backend:platform]: Running Server Default on port 5100
[20:36:31.467] DEBUG (#40): [backend:platform:express_manager]: Registering middleware:
name: catchAllMiddleware
[20:36:31.469] DEBUG (#42): [backend:platform:express_manager]: Registering route:
path: /
[20:36:31.471] DEBUG (#43): [backend:platform:express_manager]: Registering route:
path: /health-check
[20:36:31.475] INFO (#44): [backend:default:server]: Listening on port 5100