UNPKG

@mitre/nuxt-smartscript

Version:

Smart typography transformations for Nuxt - automatic superscript, subscript, and symbol formatting

38 lines (35 loc) 1.22 kB
import { fileURLToPath } from 'node:url'; import { defineNuxtModule, createResolver, addPlugin, addServerPlugin } from '@nuxt/kit'; import { SHARED_DEFAULTS } from '../dist/runtime/shared-defaults.js'; const module = defineNuxtModule({ meta: { name: "nuxt-smartscript", configKey: "smartscript", compatibility: { nuxt: ">=3.0.0" } }, // Default configuration options - SINGLE SOURCE OF TRUTH defaults: SHARED_DEFAULTS, setup(options, nuxt) { if (!options.enabled) { return; } const resolver = createResolver(import.meta.url); const runtimeDir = fileURLToPath(new URL("./runtime", import.meta.url)); nuxt.options.build.transpile.push(runtimeDir); if (options.client !== false) { addPlugin({ src: resolver.resolve("./runtime/plugin"), mode: "client" }); } const shouldEnableSSR = options.ssr !== false && (!nuxt.options.dev || options.ssr === "force"); if (shouldEnableSSR) { addServerPlugin(resolver.resolve("./runtime/nitro/plugin")); } nuxt.options.css.push(resolver.resolve("./runtime/superscript.css")); nuxt.options.runtimeConfig.public.smartscript = options; } }); export { module as default };