UNPKG

vue-yandex-maps

Version:
48 lines (47 loc) 1.8 kB
import { defineNuxtModule, addPlugin, createResolver } from "@nuxt/kit"; import { relative, join } from "path"; const _default = defineNuxtModule({ meta: { name: "vue-yandex-maps", configKey: "yandexMaps", compatibility: { bridge: true } }, setup(options, nuxt) { if (!nuxt.options.runtimeConfig) { nuxt.options.runtimeConfig = { // @ts-expect-error Types error app: {}, // @ts-expect-error Types error public: {} }; } if (!nuxt.options.runtimeConfig.public) nuxt.options.runtimeConfig.public = {}; nuxt.options.runtimeConfig.public.yandexMaps = options; if (!nuxt.options.build.transpile) nuxt.options.build.transpile = []; nuxt.options.build.transpile.push("vue-yandex-maps"); if (!nuxt.options.vite) nuxt.options.vite = {}; if (!nuxt.options.vite.optimizeDeps) nuxt.options.vite.optimizeDeps = {}; if (!nuxt.options.vite.optimizeDeps.exclude) nuxt.options.vite.optimizeDeps.exclude = []; nuxt.options.vite.optimizeDeps.exclude.push("vue-yandex-maps"); nuxt.hook("prepare:types", ({ tsConfig }) => { let typeRoots = tsConfig.compilerOptions.typeRoots; if (!typeRoots) { tsConfig.compilerOptions.typeRoots = []; typeRoots = tsConfig.compilerOptions.typeRoots; } const path = relative(nuxt.options.buildDir, nuxt.options.rootDir); typeRoots.push(join(path, "node_modules/@types")); typeRoots.push(join(path, "node_modules/@yandex/ymaps3-types")); if (!tsConfig.compilerOptions.types) tsConfig.compilerOptions.types = []; tsConfig.compilerOptions.types.push("vue-yandex-maps"); }); addPlugin({ src: createResolver(import.meta.url).resolve("./nuxt3-plugin") }); } }); export { _default as default };