UNPKG

@xsprtd/nuxt-api

Version:

Nuxt API Authentication and Http Client

76 lines (73 loc) 2.17 kB
import { defineNuxtModule, createResolver, addPlugin, addImportsDir, addRouteMiddleware } from '@nuxt/kit'; import defu from 'defu'; import { MODULE_CONFIG_KEY, MODULE_NAME } from '../dist/runtime/helpers/config.js'; const module$1 = defineNuxtModule({ meta: { name: MODULE_NAME, configKey: MODULE_CONFIG_KEY }, defaults: { apiBaseURL: process.env.API_BASE_URL || "", authMode: "cookie", userStateKey: "user", headers: {}, token: { storageKey: "AUTH_TOKEN", storageType: "cookie", responseKey: "token" }, fetchOptions: { retryAttempts: false }, csrf: { cookieName: "XSRF-TOKEN", headerName: "X-XSRF-TOKEN" }, endpoints: { csrf: "/sanctum/csrf-cookie", login: "/api/login", logout: "/api/logout", user: "/api/user" }, redirect: { intendedEnabled: false, login: "/login", postLogin: "/dashboard", postLogout: "/login" }, middlewareNames: { auth: false, guest: false }, errorMessages: { default: "Whoops - something went wrong", csrf: "CSRF token mismatch", unauthenticated: "Unauthenticated" } }, async setup(options, nuxt) { const resolver = createResolver(import.meta.url); const runtimeDir = resolver.resolve("./runtime"); nuxt.options.build.transpile.push(runtimeDir); const moduleOptions = defu( nuxt.options.runtimeConfig.public[MODULE_CONFIG_KEY] || {}, options ); nuxt.options.runtimeConfig.public[MODULE_CONFIG_KEY] = moduleOptions; addPlugin(resolver.resolve("./runtime/plugin")); addImportsDir(resolver.resolve("./runtime/composables")); if (moduleOptions.middlewareNames.auth !== false) { addRouteMiddleware({ name: moduleOptions.middlewareNames.auth, path: resolver.resolve("./runtime/middleware/auth.custom") }); } if (moduleOptions.middlewareNames.guest !== false) { addRouteMiddleware({ name: moduleOptions.middlewareNames.guest, path: resolver.resolve("./runtime/middleware/guest.custom") }); } } }); export { module$1 as default };