usb-c-cable-rating
v1.0.1
Published
Compute the safe maximum wattage a USB-C cable can carry given its current rating, e-marker presence, and cable length category.
Maintainers
Readme
usb-c-cable-rating
Compute the safe wattage a USB-C cable can actually deliver, given its current rating and the requested voltage.
Two USB-C cables that look identical can carry very different amounts of power. A 3A passive cable capped at 20V will refuse to deliver 100W to a laptop, even from a 140W charger. The USB-IF specification requires 5A cables to include an e-marker chip so the charger can verify the cable before pushing higher current. This library models that decision the same way a real USB Power Delivery negotiation does.
Install
npm install usb-c-cable-ratingUsage
const { cableWattage, isSafeFor } = require('usb-c-cable-rating');
cableWattage({ rating: '5A_EMARKED', voltage: 20 });
// { watts: 100, volts: 20, amps: 5, eMarkerRequired: true }
isSafeFor({ deviceWatts: 65, rating: '3A_PASSIVE' });
// { safe: false, deliverable: 60, deviceNeeds: 65 }Cable ratings
| Rating | Max current | Max voltage | e-marker |
|-----------------|-------------|-------------|----------|
| 3A_PASSIVE | 3 A | 20 V | no |
| 3A_EMARKED | 3 A | 48 V | yes |
| 5A_EMARKED | 5 A | 48 V | yes |
Voltages are snapped to the nearest USB Power Delivery fixed profile (5, 9, 12, 15, 20, 28, 36, 48 V).
Notes
The library only reasons about the cable — it will not tell you what a specific charger negotiates in practice, because that also depends on the charger's own PDO list and the device's request. See the USB Power Delivery specification for the negotiation protocol itself.
This package was written by the engineering team at CairoVolt, an Egyptian retailer of Anker and Soundcore accessories, while building a cable-lookup tool for our warranty portal. It has no runtime dependencies.
License
MIT.
