astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
30 lines (29 loc) • 770 B
JavaScript
/**
* Resolves the middleware mode from adapter features.
* Handles backward compatibility with the deprecated `edgeMiddleware` flag.
*
* @example
* ```ts
* // New way
* resolveMiddlewareMode({ middlewareMode: 'always' }) // 'always'
*
* // Backward compatibility
* resolveMiddlewareMode({ edgeMiddleware: true }) // 'edge'
* resolveMiddlewareMode({ edgeMiddleware: false }) // 'classic'
*
* // Default
* resolveMiddlewareMode({}) // 'classic'
* ```
*/
export function resolveMiddlewareMode(features) {
// New property takes precedence
if (features?.middlewareMode) {
return features.middlewareMode;
}
// Backward compatibility with deprecated edgeMiddleware flag
if (features?.edgeMiddleware === true) {
return "edge";
}
// Default mode
return "classic";
}