diff options
Diffstat (limited to '.changeset/pretty-bears-deliver.md')
-rw-r--r-- | .changeset/pretty-bears-deliver.md | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/.changeset/pretty-bears-deliver.md b/.changeset/pretty-bears-deliver.md deleted file mode 100644 index 7be41ec06..000000000 --- a/.changeset/pretty-bears-deliver.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -'astro': minor ---- - -Implements a new experimental middleware in Astro. - -The middleware is available under the following experimental flag: - -```js -export default defineConfig({ - experimental: { - middleware: true - } -}) -``` - -Or via CLI, using the new argument `--experimental-middleware`. - -Create a file called `middleware.{js,ts}` inside the `src` folder, and -export a `onRequest` function. - -From `astro/middleware`, use the `defineMiddleware` utility to take advantage of type-safety, and use -the `sequence` utility to chain multiple middleware functions. - -Example: - -```ts -import {defineMiddleware, sequence} from "astro/middleware"; - -const redirects = defineMiddleware((context, next) => { - if (context.request.url.endsWith("/old-url")) { - return context.redirect("/new-url") - } - return next(); -}); - -const minify = defineMiddleware(async (context, next) => { - const repsonse = await next(); - const minifiedHtml = await minifyHtml(response.text()); - return new Response(minifiedHtml, { - status: 200, - headers: response.headers - }); -}) - -export const onRequest = sequence(redirects, minify); -``` |