@samk-dev/nuxt-vcalendar
Version:
Integrates V Calendar in Nuxt
57 lines (53 loc) • 1.57 kB
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addComponent } from '@nuxt/kit';
const name = "@samk-dev/nuxt-vcalendar";
const version = "1.0.4";
const module = defineNuxtModule({
meta: {
name,
version,
configKey: "vcalendar",
compatibility: {
bridge: false,
nuxt: "^3.0.0"
}
},
defaults: {
prefix: "V",
defaultCss: true,
autoImports: {
DatePicker: true,
Calendar: true
}
},
setup(moduleOptions, nuxt) {
const resolver = createResolver(import.meta.url);
const nuxtOptions = nuxt.options;
nuxtOptions.runtimeConfig.public.vcalendar ||= {};
nuxtOptions.runtimeConfig.public.vcalendar = moduleOptions.calendarOptions;
nuxtOptions.build.transpile ||= [];
nuxtOptions.build.transpile.push("vcalendar");
nuxtOptions.build.transpile.push("@popperjs/core");
addPlugin(resolver.resolve("runtime/plugin.client"));
if (moduleOptions.defaultCss) {
nuxtOptions.css ||= [];
nuxtOptions.css.push(`v-calendar/style.css`);
}
if (moduleOptions.cssPath) {
nuxtOptions.css ||= [];
nuxtOptions.css.push(moduleOptions.cssPath);
}
if (moduleOptions.autoImports.DatePicker)
addComponent({
name: `${moduleOptions.prefix}DatePicker`,
export: "DatePicker",
filePath: "v-calendar"
});
if (moduleOptions.autoImports.Calendar)
addComponent({
name: `${moduleOptions.prefix}Calendar`,
export: "Calendar",
filePath: "v-calendar"
});
}
});
export { module as default };