Repository: withastro/astro
File: packages/integrations/netlify/src/index.ts (TypeScript)

Code before:
export interface NetlifyIntegrationConfig {
	/** Force files to be bundled with your function. This is helpful when you notice missing files. */
	includeFiles?: string[];

	/** Exclude any files from the bundling process that would otherwise be included. */
	excludeFiles?: string[];

	/**
	 * If enabled, On-Demand-Rendered pages are cached for up to a year.
	 * This is useful for pages that are not updated often, like a blog post,
	 * but that you have too many of to pre-render at build time.
	 *
	 * You can override this behavior on a per-page basis
	 * by setting the `Cache-Control`, `CDN-Cache-Control` or `Netlify-CDN-Cache-Control` header
	 * from within the Page:
	 *
	 * ```astro
	 * // src/pages/cached-clock.astro
	 * Astro.response.headers.set('CDN-Cache-Control', "public, max-age=45, must-revalidate");
	 * ---
	 * <p>{Date.now()}</p>
	 * ```
	 */
	cacheOnDemandPages?: boolean;

	/**
	 * If disabled, Middleware is applied to prerendered pages at build-time, and to on-demand-rendered pages at runtime.
	 * Only disable when your Middleware does not need to run on prerendered pages.
	 * If you use Middleware to implement authentication, redirects or similar things, you should should likely enabled it.
	 *
	 * If enabled, Astro Middleware is deployed as an Edge Function and applies to all routes.
	 * Caveat: Locals set in Middleware are not applied to prerendered pages, because they've been rendered at build-time and are served from the CDN.
	 *
	 * @default {false}
	 */
	edgeMiddleware?: boolean;

	/**
	 * If enabled, Netlify Image CDN is used for image optimization.
	 * This transforms images on-the-fly without impacting build times.
	 *
	 * If disabled, Astro's built-in image optimization is run at build-time instead.
	 *
	 * @default {true}
	 */
	imageCDN?: boolean;
}

export default function netlifyIntegration(
	integrationConfig?: NetlifyIntegrationConfig,
): AstroIntegration {

Review comment (bug):
There's an important piece of information that is missing from the inline JS docs. The code resolves the files from the `rootDir`. This information must be shared with the docs. This information is also missing from the docs PR (I checked). 

What does that mean? If a user adds an absolute path, this might fail. We should provide this information.

Code after:
export interface NetlifyIntegrationConfig {
	/**
	 * Force files to be bundled with your SSR function.
	 * This is useful for including any type of file that is not directly detected by the bundler,
	 * like configuration files or assets that are dynamically imported at runtime.
	 *
	 * Note: File paths are resolved relative to your project's `root`. Absolute paths may not work as expected.
	 *
	 * @example
	 * ```js
	 * includeFiles: ['./src/data/*.json', './src/locales/*.yml', './src/config/*.yaml']
	 * ```
	 */
	includeFiles?: string[];

	/**
	 * Exclude files from the bundling process.
	 * This is useful for excluding any type of file that is not intended to be bundled with your SSR function,
	 * such as large assets, temporary files, or sensitive local configuration files.
	 *
	 * @example
	 * ```js
	 * excludeFiles: ['./src/secret/*.json', './src/temp/*.txt']
	 * ```
	 */
	excludeFiles?: string[];

	/**
	 * If enabled, On-Demand-Rendered pages are cached for up to a year.
	 * This is useful for pages that are not updated often, like a blog post,
	 * but that you have too many of to pre-render at build time.
	 *
	 * You can override this behavior on a per-page basis
	 * by setting the `Cache-Control`, `CDN-Cache-Control` or `Netlify-CDN-Cache-Control` header
	 * from within the Page:
	 *
	 * ```astro
	 * // src/pages/cached-clock.astro
	 * Astro.response.headers.set('CDN-Cache-Control', "public, max-age=45, must-revalidate");
	 * ---
	 * <p>{Date.now()}</p>
	 * ```
	 */
	cacheOnDemandPages?: boolean;

	/**
	 * If disabled, Middleware is applied to prerendered pages at build-time, and to on-demand-rendered pages at runtime.
	 * Only disable when your Middleware does not need to run on prerendered pages.
	 * If you use Middleware to implement authentication, redirects or similar things, you should should likely enabled it.
	 *
	 * If enabled, Astro Middleware is deployed as an Edge Function and applies to all routes.