twilio / twilio-node

Node.js helper library
MIT License
1.37k stars 497 forks source link

Incorrect types for PhoneNumberCapabilities #833

Open stephenwade opened 1 year ago

stephenwade commented 1 year ago

Issue Summary

The TypeScript types for phone number capabilities are wrong. The types are all lowercase, but the actual API response has some uppercase keys. Also, the types say fax will be present, but it is absent.

Steps to Reproduce

image

Code Snippet

import { Twilio } from "twilio";

const keySid = "REDACTED";
const keySecret = "REDACTED";
const accountSid = "REDACTED";

const client = new Twilio(keySid, keySecret, { accountSid });

const [phoneNumber] = await client.availablePhoneNumbers("US").local.list();

console.log(Object.keys(phoneNumber.capabilities));
// [ 'voice', 'SMS', 'MMS' ]

Technical details:

Hunga1 commented 1 year ago

Hello @stephenwade. Thanks for pointing this out. I was able to reproduce the issue where the payload from the API and the phoneNumber.capabilities properties differ from the TS type. The SMS and MMS property names were all uppercase rather than lowercase. I'll check what the correct property names are for these should be.

Although, my API response and phoneNumber.capabilities object contained the fax property as well. I wasn't able to reproduce the missing fax property on my end.

stephenwade commented 1 year ago

Thanks for the reply @Hunga1! I guess you can ask the dev team what properties are optional and make those optional properties in the types. I can definitely reproduce the missing fax property every time so I think it should be optional (fax?: boolean).

Hunga1 commented 1 year ago

This issue has been added to our internal backlog to be prioritized (internal ref: DI-2467).