diff options
Diffstat (limited to 'packages/integrations/cloudflare/src/getAdapter.ts')
-rw-r--r-- | packages/integrations/cloudflare/src/getAdapter.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/integrations/cloudflare/src/getAdapter.ts b/packages/integrations/cloudflare/src/getAdapter.ts new file mode 100644 index 000000000..0cc1263a1 --- /dev/null +++ b/packages/integrations/cloudflare/src/getAdapter.ts @@ -0,0 +1,40 @@ +import type { AstroAdapter, AstroFeatureMap } from 'astro'; + +export function getAdapter({ + isModeDirectory, + functionPerRoute, +}: { + isModeDirectory: boolean; + functionPerRoute: boolean; +}): AstroAdapter { + const astroFeatures = { + hybridOutput: 'stable', + staticOutput: 'unsupported', + serverOutput: 'stable', + assets: { + supportKind: 'stable', + isSharpCompatible: false, + isSquooshCompatible: false, + }, + } satisfies AstroFeatureMap; + + if (isModeDirectory) { + return { + name: '@astrojs/cloudflare', + serverEntrypoint: '@astrojs/cloudflare/entrypoints/server.directory.js', + exports: ['onRequest', 'manifest'], + adapterFeatures: { + functionPerRoute, + edgeMiddleware: false, + }, + supportedAstroFeatures: astroFeatures, + }; + } + + return { + name: '@astrojs/cloudflare', + serverEntrypoint: '@astrojs/cloudflare/entrypoints/server.advanced.js', + exports: ['default'], + supportedAstroFeatures: astroFeatures, + }; +} |