diff --git a/src/index.ts b/src/index.ts index 74b519a..9f93fb1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,14 +1,20 @@ import { defineNuxtModule } from '@nuxt/kit' import { resolve } from 'upath' -import Critters from 'critters' +import Critters, { Options } from 'critters' -export default defineNuxtModule({ +const configKey = 'critters' + +interface CrittersModuleOptions { + config?: Options +} + +export default defineNuxtModule({ name: 'critters', - configKey: 'critters', + configKey, defaults: { // Options passed directly to `critters` config: { - preload: 'media' as 'media' | 'body' | 'swap' | 'js' | 'js-lazy' + preload: 'media' } }, setup (options, nuxt) { @@ -36,3 +42,20 @@ export default defineNuxtModule({ }) } }) + +declare module '@nuxt/types' { + // Nuxt 2.14+ + interface NuxtOptions { + [configKey]: CrittersModuleOptions + } + // Nuxt 2.9 - 2.13 + interface Configuration { + [configKey]: CrittersModuleOptions + } +} + +declare module '@nuxt/kit' { + interface NuxtConfig { + [configKey]: CrittersModuleOptions + } +} diff --git a/tsconfig.json b/tsconfig.json index 2c4a2fa..7a7657c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,6 +15,7 @@ "allowSyntheticDefaultImports": true, "types": [ "node", + "@nuxt/types", "jest" ] },