Mailchimp i Node.js s TypeScript pitanjem za početnike: Import vs Require


Stvaram aplikaciju koja šalje određene transakcijske e-mailove koristeći Mailchimp.

Ovdje imaju sjajnu dokumentaciju: https://mailchimp.com/developer/api/transactional/messages/send-using-message-template/

Ali koristim TypeScript, pa linija:

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

Ne radi, dobivam sljedeću pogrešku:

Error: Cannot find module 'mailchimp_transactional'

Znam da je ovo nešto malo, ali nisam siguran kako uopće to zaobići. Pronašao sam članak koji opisuje kako stvoriti vlastitu datoteku tipova ovdje: '@mailchimp/mailchimp_marketing/types.d.ts' nije modul u nodeJs-u

Ali mora postojati brže i jednostavnije rješenje. Također, nije jasno kako postaviti API ključ u tom slučaju.

Pokušao sam uvesti modul koji je @mailchimp/mailchimp_transactional što nije uspjelo. Naravno, također sam pokrenuo npm install @mailchimp/mailchimp_transactional

Bila bi cijenjena svaka pomoć, ovdje je potpuni primjer za slučaj da pomogne.

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);
}

Odgovor #1

Ako netko bude nesretan da se suoči s ovim problemom jer Mailchipova dokumentacija ne podržava TypeScript postavku, i niste sigurni kako to 'samo raditi', evo odgovora:

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

Ovo izravno povlači JavaScript datoteku, a zatim druga linija inicijalizira objekt.

Sretno svima!

Odgovor #2

Od ožujka 2022. tipovi su dodani u DefinitelyTyped i mogu se pristupiti pokretanjem

npm install --save-dev @types/mailchimp__mailchimp_transactional

Povezani članci