1- import { OpenNextConfig } from "@opennextjs/aws/types/open-next" ;
1+ import { BaseOverride , LazyLoadedOverride , OpenNextConfig } from "@opennextjs/aws/types/open-next" ;
22import type { IncrementalCache , Queue , TagCache } from "@opennextjs/aws/types/overrides" ;
33
44export type CloudflareConfigOptions = {
@@ -59,6 +59,7 @@ export type CloudflareConfigOptions = {
5959 */
6060export function defineCloudflareConfig ( options : CloudflareConfigOptions = { } ) : OpenNextConfig {
6161 const { incrementalCache, tagCache, queue } = options ;
62+
6263 return {
6364 default : {
6465 override : {
@@ -81,12 +82,22 @@ export function defineCloudflareConfig(options: CloudflareConfigOptions = {}): O
8182 } ;
8283}
8384
85+ type DummyOrLazyLoadedOverride < T extends BaseOverride > = "dummy" | LazyLoadedOverride < T > ;
86+
87+ type ResolveOverrideReturn < T extends IncrementalCache | TagCache | Queue > = T extends Queue
88+ ? "direct" | DummyOrLazyLoadedOverride < T >
89+ : DummyOrLazyLoadedOverride < T > ;
90+
8491function resolveOverride < T extends IncrementalCache | TagCache | Queue > (
85- value : T | ( ( ) => T | Promise < T > ) | undefined
86- ) : ( ( ) => T | Promise < T > ) | "dummy" {
87- if ( ! value ) {
88- return "dummy" ;
92+ value : undefined | "dummy" | "direct" | T | ( ( ) => T | Promise < T > )
93+ ) : ResolveOverrideReturn < T > {
94+ if ( ! value || value === "dummy" ) {
95+ return "dummy" as ResolveOverrideReturn < T > ;
96+ }
97+
98+ if ( value === "direct" ) {
99+ return "direct" as ResolveOverrideReturn < T > ;
89100 }
90101
91- return typeof value === "function" ? value : ( ) => value ;
102+ return ( typeof value === "function" ? value : ( ) => value ) as ResolveOverrideReturn < T > ;
92103}
0 commit comments