Búsqueda de sitios web

Pregunta de novato sobre Mailchimp y Node.js con TypeScript: Importar vs Requerir


Estoy creando una aplicación que envía ciertos correos electrónicos transaccionales usando Mailchimp.

Tienen una gran documentación aquí: https://mailchimp.com/developer/api/transactional/messages/send-using-message-template/

Pero estoy usando TypeScript, así que la línea:

var mailchimp = require("mailchimp_transactional")("API_KEY");

No funciona, recibo el siguiente error:

Error: Cannot find module 'mailchimp_transactional'

Sé que esto es algo pequeño, pero no estoy seguro de cómo solucionarlo en absoluto. Encontré un artículo que describe cómo crear tu propio archivo de tipos aquí: '@mailchimp/mailchimp_marketing/types.d.ts' no es un módulo en NodeJs

Pero tiene que haber una solución más rápida y sencilla. Además, no queda claro cómo configurar la clave de API en ese caso.

He intentado importar el módulo que es @mailchimp/mailchimp_transactional, lo cual no funcionó. Por supuesto, también he ejecutado npm install @mailchimp/mailchimp_transactional

Cualquier ayuda sería apreciada, aquí hay un ejemplo completo por si acaso ayuda.

var mailchimp = require("mailchimp_transactional")("API_KEY");

export const testSendEmailFromTemplate = async () => {
    let mcbody = {
        template_name: "my-template",
        template_content: [{
            name:"firstname",
            content:"INJECTED.BY.TEMPLATE.CONT.firstname"
        },
        {
            name:"surname",
            content:"INJECTED.BY.TEMPLATE.CONT.surname"
        }],
        message: {
            to:{
                email:"[email ",
                name: "Test",
                type: "to"
            }
        },
        async:true
    };
    return await mailchimp.messages.sendTemplate(mcbody);
}

Respuesta #1

Si alguien tiene la mala suerte de enfrentarse a este problema porque la documentación de Mailchip no se adapta a la configuración de TypeScript, y no está seguro de cómo hacer que 'simplemente funcione', aquí está la respuesta:

const mailchimpFactory = require("@mailchimp/mailchimp_transactional/src/index.js");
const mailchimp = mailchimpFactory("PUTKEYHERE");

Esto carga el archivo de JavaScript directamente y luego la segunda línea inicializa el objeto.

¡Buena suerte a todos!

Respuesta #2

A partir de marzo de 2022, los tipos se han agregado a DefinitelyTyped y se pueden acceder ejecutando

npm install --save-dev @types/mailchimp__mailchimp_transactional

Artículos relacionados