UNPKG

nuxt-chatgpt

Version:
67 lines (63 loc) 1.86 kB
import { fileURLToPath } from 'url'; import { defineNuxtModule, createResolver, addImportsDir, addServerHandler } from '@nuxt/kit'; import { defu } from 'defu'; const configKey = "chatgpt"; const moduleName = "nuxt-chatgpt"; const nuxtVersion = ">=3.0.0 <5.0.0"; const module$1 = defineNuxtModule({ meta: { name: moduleName, configKey, compatibility: { nuxt: nuxtVersion } }, // Default configuration options of the Nuxt module defaults: { isEnabled: true }, setup(options, nuxt) { const { resolve } = createResolver(import.meta.url); const runtimeDir = fileURLToPath(new URL("./runtime", import.meta.url)); if (!options.apiKey) { return console.warn(`[${moduleName}]: No '${configKey}.apiKey' option provided!`); } if (!options.isEnabled) { return console.warn(`[${moduleName}] module is disabled and will not be loaded.`); } nuxt.options.runtimeConfig[configKey] = defu(nuxt.options.runtimeConfig[configKey], { apiKey: options.apiKey }); addImportsDir(resolve("./runtime/composables")); addServerHandler( { route: "/api/chat", method: "post", handler: resolve(runtimeDir, "server/api/chat") } ); addServerHandler( { route: "/api/chat-completion", method: "post", handler: resolve(runtimeDir, "server/api/chat-completion") } ); addServerHandler( { route: "/api/chat-completion-stream", method: "post", handler: resolve(runtimeDir, "server/api/chat-completion-stream") } ); addServerHandler( { route: "/api/image-generate", method: "post", handler: resolve(runtimeDir, "server/api/image-generate") } ); nuxt.options.build.transpile.push(runtimeDir); } }); export { module$1 as default };