nuxt-mail
Version:
Adds email sending capability to a Nuxt.js app. Adds a server route, an injected variable, and uses nodemailer to send emails.
35 lines • 1.15 kB
JavaScript
import { addImports, addPlugin, addServerHandler, addServerPlugin, createResolver, defineNuxtModule, useRuntimeConfig } from "@nuxt/kit";
import defu from "defu";
import checkOptions from "./check-options.js";
import normalizeOptions from "./normalize-options.js";
const resolver = createResolver(import.meta.url);
export default defineNuxtModule({
meta: {
compatibility: {
nuxt: ">=3.0.0"
},
configKey: "mail",
name: "nuxt-mail"
},
setup: (optionsInput, nuxt) => {
const options = defu(optionsInput, nuxt.options.runtimeConfig.mail, {
message: [],
smtp: null
});
nuxt.options.runtimeConfig.mail = normalizeOptions(options);
if (!nuxt.options._prepare) {
const resolvedOptions = normalizeOptions(useRuntimeConfig().mail);
checkOptions(resolvedOptions);
}
addServerPlugin(resolver.resolve("./server-plugin"));
addServerHandler({
handler: resolver.resolve("./server-handler.post"),
route: "/mail/send"
});
addImports([{
from: resolver.resolve("./composable"),
name: "useMail"
}]);
addPlugin(resolver.resolve(`./plugin`));
}
});