UNPKG

nuxt-pdfmake

Version:

Easily generate PDFs in Nuxt.js using pdfmake

70 lines (66 loc) 1.94 kB
import { defineNuxtModule, logger, createResolver, addPlugin, addImports } from '@nuxt/kit'; const name = "nuxt-pdfmake"; const version = "0.0.47"; const module = defineNuxtModule({ meta: { name, version, configKey: "pdfmake", compatibility: { nuxt: "^3.0.0 || ^4.0.0" } }, // Default configuration options of the Nuxt module defaults: { enabled: true, enableComposable: true, enableDevtools: true, includeFontPresets: true }, setup(options, nuxt) { if (!options.enabled) { logger.info("[nuxt-pdfmake] Module is disabled"); } const resolver = createResolver(import.meta.url); const runtimeDir = resolver.resolve("./runtime"); nuxt.options.build.transpile.push(runtimeDir); nuxt.options.alias["#pdfmake"] = runtimeDir; nuxt.options.app.head.script ||= []; nuxt.options.app.head.script.push( { src: "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.12/pdfmake.min.js", defer: true }, { src: "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.12/vfs_fonts.min.js", defer: true } ); addPlugin(resolver.resolve("./runtime/pdfmake.client")); if (options.enableComposable) { addImports({ from: resolver.resolve("./runtime/composables/usePDFMake"), name: "usePDFMake" }); } if (options.includeFontPresets) { addImports({ from: resolver.resolve("./runtime/composables/fontPresets"), name: "useFontPresets" }); } if (!options.enableDevtools) return; nuxt.hook("devtools:customTabs", (iframeTabs) => { iframeTabs.push({ name: "pdfmake", title: "PDFMake", icon: "i-vscode-icons-file-type-pdf2", view: { type: "iframe", src: "https://pdfmake.github.io/docs/0.1/getting-started/client-side/" } }); }); } }); export { module as default };