Skip to content

Commit 5037f57

Browse files
authored
refactor: update naming and layout (#499)
1 parent 958f322 commit 5037f57

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+213
-215
lines changed

.changeset/cyan-donuts-perform.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
"@opennextjs/cloudflare": minor
3+
---
4+
5+
Refactor the codebase for consistency
6+
7+
BREAKING CHANGE
8+
9+
Overrides:
10+
11+
Overrides now live in `@opennextjs/cloudflare/overrides` and some files have been renamed.
12+
13+
- Incremental cache overrides: `@opennextjs/cloudflare/overrides/incremental-cache/...`
14+
- Tag cache overrides: `@opennextjs/cloudflare/overrides/tag-cache/...`
15+
- Queue overrides: `@opennextjs/cloudflare/overrides/queue/...`
16+
17+
For example the KV incremental cache override can be imported as `@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache`.
18+
19+
Environment variables and bindings name changes:
20+
21+
- `NEXT_CACHE_WORKERS_KV` -> `NEXT_INC_CACHE_KV`
22+
- `NEXT_CACHE_R2_...` -> `NEXT_INC_CACHE_R2_...`
23+
- `NEXT_CACHE_D1` -> `NEXT_TAG_CACHE_D1`
24+
- `NEXT_CACHE_DO_...` -> `NEXT_TAG_CACHE_DO_...`
25+
- `NEXT_CACHE_DO_REVALIDATION` -> `NEXT_CACHE_DO_QUEUE`
26+
- `NEXT_CACHE_REVALIDATION_WORKER` -> `WORKER_SELF_REFERENCE`
27+
28+
Other:
29+
30+
`NEXT_CACHE_D1_TAGS_TABLE` and `NEXT_CACHE_D1_REVALIDATIONS_TABLE` have been dropped.
31+
The tables have a fixed names `tags` and `revalidations`.

examples/e2e/app-pages-router/open-next.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
3-
import memoryQueue from "@opennextjs/cloudflare/memory-queue";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
3+
import memoryQueue from "@opennextjs/cloudflare/overrides/queue/memory-queue";
44

55
export default defineCloudflareConfig({
66
incrementalCache: kvIncrementalCache,

examples/e2e/app-pages-router/wrangler.jsonc

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
},
1111
"kv_namespaces": [
1212
{
13-
"binding": "NEXT_CACHE_WORKERS_KV",
13+
"binding": "NEXT_INC_CACHE_KV",
1414
"id": "<BINDING_ID>"
1515
}
1616
],
1717
"services": [
1818
{
19-
"binding": "NEXT_CACHE_REVALIDATION_WORKER",
19+
"binding": "WORKER_SELF_REFERENCE",
2020
"service": "app-pages-router"
2121
}
2222
]

examples/e2e/app-router/open-next.config.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
3-
import shardedTagCache from "@opennextjs/cloudflare/do-sharded-tag-cache";
4-
import doQueue from "@opennextjs/cloudflare/durable-queue";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
3+
import shardedTagCache from "@opennextjs/cloudflare/overrides/tag-cache/do-sharded-tag-cache";
4+
import doQueue from "@opennextjs/cloudflare/overrides/queue/do-queue";
55

66
export default defineCloudflareConfig({
77
incrementalCache: kvIncrementalCache,
88
// With such a configuration, we could have up to 12 * (8 + 2) = 120 Durable Objects instances
99
tagCache: shardedTagCache({
10-
numberOfShards: 12,
10+
baseShardSize: 12,
1111
enableShardReplication: true,
1212
shardReplicationOptions: {
1313
numberOfSoftReplicas: 8,

examples/e2e/app-router/wrangler.jsonc

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
"durable_objects": {
1212
"bindings": [
1313
{
14-
"name": "NEXT_CACHE_REVALIDATION_DURABLE_OBJECT",
14+
"name": "NEXT_CACHE_DO_QUEUE",
1515
"class_name": "DurableObjectQueueHandler"
1616
},
1717
{
18-
"name": "NEXT_CACHE_DO_SHARDED",
18+
"name": "NEXT_TAG_CACHE_DO_SHARDED",
1919
"class_name": "DOShardedTagCache"
2020
}
2121
]
@@ -28,13 +28,13 @@
2828
],
2929
"kv_namespaces": [
3030
{
31-
"binding": "NEXT_CACHE_WORKERS_KV",
31+
"binding": "NEXT_INC_CACHE_KV",
3232
"id": "<BINDING_ID>"
3333
}
3434
],
3535
"services": [
3636
{
37-
"binding": "NEXT_CACHE_REVALIDATION_WORKER",
37+
"binding": "WORKER_SELF_REFERENCE",
3838
"service": "app-router"
3939
}
4040
]

examples/e2e/pages-router/open-next.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
3-
import memoryQueue from "@opennextjs/cloudflare/memory-queue";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
3+
import memoryQueue from "@opennextjs/cloudflare/overrides/queue/memory-queue";
44

55
export default defineCloudflareConfig({
66
incrementalCache: kvIncrementalCache,

examples/e2e/pages-router/wrangler.jsonc

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
},
1111
"kv_namespaces": [
1212
{
13-
"binding": "NEXT_CACHE_WORKERS_KV",
13+
"binding": "NEXT_INC_CACHE_KV",
1414
"id": "<BINDING_ID>"
1515
}
1616
],
1717
"services": [
1818
{
19-
"binding": "NEXT_CACHE_REVALIDATION_WORKER",
19+
"binding": "WORKER_SELF_REFERENCE",
2020
"service": "pages-router"
2121
}
2222
]

examples/overrides/d1-tag-next/open-next.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
3-
import d1NextTagCache from "@opennextjs/cloudflare/d1-next-tag-cache";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
3+
import d1NextTagCache from "@opennextjs/cloudflare/overrides/tag-cache/d1-next-tag-cache";
44

55
export default defineCloudflareConfig({
66
incrementalCache: kvIncrementalCache,

examples/overrides/d1-tag-next/wrangler.jsonc

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313
},
1414
"kv_namespaces": [
1515
{
16-
"binding": "NEXT_CACHE_WORKERS_KV",
16+
"binding": "NEXT_INC_CACHE_KV",
1717
"id": "<BINDING_ID>"
1818
}
1919
],
2020
"d1_databases": [
2121
{
22-
"binding": "NEXT_CACHE_D1",
23-
"database_id": "NEXT_CACHE_D1",
24-
"database_name": "NEXT_CACHE_D1"
22+
"binding": "NEXT_TAG_CACHE_D1",
23+
"database_id": "NEXT_TAG_CACHE_D1",
24+
"database_name": "NEXT_TAG_CACHE_D1"
2525
}
2626
]
2727
}

examples/overrides/memory-queue/open-next.config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
3-
import memoryQueue from "@opennextjs/cloudflare/memory-queue";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
3+
import memoryQueue from "@opennextjs/cloudflare/overrides/queue/memory-queue";
44

55
export default defineCloudflareConfig({
66
incrementalCache: kvIncrementalCache,

examples/overrides/memory-queue/wrangler.jsonc

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
},
1111
"kv_namespaces": [
1212
{
13-
"binding": "NEXT_CACHE_WORKERS_KV",
13+
"binding": "NEXT_INC_CACHE_KV",
1414
"id": "<BINDING_ID>"
1515
}
1616
],
1717
"services": [
1818
{
19-
"binding": "NEXT_CACHE_REVALIDATION_WORKER",
19+
"binding": "WORKER_SELF_REFERENCE",
2020
"service": "memory-queue"
2121
}
2222
]

examples/overrides/r2-incremental-cache/open-next.config.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import d1TagCache from "@opennextjs/cloudflare/d1-tag-cache";
3-
import memoryQueue from "@opennextjs/cloudflare/memory-queue";
4-
import r2IncrementalCache from "@opennextjs/cloudflare/r2-incremental-cache";
5-
import { withRegionalCache } from "@opennextjs/cloudflare/regional-cache";
2+
import d1TagCache from "@opennextjs/cloudflare/overrides/tag-cache/d1-tag-cache";
3+
import memoryQueue from "@opennextjs/cloudflare/overrides/queue/memory-queue";
4+
import r2IncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/r2-incremental-cache";
5+
import { withRegionalCache } from "@opennextjs/cloudflare/overrides/incremental-cache/regional-cache";
66

77
export default defineCloudflareConfig({
88
incrementalCache: withRegionalCache(r2IncrementalCache, {

examples/overrides/r2-incremental-cache/wrangler.jsonc

+7-7
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@
1212
"e2e": {
1313
"d1_databases": [
1414
{
15-
"binding": "NEXT_CACHE_D1",
16-
"database_id": "NEXT_CACHE_D1",
17-
"database_name": "NEXT_CACHE_D1"
15+
"binding": "NEXT_TAG_CACHE_D1",
16+
"database_id": "NEXT_TAG_CACHE_D1",
17+
"database_name": "NEXT_TAG_CACHE_D1"
1818
}
1919
],
2020
"services": [
2121
{
22-
"binding": "NEXT_CACHE_REVALIDATION_WORKER",
22+
"binding": "WORKER_SELF_REFERENCE",
2323
"service": "r2-incremental-cache-e2e"
2424
}
2525
],
2626
"r2_buckets": [
2727
{
28-
"binding": "NEXT_CACHE_R2_BUCKET",
29-
"bucket_name": "NEXT_CACHE_R2_BUCKET",
30-
"preview_bucket_name": "NEXT_CACHE_R2_BUCKET"
28+
"binding": "NEXT_INC_CACHE_R2_BUCKET",
29+
"bucket_name": "NEXT_INC_CACHE_R2_BUCKET",
30+
"preview_bucket_name": "NEXT_INC_CACHE_R2_BUCKET"
3131
}
3232
]
3333
},

examples/playground14/open-next.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
33

44
export default defineCloudflareConfig({
55
incrementalCache: kvIncrementalCache,

examples/playground14/wrangler.jsonc

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"kv_namespaces": [
1212
{
13-
"binding": "NEXT_CACHE_WORKERS_KV",
13+
"binding": "NEXT_INC_CACHE_KV",
1414
"id": "<BINDING_ID>"
1515
}
1616
],

examples/playground15/open-next.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
33

44
export default defineCloudflareConfig({
55
incrementalCache: kvIncrementalCache,

examples/playground15/wrangler.jsonc

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"kv_namespaces": [
1212
{
13-
"binding": "NEXT_CACHE_WORKERS_KV",
13+
"binding": "NEXT_INC_CACHE_KV",
1414
"id": "<BINDING_ID>"
1515
}
1616
],

examples/ssg-app/open-next.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
33

44
export default defineCloudflareConfig({
55
incrementalCache: kvIncrementalCache,

examples/vercel-blog-starter/open-next.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2-
import kvIncrementalCache from "@opennextjs/cloudflare/kv-cache";
2+
import kvIncrementalCache from "@opennextjs/cloudflare/overrides/incremental-cache/kv-incremental-cache";
33

44
export default defineCloudflareConfig({
55
incrementalCache: kvIncrementalCache,

packages/cloudflare/env.d.ts

-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ declare global {
77
NEXT_PRIVATE_DEBUG_CACHE?: string;
88
OPEN_NEXT_ORIGIN: string;
99
NODE_ENV?: string;
10-
NEXT_CACHE_D1_TAGS_TABLE?: string;
11-
NEXT_CACHE_D1_REVALIDATIONS_TABLE?: string;
1210
}
1311
}
1412
}

packages/cloudflare/src/api/cloudflare-context.ts

+23-23
Original file line numberDiff line numberDiff line change
@@ -12,42 +12,42 @@ declare global {
1212
// Default to "production"
1313
NEXTJS_ENV?: string;
1414

15-
// KV used for the incremental cache
16-
NEXT_CACHE_WORKERS_KV?: KVNamespace;
17-
// D1 db used for the tag cache
18-
NEXT_CACHE_D1?: D1Database;
19-
// D1 table to use for the tag cache for the tag/path mapping
20-
NEXT_CACHE_D1_TAGS_TABLE?: string;
21-
// D1 table to use for the tag cache for storing the tag and their associated revalidation times
22-
NEXT_CACHE_D1_REVALIDATIONS_TABLE?: string;
2315
// Service binding for the worker itself to be able to call itself from within the worker
24-
NEXT_CACHE_REVALIDATION_WORKER?: Service;
16+
WORKER_SELF_REFERENCE?: Service;
17+
18+
// KV used for the incremental cache
19+
NEXT_INC_CACHE_KV?: KVNamespace;
20+
2521
// R2 bucket used for the incremental cache
26-
NEXT_CACHE_R2_BUCKET?: R2Bucket;
22+
NEXT_INC_CACHE_R2_BUCKET?: R2Bucket;
2723
// Prefix used for the R2 incremental cache bucket
28-
NEXT_CACHE_R2_PREFIX?: string;
29-
// Durable Object namespace to use for the durable object queue handler
30-
NEXT_CACHE_REVALIDATION_DURABLE_OBJECT?: DurableObjectNamespace<DurableObjectQueueHandler>;
24+
NEXT_INC_CACHE_R2_PREFIX?: string;
25+
26+
// D1 db used for the tag cache
27+
NEXT_TAG_CACHE_D1?: D1Database;
28+
3129
// Durables object namespace to use for the sharded tag cache
32-
NEXT_CACHE_DO_SHARDED?: DurableObjectNamespace<DOShardedTagCache>;
30+
NEXT_TAG_CACHE_DO_SHARDED?: DurableObjectNamespace<DOShardedTagCache>;
3331
// Queue of failed tag write
34-
// It could be used for monitoring or to reprocess failed writes
35-
// Entirely optional
36-
NEXT_CACHE_DO_SHARDED_DLQ?: Queue;
32+
// Optional, could be used to monitor or reprocess failed writes
33+
NEXT_TAG_CACHE_DO_SHARDED_DLQ?: Queue;
34+
35+
// Durable Object namespace to use for the durable object queue
36+
NEXT_CACHE_DO_QUEUE?: DurableObjectNamespace<DurableObjectQueueHandler>;
3737

38-
// Below are the potential environment variables that can be set by the user to configure the durable object queue handler
38+
// Below are the optional environment variables to configure the durable object queue
3939
// The max number of revalidations that can be processed by the durable worker at the same time
40-
MAX_REVALIDATION_BY_DURABLE_OBJECT?: string;
40+
NEXT_CACHE_DO_QUEUE_MAX_REVALIDATION?: string;
4141
// The max time in milliseconds that a revalidation can take before being considered as failed
42-
REVALIDATION_TIMEOUT_MS?: string;
42+
NEXT_CACHE_DO_QUEUE_REVALIDATION_TIMEOUT_MS?: string;
4343
// The amount of time after which a revalidation will be attempted again if it failed
4444
// If it fails again it will exponentially back off until it reaches the max retry interval
45-
REVALIDATION_RETRY_INTERVAL_MS?: string;
45+
NEXT_CACHE_DO_QUEUE_RETRY_INTERVAL_MS?: string;
4646
// The maximum number of attempts that can be made to revalidate a path
47-
MAX_REVALIDATION_ATTEMPTS?: string;
47+
NEXT_CACHE_DO_QUEUE_MAX_NUM_REVALIDATIONS?: string;
4848
// Disable SQLite for the durable object queue handler
4949
// This can be safely used if you don't use an eventually consistent incremental cache (i.e. R2 without the regional cache for example)
50-
REVALIDATION_DO_DISABLE_SQLITE?: string;
50+
NEXT_CACHE_DO_QUEUE_DISABLE_SQLITE?: string;
5151
}
5252
}
5353

packages/cloudflare/src/api/constants.ts

-1
This file was deleted.

packages/cloudflare/src/api/durable-objects/queue.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const createDurableObjectQueue = ({
3737
};
3838
// eslint-disable-next-line @typescript-eslint/no-explicit-any
3939
return new DurableObjectQueueHandler(mockState as any, {
40-
NEXT_CACHE_REVALIDATION_WORKER: {
40+
WORKER_SELF_REFERENCE: {
4141
fetch: vi.fn().mockReturnValue(
4242
new Promise<Response>((res) =>
4343
setTimeout(
@@ -54,7 +54,7 @@ const createDurableObjectQueue = ({
5454
),
5555
connect: vi.fn(),
5656
},
57-
REVALIDATION_DO_DISABLE_SQLITE: disableSQLite ? "true" : undefined,
57+
NEXT_CACHE_DO_QUEUE_DISABLE_SQLITE: disableSQLite ? "true" : undefined,
5858
});
5959
};
6060

0 commit comments

Comments
 (0)