@@ -363,20 +363,24 @@ export interface SplittedFunctionOptions extends FunctionOptions {
363363 patterns : string [ ] ;
364364}
365365
366- export interface OpenNextConfig {
367- default : FunctionOptions ;
368- functions ?: Record < string , SplittedFunctionOptions > ;
369-
366+ /**
367+ * MiddlewareConfig that applies to both external and internal middlewares
368+ *
369+ * Note: this type is internal and included in both `ExternalMiddlewareConfig` and `InternalMiddlewareConfig`
370+ */
371+ type CommonMiddlewareConfig = {
370372 /**
371- * Override the default middleware
372- * If you set this options, the middleware need to be deployed separately.
373- * It supports both edge and node runtime.
374- * @default undefined
373+ * The assetResolver is used to resolve assets in the routing layer.
374+ *
375+ * @default "dummy"
375376 */
376- middleware ?: DefaultFunctionOptions & {
377- //We force the middleware to be a function
378- external : true ;
377+ assetResolver ?: IncludedAssetResolver | LazyLoadedOverride < AssetResolver > ;
378+ } ;
379379
380+ /** MiddlewareConfig that applies to external middlewares only */
381+ export type ExternalMiddlewareConfig = DefaultFunctionOptions &
382+ CommonMiddlewareConfig & {
383+ external : true ;
380384 /**
381385 * The runtime used by next for the middleware.
382386 * @default "edge"
@@ -400,15 +404,25 @@ export interface OpenNextConfig {
400404 originResolver ?:
401405 | IncludedOriginResolver
402406 | LazyLoadedOverride < OriginResolver > ;
403-
404- /**
405- * The assetResolver is used to resolve assets in the routing layer.
406- *
407- * @default "dummy"
408- */
409- assetResolver ?: IncludedAssetResolver | LazyLoadedOverride < AssetResolver > ;
410407 } ;
411408
409+ /** MiddlewareConfig that applies to internal middlewares only */
410+ export type InternalMiddlewareConfig = {
411+ external : false ;
412+ } & CommonMiddlewareConfig ;
413+
414+ export interface OpenNextConfig {
415+ default : FunctionOptions ;
416+ functions ?: Record < string , SplittedFunctionOptions > ;
417+
418+ /**
419+ * Override the default middleware
420+ * When `external` is true, the middleware need to be deployed separately.
421+ * It supports both edge and node runtime.
422+ * @default undefined - Which is equivalent to `external: false`
423+ */
424+ middleware ?: ExternalMiddlewareConfig | InternalMiddlewareConfig ;
425+
412426 /**
413427 * Override the default warmer
414428 * By default, works for lambda only.
0 commit comments