chargebee / chargebee-node

Node.js library for the Chargebee API.
https://apidocs.chargebee.com/docs/api?lang=node
MIT License
46 stars 30 forks source link

Typescript types produce many errors #31

Closed jstevej closed 1 year ago

jstevej commented 1 year ago

When using version v2.25.1 in a Typescript environment, tsc reports many errors from the Typescript types.

Example:

import Chargebee from 'chargebee';

export async function printCustomer(customerId: string): Promise<void> {
    Chargebee.configure({ site: 'mySite', api_key: 'myApiKey' });
    const response = await Chargebee.customer.retrieve(customerId);
    console.log(JSON.stringify(response, null, 4));
}

Running tsc on this input results in the following errors:

node_modules/chargebee/types/resources/Card.d.ts:43:34 - error TS2304: Cannot find name 'ThirdPartyPaymentMethod'.

43       third_party_payment_method:ThirdPartyPaymentMethod;
                                    ~~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/CreditNote.d.ts:175:17 - error TS2304: Cannot find name 'Download'.

175       downloads:Download[];
                    ~~~~~~~~

node_modules/chargebee/types/resources/CreditNote.d.ts:179:16 - error TS2304: Cannot find name 'Download'.

179       download:Download;
                   ~~~~~~~~

node_modules/chargebee/types/resources/Customer.d.ts:143:19 - error TS2304: Cannot find name 'Hierarchy'.

143       hierarchies:Hierarchy[];
                      ~~~~~~~~~

node_modules/chargebee/types/resources/Estimate.d.ts:6:28 - error TS2304: Cannot find name 'SubscriptionEstimate'.

6     subscription_estimate?:SubscriptionEstimate;
                             ~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Estimate.d.ts:7:29 - error TS2304: Cannot find name 'SubscriptionEstimate'.

7     subscription_estimates?:SubscriptionEstimate[];
                              ~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Estimate.d.ts:8:23 - error TS2304: Cannot find name 'InvoiceEstimate'.

8     invoice_estimate?:InvoiceEstimate;
                        ~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Estimate.d.ts:9:24 - error TS2304: Cannot find name 'InvoiceEstimate'.

9     invoice_estimates?:InvoiceEstimate[];
                         ~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Estimate.d.ts:10:28 - error TS2304: Cannot find name 'InvoiceEstimate'.

10     next_invoice_estimate?:InvoiceEstimate;
                              ~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Estimate.d.ts:11:28 - error TS2304: Cannot find name 'CreditNoteEstimate'.

11     credit_note_estimates?:CreditNoteEstimate[];
                              ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Invoice.d.ts:356:38 - error TS2304: Cannot find name 'PaymentReferenceNumber'.

356       list:{payment_reference_number:PaymentReferenceNumber}[];
                                         ~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Invoice.d.ts:407:16 - error TS2304: Cannot find name 'Download'.

407       download:Download;
                   ~~~~~~~~

node_modules/chargebee/types/resources/Invoice.d.ts:414:17 - error TS2304: Cannot find name 'Download'.

414       downloads:Download[];
                    ~~~~~~~~

node_modules/chargebee/types/resources/PaymentSource.d.ts:101:34 - error TS2304: Cannot find name 'ThirdPartyPaymentMethod'.

101       third_party_payment_method:ThirdPartyPaymentMethod;
                                     ~~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:63:28 - error TS2304: Cannot find name 'QuotedSubscription'.

63       quoted_subscription?:QuotedSubscription;
                              ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:84:28 - error TS2304: Cannot find name 'QuotedSubscription'.

84       quoted_subscription?:QuotedSubscription;
                              ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:85:22 - error TS2304: Cannot find name 'QuotedCharge'.

85       quoted_charge?:QuotedCharge;
                        ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:90:28 - error TS2304: Cannot find name 'QuotedSubscription'.

90       quoted_subscription?:QuotedSubscription;
                              ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:110:28 - error TS2304: Cannot find name 'QuotedSubscription'.

110       quoted_subscription?:QuotedSubscription;
                               ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:111:22 - error TS2304: Cannot find name 'QuotedCharge'.

111       quoted_charge?:QuotedCharge;
                         ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:120:28 - error TS2304: Cannot find name 'QuotedSubscription'.

120       quoted_subscription?:QuotedSubscription;
                               ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:149:30 - error TS2304: Cannot find name 'QuoteLineGroup'.

149       list:{quote_line_group:QuoteLineGroup}[];
                                 ~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:159:28 - error TS2304: Cannot find name 'QuotedSubscription'.

159       quoted_subscription?:QuotedSubscription;
                               ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:160:22 - error TS2304: Cannot find name 'QuotedCharge'.

160       quoted_charge?:QuotedCharge;
                         ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:168:22 - error TS2304: Cannot find name 'QuotedCharge'.

168       quoted_charge?:QuotedCharge;
                         ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:186:28 - error TS2304: Cannot find name 'QuotedSubscription'.

186       quoted_subscription?:QuotedSubscription;
                               ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:214:46 - error TS2304: Cannot find name 'QuotedSubscription'.

214       list:{quote:Quote,quoted_subscription?:QuotedSubscription}[];
                                                 ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:231:16 - error TS2304: Cannot find name 'Download'.

231       download:Download;
                   ~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:240:28 - error TS2304: Cannot find name 'QuotedSubscription'.

240       quoted_subscription?:QuotedSubscription;
                               ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:241:22 - error TS2304: Cannot find name 'QuotedCharge'.

241       quoted_charge?:QuotedCharge;
                         ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:257:22 - error TS2304: Cannot find name 'QuotedCharge'.

257       quoted_charge?:QuotedCharge;
                         ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:277:28 - error TS2304: Cannot find name 'QuotedSubscription'.

277       quoted_subscription?:QuotedSubscription;
                               ~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Quote.d.ts:278:22 - error TS2304: Cannot find name 'QuotedCharge'.

278       quoted_charge?:QuotedCharge;
                         ~~~~~~~~~~~~

node_modules/chargebee/types/resources/Subscription.d.ts:98:34 - error TS2304: Cannot find name 'AdvanceInvoiceSchedule'.

98       advance_invoice_schedules?:AdvanceInvoiceSchedule[];
                                    ~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Subscription.d.ts:288:33 - error TS2304: Cannot find name 'AdvanceInvoiceSchedule'.

288       advance_invoice_schedules:AdvanceInvoiceSchedule[];
                                    ~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Subscription.d.ts:332:34 - error TS2304: Cannot find name 'AdvanceInvoiceSchedule'.

332       advance_invoice_schedules?:AdvanceInvoiceSchedule[];
                                     ~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Subscription.d.ts:471:33 - error TS2304: Cannot find name 'AdvanceInvoiceSchedule'.

471       advance_invoice_schedules:AdvanceInvoiceSchedule[];
                                    ~~~~~~~~~~~~~~~~~~~~~~

node_modules/chargebee/types/resources/Usage.d.ts:27:16 - error TS2304: Cannot find name 'Download'.

27       download:Download;
                  ~~~~~~~~

Found 38 errors in 9 files.

Errors  Files
     1  node_modules/chargebee/types/resources/Card.d.ts:43
     2  node_modules/chargebee/types/resources/CreditNote.d.ts:175
     1  node_modules/chargebee/types/resources/Customer.d.ts:143
     6  node_modules/chargebee/types/resources/Estimate.d.ts:6
     3  node_modules/chargebee/types/resources/Invoice.d.ts:356
     1  node_modules/chargebee/types/resources/PaymentSource.d.ts:101
    19  node_modules/chargebee/types/resources/Quote.d.ts:63
     4  node_modules/chargebee/types/resources/Subscription.d.ts:98
     1  node_modules/chargebee/types/resources/Usage.d.ts:27
jstevej commented 1 year ago

I forked this repository and made the following changes, which resolved the TypeScript issues for me.

https://github.com/chargebee/chargebee-node/compare/master...jstevej:chargebee-node:master

Feel free to cherry pick these changes. I'd also be happy to submit a pull request if you'd prefer.

jstevej commented 1 year ago

I also had trouble with the default export. This is how I fixed it:

https://github.com/jstevej/chargebee-node/commit/2e8c9969819177dabd03d636844056de410fc4be

cb-khushbubibay commented 1 year ago

Hi @jstevej Thanks for raising this concern. We sincerely appreciate your input. We have fixed this issue in version v2.25.2. Requesting you to please upgrade to latest chagrebee package.