github withastro/astro astro@2.8.0

latest releases: astro@4.15.8, @astrojs/mdx@3.1.7, astro@4.15.7...
14 months ago

Minor Changes

  • #7532 9e5fafa2b Thanks @ematipico! - The astro/middleware module exports a new utility called trySerializeLocals.

    This utility can be used by adapters to validate their locals before sending it
    to the Astro middleware.

    This function will throw a runtime error if the value passed is not serializable, so
    consumers will need to handle that error.

  • #7532 9e5fafa2b Thanks @ematipico! - Astro exposes the middleware file path to the integrations in the hook astro:build:ssr

    // myIntegration.js
    import type { AstroIntegration } from 'astro';
    function integration(): AstroIntegration {
      return {
        name: 'fancy-astro-integration',
        hooks: {
          'astro:build:ssr': ({ middlewareEntryPoint }) => {
            if (middlewareEntryPoint) {
              // do some operations
            }
          },
        },
      };
    }

    The middlewareEntryPoint is only defined if the user has created an Astro middleware.

  • #7432 6e9c29579 Thanks @ematipico! - Adds a new command astro info, useful for sharing debugging information about your current environment when you need help!

    astro info

    Output

    Astro version            v2.6.6
    Package manager          pnpm
    Platform                 darwin
    Architecture             arm64
    Adapter                  @astrojs/vercel/serverless
    Integrations             None
    
  • #7532 9e5fafa2b Thanks @ematipico! - The astro/middleware module exports a new API called createContext.

    This a low-level API that adapters can use to create a context that can be consumed by middleware functions.

  • #7532 9e5fafa2b Thanks @ematipico! - Introduced a new build option for SSR, called build.excludeMiddleware.

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      build: {
        excludeMiddleware: true,
      },
    });

    When enabled, the code that belongs to be middleware won't be imported
    by the final pages/entry points. The user is responsible for importing it and
    calling it manually.

Patch Changes

Don't miss a new astro release

NewReleases is sending notifications on new releases.