diff options
Diffstat (limited to 'packages/integrations/cloudflare/src')
-rw-r--r-- | packages/integrations/cloudflare/src/entrypoints/middleware.ts | 15 | ||||
-rw-r--r-- | packages/integrations/cloudflare/src/index.ts | 15 |
2 files changed, 29 insertions, 1 deletions
diff --git a/packages/integrations/cloudflare/src/entrypoints/middleware.ts b/packages/integrations/cloudflare/src/entrypoints/middleware.ts new file mode 100644 index 000000000..3acd1e2f3 --- /dev/null +++ b/packages/integrations/cloudflare/src/entrypoints/middleware.ts @@ -0,0 +1,15 @@ +import { When, whenAmI } from '@it-astro:when'; +import type { MiddlewareHandler } from 'astro'; + +const middlewares: Record<any, MiddlewareHandler> = { + [When.Prerender]: (ctx, next) => { + if (ctx.locals.runtime === undefined) { + ctx.locals.runtime = { + env: process.env, + }; + } + return next(); + }, +}; + +export const onRequest = middlewares[whenAmI]; diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index 1a14fa957..718fac020 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -10,6 +10,7 @@ import { removeLeadingForwardSlash, } from '@astrojs/internal-helpers/path'; import { createRedirectsFromAstroRoutes } from '@astrojs/underscore-redirects'; +import astroWhen from '@inox-tools/astro-when'; import { AstroError } from 'astro/errors'; import { getPlatformProxy } from 'wrangler'; import { @@ -108,7 +109,14 @@ export default function createIntegration(args?: Options): AstroIntegration { return { name: '@astrojs/cloudflare', hooks: { - 'astro:config:setup': ({ command, config, updateConfig, logger, addWatchFile }) => { + 'astro:config:setup': ({ + command, + config, + updateConfig, + logger, + addWatchFile, + addMiddleware, + }) => { updateConfig({ build: { client: new URL(`.${wrapWithSlashes(config.base)}`, config.outDir), @@ -123,10 +131,15 @@ export default function createIntegration(args?: Options): AstroIntegration { cloudflareModulePlugin, ], }, + integrations: [astroWhen()], image: setImageConfig(args?.imageService ?? 'compile', config.image, command, logger), }); addWatchFile(new URL('./wrangler.toml', config.root)); addWatchFile(new URL('./wrangler.json', config.root)); + addMiddleware({ + entrypoint: '@astrojs/cloudflare/entrypoints/middleware.js', + order: 'pre', + }); }, 'astro:config:done': ({ setAdapter, config }) => { if (config.output === 'static') { |