nuxt-toastify
Version:
Wrapper for Vue 3 Toastify
64 lines (60 loc) • 1.46 kB
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addImports } from '@nuxt/kit';
import { defu } from 'defu';
const name = "nuxt-toastify";
const version = "1.1.0";
const module = defineNuxtModule({
meta: {
name,
version,
configKey: "toastify",
compatibility: {
nuxt: ">=3.0.0"
}
},
defaults: {
multiple: true,
newestOnTop: false,
dangerouslyHTMLString: false,
clearOnUrlChange: false,
rtl: false,
autoClose: 5e3,
hideProgressBar: false,
pauseOnHover: true,
pauseOnFocusLoss: true,
closeOnClick: true,
theme: "auto"
},
setup(options, nuxt) {
const resolver = createResolver(import.meta.url);
nuxt.options.runtimeConfig.toastify = defu(
nuxt.options.runtimeConfig.toastify || {},
options
);
nuxt.options.runtimeConfig.public.toastify = defu(
nuxt.options.runtimeConfig.public.toastify || {},
options
);
nuxt.options.css = [
...nuxt.options.css || [],
"vue3-toastify/dist/index.css"
];
nuxt.options.build.transpile = [
...nuxt.options.build.transpile || [],
"vue3-toastify"
];
addPlugin(resolver.resolve("./runtime/plugin"));
addImports([
{
name: "toast",
as: "useToastify",
from: "vue3-toastify"
},
{
name: "toast",
as: "ToastifyOption",
from: "vue3-toastify"
}
]);
}
});
export { module as default };