Resolved Astro Config Config with user settings along with all defaults filled in.

interface AstroConfig {
    adapter?: {
        hooks: {
            [k: string]: unknown;
        };
        name: string;
    };
    base: string;
    build: {
        assets: string;
        assetsPrefix?: string | {
            fallback: string;
        } & Record<string, string>;
        client: URL;
        format: "file" | "directory" | "preserve";
        inlineStylesheets: "always" | "never" | "auto";
        redirects: boolean;
        server: URL;
        serverEntry: string;
    };
    cacheDir: URL;
    compressHTML: boolean;
    devToolbar: {
        enabled: boolean;
    };
    experimental: {
        actions: boolean;
        clientPrerender: boolean;
        contentCollectionCache: boolean;
        contentCollectionJsonSchema: boolean;
        directRenderScript: boolean;
        env?: {
            schema?: Record<string, ({
                access: "public";
                context: "client";
            } | {
                access: "public";
                context: "server";
            } | {
                access: "secret";
                context: "server";
            }) & ({
                default?: string;
                optional?: boolean;
                type: "string";
            } | {
                default?: number;
                optional?: boolean;
                type: "number";
            } | {
                default?: boolean;
                optional?: boolean;
                type: "boolean";
            })>;
        };
        globalRoutePriority: boolean;
        rewriting: boolean;
    };
    i18n?: {
        defaultLocale: string;
        domains?: Record<string, string>;
        fallback?: Record<string, string>;
        locales: (string | {
            codes: [string, ...string[]];
            path: string;
        })[];
        routing: "manual" | {
            prefixDefaultLocale: boolean;
            redirectToDefaultLocale: boolean;
        };
    };
    image: {
        domains: string[];
        endpoint?: string;
        remotePatterns: {
            hostname?: string;
            pathname?: string;
            port?: string;
            protocol?: string;
        }[];
        service: {
            config: Record<string, any>;
            entrypoint: string;
        };
    };
    integrations: AstroIntegration[];
    legacy: {};
    markdown: {
        gfm: boolean;
        rehypePlugins: (string | [string, any] | RehypePlugin | [RehypePlugin, any])[];
        remarkPlugins: (string | [string, any] | RemarkPlugin | [RemarkPlugin, any])[];
        remarkRehype: RemarkRehype;
        shikiConfig: {
            langs: ShikiLang[];
            theme: BundledTheme | ShikiTheme;
            themes: Record<string, BundledTheme | ShikiTheme>;
            transformers: ShikiTransformer[];
            wrap: null | boolean;
        };
        smartypants: boolean;
        syntaxHighlight: false | "shiki" | "prism";
    };
    outDir: URL;
    output: "server" | "static" | "hybrid";
    prefetch?: boolean | {
        defaultStrategy?: "tap" | "hover" | "viewport" | "load";
        prefetchAll?: boolean;
    };
    publicDir: URL;
    redirects: Record<string, string | {
        destination: string;
        status: 300 | 301 | 302 | 303 | 304 | 307 | 308;
    }>;
    root: URL;
    scopedStyleStrategy: "where" | "class" | "attribute";
    security: {
        checkOrigin: boolean;
    };
    server: {
        headers?: OutgoingHttpHeaders;
        host: string | boolean;
        open: string | boolean;
        port: number;
    };
    site?: string;
    srcDir: URL;
    trailingSlash: "ignore" | "always" | "never";
    vite: ViteUserConfig;
}

Hierarchy (view full)

Properties

adapter?: {
    hooks: {
        [k: string]: unknown;
    };
    name: string;
}

Type declaration

  • hooks: {
        [k: string]: unknown;
    }
    • [k: string]: unknown
  • name: string
base: string
build: {
    assets: string;
    assetsPrefix?: string | {
        fallback: string;
    } & Record<string, string>;
    client: URL;
    format: "file" | "directory" | "preserve";
    inlineStylesheets: "always" | "never" | "auto";
    redirects: boolean;
    server: URL;
    serverEntry: string;
}

Type declaration

  • assets: string
  • Optional assetsPrefix?: string | {
        fallback: string;
    } & Record<string, string>
  • client: URL
  • format: "file" | "directory" | "preserve"
  • inlineStylesheets: "always" | "never" | "auto"
  • redirects: boolean
  • server: URL
  • serverEntry: string
cacheDir: URL
compressHTML: boolean
devToolbar: {
    enabled: boolean;
}

Type declaration

  • enabled: boolean
experimental: {
    actions: boolean;
    clientPrerender: boolean;
    contentCollectionCache: boolean;
    contentCollectionJsonSchema: boolean;
    directRenderScript: boolean;
    env?: {
        schema?: Record<string, ({
            access: "public";
            context: "client";
        } | {
            access: "public";
            context: "server";
        } | {
            access: "secret";
            context: "server";
        }) & ({
            default?: string;
            optional?: boolean;
            type: "string";
        } | {
            default?: number;
            optional?: boolean;
            type: "number";
        } | {
            default?: boolean;
            optional?: boolean;
            type: "boolean";
        })>;
    };
    globalRoutePriority: boolean;
    rewriting: boolean;
}

Type declaration

  • actions: boolean
  • clientPrerender: boolean
  • contentCollectionCache: boolean
  • contentCollectionJsonSchema: boolean
  • directRenderScript: boolean
  • Optional env?: {
        schema?: Record<string, ({
            access: "public";
            context: "client";
        } | {
            access: "public";
            context: "server";
        } | {
            access: "secret";
            context: "server";
        }) & ({
            default?: string;
            optional?: boolean;
            type: "string";
        } | {
            default?: number;
            optional?: boolean;
            type: "number";
        } | {
            default?: boolean;
            optional?: boolean;
            type: "boolean";
        })>;
    }
    • Optional schema?: Record<string, ({
          access: "public";
          context: "client";
      } | {
          access: "public";
          context: "server";
      } | {
          access: "secret";
          context: "server";
      }) & ({
          default?: string;
          optional?: boolean;
          type: "string";
      } | {
          default?: number;
          optional?: boolean;
          type: "number";
      } | {
          default?: boolean;
          optional?: boolean;
          type: "boolean";
      })>
  • globalRoutePriority: boolean
  • rewriting: boolean
i18n?: {
    defaultLocale: string;
    domains?: Record<string, string>;
    fallback?: Record<string, string>;
    locales: (string | {
        codes: [string, ...string[]];
        path: string;
    })[];
    routing: "manual" | {
        prefixDefaultLocale: boolean;
        redirectToDefaultLocale: boolean;
    };
}

Type declaration

  • defaultLocale: string
  • Optional domains?: Record<string, string>
  • Optional fallback?: Record<string, string>
  • locales: (string | {
        codes: [string, ...string[]];
        path: string;
    })[]
  • routing: "manual" | {
        prefixDefaultLocale: boolean;
        redirectToDefaultLocale: boolean;
    }
image: {
    domains: string[];
    endpoint?: string;
    remotePatterns: {
        hostname?: string;
        pathname?: string;
        port?: string;
        protocol?: string;
    }[];
    service: {
        config: Record<string, any>;
        entrypoint: string;
    };
}

Type declaration

  • domains: string[]
  • Optional endpoint?: string
  • remotePatterns: {
        hostname?: string;
        pathname?: string;
        port?: string;
        protocol?: string;
    }[]
  • service: {
        config: Record<string, any>;
        entrypoint: string;
    }
    • config: Record<string, any>
    • entrypoint: string
integrations: AstroIntegration[]
legacy: {}

Type declaration

    markdown: {
        gfm: boolean;
        rehypePlugins: (string | [string, any] | RehypePlugin | [RehypePlugin, any])[];
        remarkPlugins: (string | [string, any] | RemarkPlugin | [RemarkPlugin, any])[];
        remarkRehype: RemarkRehype;
        shikiConfig: {
            langs: ShikiLang[];
            theme: BundledTheme | ShikiTheme;
            themes: Record<string, BundledTheme | ShikiTheme>;
            transformers: ShikiTransformer[];
            wrap: null | boolean;
        };
        smartypants: boolean;
        syntaxHighlight: false | "shiki" | "prism";
    }

    Type declaration

    outDir: URL
    output: "server" | "static" | "hybrid"
    prefetch?: boolean | {
        defaultStrategy?: "tap" | "hover" | "viewport" | "load";
        prefetchAll?: boolean;
    }

    Type declaration

    • Optional defaultStrategy?: "tap" | "hover" | "viewport" | "load"
    • Optional prefetchAll?: boolean
    publicDir: URL
    redirects: Record<string, string | {
        destination: string;
        status: 300 | 301 | 302 | 303 | 304 | 307 | 308;
    }>
    root: URL
    scopedStyleStrategy: "where" | "class" | "attribute"
    security: {
        checkOrigin: boolean;
    }

    Type declaration

    • checkOrigin: boolean
    server: {
        headers?: OutgoingHttpHeaders;
        host: string | boolean;
        open: string | boolean;
        port: number;
    }

    Type declaration

    site?: string
    srcDir: URL
    trailingSlash: "ignore" | "always" | "never"