Skip to content

Commit ed945b5

Browse files
committed
refactor(cloudflare): rename the "cloudflare" wrapper to "cloudflare-edge"
1 parent f685dde commit ed945b5

File tree

10 files changed

+42
-14
lines changed

10 files changed

+42
-14
lines changed

.changeset/green-news-give.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@opennextjs/aws": patch
3+
---
4+
5+
refactor(cloudflare): rename the "cloudflare" wrapper to "cloudflare-edge"

packages/open-next/src/build/createMiddleware.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export async function createMiddleware(
4444
buildHelper.copyOpenNextConfig(
4545
options.buildDir,
4646
outputPath,
47-
config.middleware.override?.wrapper === "cloudflare",
47+
await buildHelper.isEdgeRuntime(config.middleware.override),
4848
);
4949

5050
// Bundle middleware

packages/open-next/src/build/edge/createEdgeBundle.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import logger from "../../logger.js";
1818
import { openNextEdgePlugins } from "../../plugins/edge.js";
1919
import { openNextReplacementPlugin } from "../../plugins/replacement.js";
2020
import { openNextResolvePlugin } from "../../plugins/resolve.js";
21-
import type { BuildOptions } from "../helper.js";
21+
import { type BuildOptions, isEdgeRuntime } from "../helper.js";
2222
import { copyOpenNextConfig, esbuildAsync } from "../helper.js";
2323

2424
interface BuildEdgeBundleOptions {
@@ -52,10 +52,7 @@ export async function buildEdgeBundle({
5252
onlyBuildOnce,
5353
name,
5454
}: BuildEdgeBundleOptions) {
55-
const isInCloudfare =
56-
typeof overrides?.wrapper === "string"
57-
? overrides.wrapper === "cloudflare"
58-
: (await overrides?.wrapper?.())?.edgeRuntime;
55+
const isInCloudfare = await isEdgeRuntime(overrides);
5956
await esbuildAsync(
6057
{
6158
entryPoints: [entrypoint],

packages/open-next/src/build/helper.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import url from "node:url";
55

66
import type { BuildOptions as ESBuildOptions } from "esbuild";
77
import { build as buildAsync, buildSync } from "esbuild";
8-
import type { OpenNextConfig } from "types/open-next.js";
8+
import type {
9+
DefaultOverrideOptions,
10+
OpenNextConfig,
11+
} from "types/open-next.js";
912

1013
import logger from "../logger.js";
1114

@@ -356,3 +359,18 @@ export function initOutputDir(options: BuildOptions) {
356359
fs.mkdirSync(buildDir, { recursive: true });
357360
fs.cpSync(options.tempBuildDir, buildDir, { recursive: true });
358361
}
362+
363+
/**
364+
* @returns Whether the edge runtime is used
365+
*/
366+
export async function isEdgeRuntime(
367+
overrides: DefaultOverrideOptions | undefined,
368+
) {
369+
if (!overrides?.wrapper) {
370+
return false;
371+
}
372+
if (typeof overrides.wrapper === "string") {
373+
return overrides.wrapper.startsWith("cloudflare");
374+
}
375+
return (await overrides?.wrapper?.())?.edgeRuntime;
376+
}

packages/open-next/src/build/validateConfig.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ const compatibilityMatrix: Record<IncludedWrapper, IncludedConverter[]> = {
1717
],
1818
"aws-lambda-streaming": ["aws-apigw-v2"],
1919
cloudflare: ["edge"],
20-
"cloudflare-streaming": ["edge"],
20+
"cloudflare-edge": ["edge"],
21+
"cloudflare-node": ["edge"],
2122
node: ["node"],
2223
dummy: [],
2324
};

packages/open-next/src/helpers/withCloudflare.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export function withCloudflare<
9494
routes: [fn.routes],
9595
patterns: [fn.patterns],
9696
override: {
97-
wrapper: "cloudflare",
97+
wrapper: "cloudflare-edge",
9898
converter: "edge",
9999
},
100100
}
@@ -110,7 +110,7 @@ export function withCloudflare<
110110
external: true,
111111
originResolver: "pattern-env",
112112
override: {
113-
wrapper: "cloudflare",
113+
wrapper: "cloudflare-edge",
114114
converter: "edge",
115115
},
116116
},

packages/open-next/src/overrides/wrappers/cloudflare.ts renamed to packages/open-next/src/overrides/wrappers/cloudflare-edge.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ const handler: WrapperHandler<
6262

6363
export default {
6464
wrapper: handler,
65-
name: "cloudflare",
65+
name: "cloudflare-edge",
6666
supportStreaming: true,
6767
edgeRuntime: true,
6868
} satisfies Wrapper<InternalEvent, InternalResult | MiddlewareOutputEvent>;

packages/open-next/src/overrides/wrappers/cloudflare-streaming.ts renamed to packages/open-next/src/overrides/wrappers/cloudflare-node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,6 @@ const handler: WrapperHandler<InternalEvent, InternalResult> =
6767

6868
export default {
6969
wrapper: handler,
70-
name: "cloudflare-streaming",
70+
name: "cloudflare-node",
7171
supportStreaming: true,
7272
} satisfies Wrapper;

packages/open-next/src/plugins/resolve.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,19 @@ export function openNextResolvePlugin({
8484
build.onLoad({ filter: /core(\/|\\)resolve\.js/g }, async (args) => {
8585
let contents = readFileSync(args.path, "utf-8");
8686
const overridesEntries = Object.entries(overrides ?? {});
87-
for (const [overrideName, overrideValue] of overridesEntries) {
87+
for (let [overrideName, overrideValue] of overridesEntries) {
8888
if (!overrideValue) {
8989
continue;
9090
}
91+
if (overrideName === "wrapper" && overrideValue === "cloudflare") {
92+
// "cloudflare" is deprecated and replace by "cloudflare-edge".
93+
overrideValue = "cloudflare-edge";
94+
}
9195
const folder =
9296
nameToFolder[overrideName as keyof typeof nameToFolder];
9397
const defaultOverride =
9498
defaultOverrides[overrideName as keyof typeof defaultOverrides];
99+
95100
contents = contents.replace(
96101
`../overrides/${folder}/${defaultOverride}.js`,
97102
`../overrides/${folder}/${getOverrideOrDummy(overrideValue)}.js`,

packages/open-next/src/types/open-next.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,10 @@ export type IncludedWrapper =
8080
| "aws-lambda"
8181
| "aws-lambda-streaming"
8282
| "node"
83+
// @deprecated - use ""cloudflare-edge" instead.
8384
| "cloudflare"
84-
| "cloudflare-streaming"
85+
| "cloudflare-edge"
86+
| "cloudflare-node"
8587
| "dummy";
8688

8789
export type IncludedConverter =

0 commit comments

Comments
 (0)