@@ -363,20 +363,24 @@ export interface SplittedFunctionOptions extends FunctionOptions {
363
363
patterns : string [ ] ;
364
364
}
365
365
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 = {
370
372
/**
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"
375
376
*/
376
- middleware ?: DefaultFunctionOptions & {
377
- //We force the middleware to be a function
378
- external : true ;
377
+ assetResolver ?: IncludedAssetResolver | LazyLoadedOverride < AssetResolver > ;
378
+ } ;
379
379
380
+ /** MiddlewareConfig that applies to external middlewares only */
381
+ export type ExternalMiddlewareConfig = DefaultFunctionOptions &
382
+ CommonMiddlewareConfig & {
383
+ external : true ;
380
384
/**
381
385
* The runtime used by next for the middleware.
382
386
* @default "edge"
@@ -400,15 +404,25 @@ export interface OpenNextConfig {
400
404
originResolver ?:
401
405
| IncludedOriginResolver
402
406
| 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 > ;
410
407
} ;
411
408
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
+
412
426
/**
413
427
* Override the default warmer
414
428
* By default, works for lambda only.
0 commit comments