-
Notifications
You must be signed in to change notification settings - Fork 67
Description
I use Xendit in my NodeJS and using TypeScript.
I tried to call EWallet.createEWalletCharge(args: {}) and QrCode.createCode(args: {}) and get TypeError: Cannot read properties of undefined to all parameters that use your enum. (in my case Currency, ChannelCode, QrCodeTypes)
I think because the enum is not convert properly to be string in the javascript code (🤔 just my opinion, still not sure because haven't check it deeper).
I think despite of using enum, better for you to use Union Type and the we still can get the value suggestion too like the image I put below.
So here's the example:
// BEFORE:
enum Currency {
IDR = 'IDR',
PHP = 'PHP',
}
// AFTER:
type Currency = 'IDR' | 'PHP';Maybe you can change all enum into union type like that.
And I found 1 more problem, ChannelCode in ewallet_charge.d.ts not cover all of the ewallet method.
Thank you.
NOTE:
- Image for the value suggestion if using union type
- How to repo the error:
Just run this code
try {
const xendit = new Xendit({
secretKey: "xnd_development_xxxxxxxxxxxxxxxxxx"
});
const result = await new PaymentGateway.EWallet({}).createEWalletCharge({
referenceID: "ID",
currency: Currency.IDR,
amount: 9999,
checkoutMethod: "ONE_TIME_PAYMENT",
channelCode: ChannelCode.ID_OVO,
channelProperties: {
mobileNumber: "+628123423423"
}
});
} catch (error) {
console.log(error);
}