@mitre/nuxt-smartscript
Version:
Smart typography transformations for Nuxt - automatic superscript, subscript, and symbol formatting
38 lines (35 loc) • 1.22 kB
JavaScript
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 };