interface AstroIntegration {
    hooks: {
        astro:build:done?: ((options) => void | Promise<void>);
        astro:build:generated?: ((options) => void | Promise<void>);
        astro:build:setup?: ((options) => void | Promise<void>);
        astro:build:ssr?: ((options) => void | Promise<void>);
        astro:build:start?: ((options) => void | Promise<void>);
        astro:config:done?: ((options) => void | Promise<void>);
        astro:config:setup?: ((options) => void | Promise<void>);
        astro:server:done?: ((options) => void | Promise<void>);
        astro:server:setup?: ((options) => void | Promise<void>);
        astro:server:start?: ((options) => void | Promise<void>);
    };
    name: string;
}

Properties

Properties

hooks: {
    astro:build:done?: ((options) => void | Promise<void>);
    astro:build:generated?: ((options) => void | Promise<void>);
    astro:build:setup?: ((options) => void | Promise<void>);
    astro:build:ssr?: ((options) => void | Promise<void>);
    astro:build:start?: ((options) => void | Promise<void>);
    astro:config:done?: ((options) => void | Promise<void>);
    astro:config:setup?: ((options) => void | Promise<void>);
    astro:server:done?: ((options) => void | Promise<void>);
    astro:server:setup?: ((options) => void | Promise<void>);
    astro:server:start?: ((options) => void | Promise<void>);
}

The different hooks available to extend.

Type declaration

  • Optional astro:build:done?: ((options) => void | Promise<void>)
  • Optional astro:build:generated?: ((options) => void | Promise<void>)
  • Optional astro:build:setup?: ((options) => void | Promise<void>)
  • Optional astro:build:ssr?: ((options) => void | Promise<void>)
  • Optional astro:build:start?: ((options) => void | Promise<void>)
  • Optional astro:config:done?: ((options) => void | Promise<void>)
  • Optional astro:config:setup?: ((options) => void | Promise<void>)
      • (options): void | Promise<void>
      • Parameters

        • options: {
              addClientDirective: ((directive) => void);
              addDevOverlayPlugin: ((entrypoint) => void);
              addDevToolbarApp: ((entrypoint) => void);
              addMiddleware: ((mid) => void);
              addRenderer: ((renderer) => void);
              addWatchFile: ((path) => void);
              command: "build" | "preview" | "dev";
              config: AstroConfig;
              injectRoute: ((injectRoute) => void);
              injectScript: ((stage, content) => void);
              isRestart: boolean;
              logger: AstroIntegrationLogger;
              updateConfig: ((newConfig) => AstroConfig);
          }
          • addClientDirective: ((directive) => void)
          • addDevOverlayPlugin: ((entrypoint) => void)

            Deprecated

            Use addDevToolbarApp instead. TODO: Fully remove in Astro 5.0

              • (entrypoint): void
              • Parameters

                • entrypoint: string

                Returns void

          • addDevToolbarApp: ((entrypoint) => void)
          • addMiddleware: ((mid) => void)
          • addRenderer: ((renderer) => void)
          • addWatchFile: ((path) => void)
              • (path): void
              • Parameters

                • path: string | URL

                Returns void

          • command: "build" | "preview" | "dev"
          • config: AstroConfig
          • injectRoute: ((injectRoute) => void)
              • (injectRoute): void
              • Parameters

                Returns void

          • injectScript: ((stage, content) => void)
          • isRestart: boolean
          • logger: AstroIntegrationLogger
          • updateConfig: ((newConfig) => AstroConfig)

        Returns void | Promise<void>

  • Optional astro:server:done?: ((options) => void | Promise<void>)
  • Optional astro:server:setup?: ((options) => void | Promise<void>)
      • (options): void | Promise<void>
      • Parameters

        • options: {
              logger: AstroIntegrationLogger;
              server: ViteDevServer;
              toolbar: {
                  on: (<T_1>(event, callback) => void);
                  onAppInitialized: ((appId, callback) => void);
                  onAppToggled: ((appId, callback) => void);
                  send: (<T>(event, payload) => void);
              };
          }
          • logger: AstroIntegrationLogger
          • server: ViteDevServer
          • toolbar: {
                on: (<T_1>(event, callback) => void);
                onAppInitialized: ((appId, callback) => void);
                onAppToggled: ((appId, callback) => void);
                send: (<T>(event, payload) => void);
            }
            • on: (<T_1>(event, callback) => void)

              Receive a message from a dev toolbar app.

                • <T_1>(event, callback): void
                • Type Parameters

                  • T_1

                  Parameters

                  • event: string
                  • callback: ((data) => void)
                      • (data): void
                      • Parameters

                        Returns void

                  Returns void

            • onAppInitialized: ((appId, callback) => void)

              Fired when an app is initialized.

                • (appId, callback): void
                • Parameters

                  • appId: string

                    The id of the app that was initialized

                  • callback: ((data) => void)

                    The callback to run when the app is initialized

                      • (data): void
                      • Parameters

                        Returns void

                  Returns void

            • onAppToggled: ((appId, callback) => void)

              Fired when an app is toggled on or off.

                • (appId, callback): void
                • Parameters

                  • appId: string

                    The id of the app that was toggled

                  • callback: ((data) => void)

                    The callback to run when the app is toggled

                      • (data): void
                      • Parameters

                        • data: {
                              state: boolean;
                          }
                          • state: boolean

                        Returns void

                  Returns void

            • send: (<T>(event, payload) => void)

              Send a message to the dev toolbar that an app can listen for. The payload can be any serializable data.

                • <T>(event, payload): void
                • Type Parameters

                  • T

                  Parameters

                  • event: string

                    The event name

                  • payload: T

                    The payload to send

                  Returns void

        Returns void | Promise<void>

  • Optional astro:server:start?: ((options) => void | Promise<void>)
name: string

The name of the integration.