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