Astro: [email protected] Release

Release date:
July 6, 2023
Previous version:
[email protected] (released July 5, 2023)
Magnitude:
0 Diff Delta
Contributors:
0 total committers
Data confidence:
Commits:

Top Contributors in [email protected]

Could not determine top contributors for this release.

Directory Browser for [email protected]

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

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