Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add defineCloudflareConfig utility #412

Merged
merged 23 commits into from
Feb 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8b3e3bc
add `defineConfig` utility
dario-piotrowicz Feb 25, 2025
508ec2c
add `defineConfig` utility
dario-piotrowicz Feb 25, 2025
8017fec
`defineConfig` -> `defineCloudflareConfig`
dario-piotrowicz Feb 26, 2025
d56c5b0
remove unnecessary `dangerous.enableCacheInterception` option
dario-piotrowicz Feb 26, 2025
36cb6d0
improve jsdoc comments
dario-piotrowicz Feb 26, 2025
fe3a51b
update some missing `open-next.config.ts` files
dario-piotrowicz Feb 26, 2025
1cb04e3
Update packages/cloudflare/src/api/config.ts
dario-piotrowicz Feb 26, 2025
6881358
remove unnecessary empty object
dario-piotrowicz Feb 26, 2025
ea6e59d
remove unnecessary package.json export
dario-piotrowicz Feb 26, 2025
cbbdd6a
re-export `defineCloudflareConfig` from index
dario-piotrowicz Feb 26, 2025
a95dfcd
reorder `defineCloudflareConfig` import
dario-piotrowicz Feb 26, 2025
24d7032
update jsdoc comments to point to cloudflare caching doc page
dario-piotrowicz Feb 26, 2025
7d00c94
Apply suggestions from code review
dario-piotrowicz Feb 26, 2025
c3973ef
remove unnecessary async await
dario-piotrowicz Feb 27, 2025
b22e564
fix incorrect type
dario-piotrowicz Feb 27, 2025
b9b9ade
add back await
dario-piotrowicz Feb 27, 2025
121c363
bump `@opennextjs/aws` dependency to `https://pkg.pr.new/@opennextjs/…
dario-piotrowicz Feb 27, 2025
1f3e289
Apply suggestions from code review
dario-piotrowicz Feb 27, 2025
f5e69d5
fix broken types
dario-piotrowicz Feb 27, 2025
f29e5c0
use consistent names in overrides
dario-piotrowicz Feb 27, 2025
77d2a25
remove no-longer valid changeset
dario-piotrowicz Feb 27, 2025
9f47151
update some inconsistent imports
dario-piotrowicz Feb 27, 2025
53e43d2
update last missing import
dario-piotrowicz Feb 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .changeset/cold-numbers-bow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
"@opennextjs/cloudflare": patch
---

add `defineCloudflareConfig` utility

this change adds a new `defineCloudflareConfig` utility that developers can use in their `open-next.config.ts`
file to easily generate a configuration compatible with the adapter

Example usage:

```ts
// open-next.config.ts
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";

export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
});
```
26 changes: 2 additions & 24 deletions examples/bugs/gh-119/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
// Unused implementation
incrementalCache: "dummy",
tagCache: "dummy",
queue: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig();
26 changes: 2 additions & 24 deletions examples/bugs/gh-219/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
// Unused implementation
incrementalCache: "dummy",
tagCache: "dummy",
queue: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig();
25 changes: 2 additions & 23 deletions examples/bugs/gh-223/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: "dummy",
tagCache: "dummy",
queue: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig();
26 changes: 2 additions & 24 deletions examples/create-next-app/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
// Unused implementation
incrementalCache: "dummy",
tagCache: "dummy",
queue: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig();
31 changes: 6 additions & 25 deletions examples/e2e/app-pages-router/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,8 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import kvCache from "@opennextjs/cloudflare/kv-cache";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
import memoryQueue from "@opennextjs/cloudflare/memory-queue";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: () => kvCache,
queue: () => memoryQueue,
// Unused implementation
tagCache: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
queue: memoryQueue,
});
33 changes: 8 additions & 25 deletions examples/e2e/app-router/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,10 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import tagCache from "@opennextjs/cloudflare/d1-tag-cache";
import incrementalCache from "@opennextjs/cloudflare/kv-cache";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import d1TagCache from "@opennextjs/cloudflare/d1-tag-cache";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
import memoryQueue from "@opennextjs/cloudflare/memory-queue";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: async () => incrementalCache,
tagCache: () => tagCache,
queue: () => memoryQueue,
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
tagCache: d1TagCache,
queue: memoryQueue,
});
31 changes: 6 additions & 25 deletions examples/e2e/pages-router/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,8 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import kvCache from "@opennextjs/cloudflare/kv-cache";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
import memoryQueue from "@opennextjs/cloudflare/memory-queue";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: () => kvCache,
queue: () => memoryQueue,
// Unused implementation
tagCache: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
queue: memoryQueue,
});
26 changes: 2 additions & 24 deletions examples/middleware/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
// Unused implementation
incrementalCache: "dummy",
tagCache: "dummy",
queue: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig();
26 changes: 2 additions & 24 deletions examples/next-partial-prerendering/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
import type { OpenNextConfig } from '@opennextjs/aws/types/open-next.js';
import { defineCloudflareConfig } from '@opennextjs/cloudflare/config';

const config: OpenNextConfig = {
default: {
override: {
wrapper: 'cloudflare-node',
converter: 'edge',
// Unused implementation
incrementalCache: 'dummy',
tagCache: 'dummy',
queue: 'dummy',
},
},

middleware: {
external: true,
override: {
wrapper: 'cloudflare-edge',
converter: 'edge',
proxyExternalRequest: 'fetch',
},
},
};

export default config;
export default defineCloudflareConfig();
30 changes: 5 additions & 25 deletions examples/playground14/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,6 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import cache from "@opennextjs/cloudflare/kv-cache";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: async () => cache,
queue: "direct",
// Unused implementation
tagCache: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
});
30 changes: 5 additions & 25 deletions examples/playground15/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,6 @@
import type { OpenNextConfig } from "@opennextjs/aws/types/open-next.js";
import cache from "@opennextjs/cloudflare/kv-cache";
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";

const config: OpenNextConfig = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: async () => cache,
queue: "direct",
// Unused implementation
tagCache: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
});
30 changes: 5 additions & 25 deletions examples/ssg-app/open-next.config.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,6 @@
// default open-next.config.ts file created by @opennextjs/cloudflare
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";

import cache from "@opennextjs/cloudflare/kv-cache";

const config = {
default: {
override: {
wrapper: "cloudflare-node",
converter: "edge",
incrementalCache: async () => cache,
tagCache: "dummy",
queue: "dummy",
},
},

middleware: {
external: true,
override: {
wrapper: "cloudflare-edge",
converter: "edge",
proxyExternalRequest: "fetch",
},
},
};

export default config;
export default defineCloudflareConfig({
incrementalCache: kvIncrementalCache,
});
Loading