summaryrefslogtreecommitdiff
path: root/packages/integrations/cloudflare/src/getAdapter.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/cloudflare/src/getAdapter.ts')
-rw-r--r--packages/integrations/cloudflare/src/getAdapter.ts40
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,
+ };
+}