diff options
Diffstat (limited to 'packages/integrations/cloudflare/src/index.ts')
-rw-r--r-- | packages/integrations/cloudflare/src/index.ts | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index 4facef327..0acd86fd8 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -1,4 +1,4 @@ -import type { AstroConfig, AstroIntegration, RouteData } from 'astro'; +import type { AstroConfig, AstroIntegration, IntegrationRouteData } from 'astro'; import type { PluginOption } from 'vite'; import { createReadStream } from 'node:fs'; @@ -81,8 +81,8 @@ function wrapWithSlashes(path: string): string { function setProcessEnv(config: AstroConfig, env: Record<string, unknown>) { const getEnv = createGetEnv(env); - if (config.experimental.env?.schema) { - for (const key of Object.keys(config.experimental.env.schema)) { + if (config.env?.schema) { + for (const key of Object.keys(config.env.schema)) { const value = getEnv(key); if (value !== undefined) { process.env[key] = value; @@ -151,10 +151,10 @@ export default function createIntegration(args?: Options): AstroIntegration { order: 'pre', }); }, - 'astro:config:done': ({ setAdapter, config }) => { - if (config.output === 'static') { - throw new AstroError( - '[@astrojs/cloudflare] `output: "server"` or `output: "hybrid"` is required to use this adapter. Otherwise, this adapter is not necessary to deploy a static site to Cloudflare.' + 'astro:config:done': ({ setAdapter, config, buildOutput, logger }) => { + if (buildOutput === 'static') { + logger.warn( + '[@astrojs/cloudflare] This adapter is intended to be used with server rendered pages, which this project does not contain any of. As such, this adapter is unnecessary.' ); } @@ -165,19 +165,15 @@ export default function createIntegration(args?: Options): AstroIntegration { serverEntrypoint: '@astrojs/cloudflare/entrypoints/server.js', exports: ['default'], adapterFeatures: { - functionPerRoute: false, edgeMiddleware: false, + buildOutput: 'server', }, supportedAstroFeatures: { serverOutput: 'stable', hybridOutput: 'stable', staticOutput: 'unsupported', i18nDomains: 'experimental', - assets: { - supportKind: 'stable', - isSharpCompatible: false, - isSquooshCompatible: false, - }, + sharpImageService: 'limited', envGetSecret: 'experimental', }, }); @@ -309,7 +305,7 @@ export default function createIntegration(args?: Options): AstroIntegration { redirectsExists = false; } - const redirects: RouteData['segments'][] = []; + const redirects: IntegrationRouteData['segments'][] = []; if (redirectsExists) { const rl = createInterface({ input: createReadStream(new URL('./_redirects', _config.outDir)), @@ -356,7 +352,7 @@ export default function createIntegration(args?: Options): AstroIntegration { ); } - const redirectRoutes: [RouteData, string][] = []; + const redirectRoutes: [IntegrationRouteData, string][] = []; for (const route of routes) { if (route.type === 'redirect') redirectRoutes.push([route, '']); } |