diff --git a/packages/nitro/src/index.ts b/packages/nitro/src/index.ts index da143f39c2..7cf6856ef7 100644 --- a/packages/nitro/src/index.ts +++ b/packages/nitro/src/index.ts @@ -32,19 +32,26 @@ export default function slsModule () { // TODO: render:setupMiddleware hook // TODO: support m.prefix and m.route nuxt.hook('modules:done', () => { + const unsupported = [] for (let m of nuxt.options.serverMiddleware) { if (typeof m === 'string') { m = { handler: m } } - if (typeof m.handler !== 'string') { - console.warn('[Serverless] Unsupported serverMiddleware format:', m) - continue - } const route = m.path || m.route || '/' const handle = nuxt.resolver.resolvePath(m.handler || m.handle) + + if (typeof handle !== 'string' || typeof route !== 'string') { + unsupported.push(m) + continue + } + options.serverMiddleware.push({ route, handle }) } + if (unsupported.length) { + console.warn('[serverless] Unsupported Server middleware used: ', unsupported) + console.info('Supported format is `{ path: string, handler: string }` and handler should export `(req, res) => {}`') + } }) if (options.nuxtHooks) {