Repository: withastro/astro
File: packages/astro/src/types/public/integrations.ts (TypeScript)

Code before:
	name: string;
	entrypoint: string | URL;
}

export interface AstroRenderer {
	/** Name of the renderer. */
	name: string;
	/** Import entrypoint for the client/browser renderer. */
	clientEntrypoint?: string | URL;
	/** Import entrypoint for the server/build/ssr renderer. */
	serverEntrypoint: string | URL;
}

export type AdapterSupportsKind =
	(typeof AdapterFeatureStability)[keyof typeof AdapterFeatureStability];

export type AdapterSupportWithMessage = {
	support: Exclude<AdapterSupportsKind, 'stable'>;
	message: string;
	/**
	 * Determines if a feature support warning/error in the adapter should be suppressed:
	 * - `"default"`: Suppresses the default warning/error message.
	 * - `"all"`: Suppresses both the custom and the default warning/error message.
	 *
	 * This is useful when the warning/error might not be aplicable in certain contexts.
	 * Or the default message might cause confusion and conflict with the custom one.
	 */
	suppress?: 'all' | 'default';
};

export type AdapterSupport = AdapterSupportsKind | AdapterSupportWithMessage;

export interface AstroAdapterFeatures {
	/**
	 * Creates an edge function that will communicate with the Astro middleware
	 */
	edgeMiddleware: boolean;
	/**
	 * Determine the type of build output the adapter is intended for. Defaults to `server`;
	 */
	buildOutput?: 'static' | 'server';
}

export interface AstroAdapter {
	name: string;
	serverEntrypoint?: string | URL;
	previewEntrypoint?: string | URL;
	exports?: string[];
	args?: any;
	adapterFeatures?: AstroAdapterFeatures;
	/**

Review comment (suggestion):
```suggestion
	 * This is useful when the warning/error might not be applicable in certain contexts,
	 * or the default message might cause confusion and conflict with a custom one.
```

Code after:
	name: string;
	entrypoint: string | URL;
}

export interface AstroRenderer {
	/** Name of the renderer. */
	name: string;
	/** Import entrypoint for the client/browser renderer. */
	clientEntrypoint?: string | URL;
	/** Import entrypoint for the server/build/ssr renderer. */
	serverEntrypoint: string | URL;
}

export type AdapterSupportsKind =
	(typeof AdapterFeatureStability)[keyof typeof AdapterFeatureStability];

export type AdapterSupportWithMessage = {
	support: Exclude<AdapterSupportsKind, 'stable'>;
	message: string;
	/**
	 * Determines if a feature support warning/error in the adapter should be suppressed:
	 * - `"default"`: Suppresses the default warning/error message.
	 * - `"all"`: Suppresses both the custom and the default warning/error message.
	 *
	 * This is useful when the warning/error might not be applicable in certain contexts,
	 * or the default message might cause confusion and conflict with a custom one.
	 */
	suppress?: 'all' | 'default';
};

export type AdapterSupport = AdapterSupportsKind | AdapterSupportWithMessage;

export interface AstroAdapterFeatures {
	/**
	 * Creates an edge function that will communicate with the Astro middleware
	 */
	edgeMiddleware: boolean;
	/**
	 * Determine the type of build output the adapter is intended for. Defaults to `server`;
	 */
	buildOutput?: 'static' | 'server';
}

export interface AstroAdapter {
	name: string;
	serverEntrypoint?: string | URL;
	previewEntrypoint?: string | URL;
	exports?: string[];
	args?: any;
	adapterFeatures?: AstroAdapterFeatures;
	/**