import fs from "fs"; import { join } from "path"; const createEmailFunction = ({ netlifyConfig, }: { netlifyConfig: { functions: { [key: string]: { included_files: string[] } } }; }): void => { console.info("Creating function for Netlify Emails integration"); const emailsDirectory = process.env.NETLIFY_EMAILS_DIRECTORY ?? "./emails"; if (netlifyConfig.functions?.emails?.included_files !== undefined) { netlifyConfig.functions.emails.included_files.push(`${emailsDirectory}/**`); } else { netlifyConfig.functions.emails = { ...netlifyConfig.functions.emails, included_files: [`${emailsDirectory}/**`], }; } const emailFunctionDirectory = join( ".netlify", "functions-internal", "emails" ); fs.mkdirSync(emailFunctionDirectory, { recursive: true, }); // Clean the email function directory fs.readdirSync(emailFunctionDirectory).forEach((file) => { fs.unlinkSync(join(emailFunctionDirectory, file)); }); fs.copyFileSync( join(__dirname, "../src", "handler", "index.js"), join(emailFunctionDirectory, "index.js") ); }; export const onBuild = createEmailFunction; export const onDev = createEmailFunction;