From 504cfd219a66a34549dffbbbbc2ebce3df944ebe Mon Sep 17 00:00:00 2001 From: Baroshem Date: Sat, 15 Oct 2022 14:16:02 +0200 Subject: [PATCH] fix: types and conditions --- playground/nuxt.config.ts | 2 +- src/module.ts | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index d73fd98b..20ba1ea5 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -1,5 +1,5 @@ import { defineNuxtConfig } from 'nuxt/config' -import MyModule from '..' +import MyModule from '../src/module' export default defineNuxtConfig({ modules: [ diff --git a/src/module.ts b/src/module.ts index 5a02d1db..3fa1c427 100644 --- a/src/module.ts +++ b/src/module.ts @@ -4,6 +4,7 @@ import { defineNuxtModule, addServerHandler } from '@nuxt/kit' import defu from 'defu' import { ModuleOptions } from './types' import { defaultSecurityConfig } from './defaultConfig' +import { RuntimeConfig } from '@nuxt/schema' export default defineNuxtModule({ meta: { @@ -15,13 +16,15 @@ export default defineNuxtModule({ const runtimeDir = fileURLToPath(new URL('./runtime', import.meta.url)) nuxt.options.build.transpile.push(runtimeDir) nuxt.options.runtimeConfig.security = defu(nuxt.options.runtimeConfig.security, { - ...options + ...options as RuntimeConfig["security"] }) // Register enabled middlewares to automatically set default values for security response headers. - for (const header in nuxt.options.runtimeConfig.security.headers) { - if (nuxt.options.runtimeConfig.security.headers[header]) { - addServerHandler({ route: nuxt.options.runtimeConfig.security.headers[header].route, handler: resolve(runtimeDir, `server/middleware/headers/${header}`) }) + if (nuxt.options.runtimeConfig.security.headers) { + for (const header in nuxt.options.runtimeConfig.security.headers) { + if (nuxt.options.runtimeConfig.security.headers[header]) { + addServerHandler({ route: nuxt.options.runtimeConfig.security.headers[header].route, handler: resolve(runtimeDir, `server/middleware/headers/${header}`) }) + } } } @@ -46,6 +49,8 @@ export default defineNuxtModule({ addServerHandler({ route: xssValidatorConfig.route, handler: resolve(runtimeDir, 'server/middleware/xssValidator') }) } + // Register corsHandler middleware with default config that will add CORS setup + // Based on '@nozomuikuta/h3-cors' package const corsHandlerConfig = nuxt.options.runtimeConfig.security.corsHandler if (corsHandlerConfig) { addServerHandler({ route: corsHandlerConfig.route, handler: resolve(runtimeDir, 'server/middleware/corsHandler') })