mailjet / mailjet-apiv3-nodejs

[API v3] Official Mailjet API v3 NodeJS wrapper
https://dev.mailjet.com
MIT License
235 stars 69 forks source link

broken typings #226

Closed TrejGun closed 1 year ago

TrejGun commented 1 year ago

mailjet typings states that Client is exported as named export

import HttpMethods from './request/HttpMethods';
import Request from './request/index';
import Client from './client/index';
declare class Mailjet extends Client {
    static Request: typeof Request;
    static HttpMethods: typeof HttpMethods;
}
export * from './types/api';
export { Client, Request, HttpMethods };
export default Mailjet;

but when I import

import { Client } from "node-mailjet";

that is transformed by typescript into

const mailjet_constants_1 = require("./mailjet.constants");
node_mailjet_1.Client.apiConnect(options.publicKey, options.privateKey);

the Client is undefined, probably because I actually import

declare class Mailjet extends Client {
    static Request: typeof Request;
    static HttpMethods: typeof HttpMethods;
}

how ever when I import

import Client from "node-mailjet";

that is transformed by typescript into

const node_mailjet_1 = __importDefault(require("node-mailjet"));
node_mailjet_1.default.apiConnect(options.publicKey, options.privateKey);

it works

ai-wintermute commented 1 year ago

Hi @TrejGun what version of the library do you use?

TrejGun commented 1 year ago

5.1.1 latest at the moment

ai-wintermute commented 1 year ago

Hi @TrejGun can you please check the latest (6.0.0) version of the package? It has fixes for TypeScript.

alexbruno commented 1 year ago

I'm trying the latest (6.0.0) with TypeScript and it is breaking the build:

[2:06:14 AM] Starting compilation in watch mode...

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/request/Request.d.ts:2:25 - error TS2307: Cannot find module '@custom/types' or its corresponding type declarations.

2 import { TObject } from '@custom/types';
                          ~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/request/index.d.ts:1:25 - error TS2307: Cannot find module '@custom/types' or its corresponding type declarations.

1 import { TObject } from '@custom/types';
                          ~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/request/index.d.ts:2:55 - error TS2307: Cannot find module '@mailjet/types/api/LibraryResponse' or its corresponding type declarations.

2 import { LibraryResponse, LibraryLocalResponse } from '@mailjet/types/api/LibraryResponse';
                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Campaign.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Contact.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Message.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/MessageEvent.d.ts:1:25 - error TS2307: Cannot find module '@mailjet/types/api/Message' or its corresponding type declarations.

1 import { Message } from '@mailjet/types/api/Message';
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/MessageEvent.d.ts:2:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

2 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Parse.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/SMSMessage.d.ts:1:29 - error TS2307: Cannot find module '@mailjet/types/api/SendMessage' or its corresponding type declarations.

1 import { SendMessage } from '@mailjet/types/api/SendMessage';
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/SMSMessage.d.ts:2:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

2 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Segmentation.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/SendEmail.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/SenderAddressAndDomain.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Setting.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Statistic.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Statistic.d.ts:2:25 - error TS2307: Cannot find module '@mailjet/types/api/Message' or its corresponding type declarations.

2 import { Message } from '@mailjet/types/api/Message';
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Template.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/node-mailjet@6.0.0/node_modules/node-mailjet/declarations/types/api/Webhook.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

[2:06:17 AM] Found 19 errors. Watching for file changes.
TrejGun commented 1 year ago

I do not see any difference in typings

nip10 commented 1 year ago

Same issue. Reverted to 5.1.1 for now.

node_modules/node-mailjet/declarations/request/index.d.ts:1:25 - error TS2307: Cannot find module '@custom/types' or its corresponding type declarations.

1 import { TObject } from '@custom/types';
                          ~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/request/index.d.ts:2:55 - error TS2307: Cannot find module '@mailjet/types/api/LibraryResponse' or its corresponding type declarations.

2 import { LibraryResponse, LibraryLocalResponse } from '@mailjet/types/api/LibraryResponse';
                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/request/Request.d.ts:2:25 - error TS2307: Cannot find module '@custom/types' or its corresponding type declarations.

2 import { TObject } from '@custom/types';
                          ~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Campaign.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Contact.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Message.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/MessageEvent.d.ts:1:25 - error TS2307: Cannot find module '@mailjet/types/api/Message' or its corresponding type declarations.

1 import { Message } from '@mailjet/types/api/Message';
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/MessageEvent.d.ts:2:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

2 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Parse.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Segmentation.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/SendEmail.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/SenderAddressAndDomain.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Setting.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/SMSMessage.d.ts:1:29 - error TS2307: Cannot find module '@mailjet/types/api/SendMessage' or its corresponding type declarations.

1 import { SendMessage } from '@mailjet/types/api/SendMessage';
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/SMSMessage.d.ts:2:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

2 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Statistic.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Statistic.d.ts:2:25 - error TS2307: Cannot find module '@mailjet/types/api/Message' or its corresponding type declarations.

2 import { Message } from '@mailjet/types/api/Message';
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Template.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/node-mailjet/declarations/types/api/Webhook.d.ts:1:24 - error TS2307: Cannot find module '@mailjet/types/api/Common' or its corresponding type declarations.

1 import { Common } from '@mailjet/types/api/Common';
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~

Found 19 errors in 15 files.

Errors  Files
     2  node_modules/node-mailjet/declarations/request/index.d.ts:1
     1  node_modules/node-mailjet/declarations/request/Request.d.ts:2
     1  node_modules/node-mailjet/declarations/types/api/Campaign.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Contact.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Message.d.ts:1
     2  node_modules/node-mailjet/declarations/types/api/MessageEvent.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Parse.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Segmentation.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/SendEmail.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/SenderAddressAndDomain.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Setting.d.ts:1
     2  node_modules/node-mailjet/declarations/types/api/SMSMessage.d.ts:1
     2  node_modules/node-mailjet/declarations/types/api/Statistic.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Template.d.ts:1
     1  node_modules/node-mailjet/declarations/types/api/Webhook.d.ts:1
alexbruno commented 1 year ago

@nip10 my solution is: to give up on the Mailjet module and use the REST API directly, with an HTTP lib if you prefer. I made it in my code, dropping this module and implementing a POST request to the API using the native Node.js https module.

nip10 commented 1 year ago

@alexbruno According to the changelog, there are no changes besides improved typescript support, so v5.1.1 is fine for me

ai-wintermute commented 1 year ago

The new 6.0.1 version with the fix was published. Please check and let me know if you have any issues.

TrejGun commented 1 year ago
import Client from "node-mailjet";

Client.apiConnect(options.publicKey, options.privateKey);

works

import { Client } from "node-mailjet";

Client.apiConnect(options.publicKey, options.privateKey);

fails with

image
ai-wintermute commented 1 year ago

New version 6.0.2 is published with the fixes. Please check: https://github.com/mailjet/mailjet-apiv3-nodejs/releases/tag/v6.0.2 Readme examples were updated as well.