UNPKG

nuxt-strapi-blocks-renderer

Version:

Renderer for the strapi CMS blocks text content element.

53 lines (50 loc) 1.51 kB
import { defineNuxtModule, createResolver, addImports, addComponent, addComponentsDir } from '@nuxt/kit'; import { defu } from 'defu'; const module = defineNuxtModule({ meta: { name: "nuxt-strapi-blocks-renderer", configKey: "strapiBlocksRenderer", compatibility: { nuxt: ">=3.0.0" } }, defaults: { prefix: "", blocksPrefix: "StrapiBlocksText" }, setup(options, nuxt) { const { resolve } = createResolver(import.meta.url); nuxt.options.alias["#strapi-blocks-renderer"] = resolve("./runtime"); const runtimeConfig = nuxt.options.runtimeConfig; runtimeConfig.public.strapiBlocksRenderer = defu(runtimeConfig.public.strapiBlocksRenderer, options); addImports([ { name: "useBlocksText", as: "useBlocksText", from: resolve("./runtime/composables/useBlocksText") } ]); addComponent({ name: `${options.prefix}StrapiBlocksText`, filePath: resolve("./runtime/components/StrapiBlocksText.vue"), global: true }); addComponentsDir({ path: resolve("./runtime/components/blocks"), pathPrefix: false, prefix: options.blocksPrefix, global: true, priority: 0 }); nuxt.hook("components:dirs", (componentsDir) => { componentsDir.push({ path: resolve("./runtime/components/blocks"), pathPrefix: false, prefix: options.blocksPrefix, global: true, priority: -10 }); }); } }); export { module as default };