mirror of
https://github.com/withastro/astro.git
synced 2025-01-22 18:41:55 -05:00
fix(routing): incorrect assumption when loading the middleware (#12109)
This commit is contained in:
parent
918953bd09
commit
ea225585fd
3 changed files with 15 additions and 2 deletions
7
.changeset/nasty-trains-invite.md
Normal file
7
.changeset/nasty-trains-invite.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
'astro': patch
|
||||
---
|
||||
|
||||
Fixes a regression that was introduced by an internal refactor of how the middleware is loaded by the Astro application. The regression was introduced by [#11550](https://github.com/withastro/astro/pull/11550).
|
||||
|
||||
When the edge middleware feature is opted in, Astro removes the middleware function from the SSR manifest, and this wasn't taken into account during the refactor.
|
|
@ -68,7 +68,7 @@ export type SSRManifest = {
|
|||
serverIslandNameMap?: Map<string, string>;
|
||||
key: Promise<CryptoKey>;
|
||||
i18n: SSRManifestI18n | undefined;
|
||||
middleware: () => Promise<AstroMiddlewareInstance> | AstroMiddlewareInstance;
|
||||
middleware?: () => Promise<AstroMiddlewareInstance> | AstroMiddlewareInstance;
|
||||
checkOrigin: boolean;
|
||||
// TODO: remove experimental prefix
|
||||
experimentalEnvGetSecretEnabled: boolean;
|
||||
|
|
|
@ -109,7 +109,10 @@ export abstract class Pipeline {
|
|||
async getMiddleware(): Promise<MiddlewareHandler> {
|
||||
if (this.resolvedMiddleware) {
|
||||
return this.resolvedMiddleware;
|
||||
} else {
|
||||
}
|
||||
// The middleware can be undefined when using edge middleware.
|
||||
// This is set to undefined by the plugin-ssr.ts
|
||||
else if (this.middleware) {
|
||||
const middlewareInstance = await this.middleware();
|
||||
const onRequest = middlewareInstance.onRequest ?? NOOP_MIDDLEWARE_FN;
|
||||
if (this.manifest.checkOrigin) {
|
||||
|
@ -118,6 +121,9 @@ export abstract class Pipeline {
|
|||
this.resolvedMiddleware = onRequest;
|
||||
}
|
||||
return this.resolvedMiddleware;
|
||||
} else {
|
||||
this.resolvedMiddleware = NOOP_MIDDLEWARE_FN;
|
||||
return this.resolvedMiddleware
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue