UNPKG

nuxt-mapbox

Version:

Elegant Mapbox GL JS integration with Nuxt

38 lines (35 loc) 1.17 kB
import { defineNuxtModule, createResolver, addImportsDir, addComponentsDir } from '@nuxt/kit'; import { defu } from 'defu'; const module = defineNuxtModule({ meta: { name: "nuxt-mapbox", configKey: "mapbox" }, // Default configuration options of the Nuxt module defaults: { accessToken: "", persistent: true }, setup(options, nuxt) { const resolver = createResolver(import.meta.url); if (options.persistent) nuxt.options.app.keepalive = true; nuxt.options.alias["mapbox-gl"] = "mapbox-gl"; const appConfig = nuxt.options.appConfig; appConfig._MAPBOX_CONFIG = { accessToken: options.accessToken, baseApiUrl: options.baseApiUrl, workerUrl: options.workerUrl, workerCount: options.workerCount, prewarm: options.prewarm, RTLTextPlugin: options.RTLTextPlugin }; nuxt.options.runtimeConfig.public.mapbox = defu(nuxt.options.runtimeConfig.public.mapbox, options); addImportsDir(resolver.resolve("./runtime/composables")); addComponentsDir({ path: resolver.resolve("./runtime/components"), prefix: "mapbox" }); } }); export { module as default };