You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In #40 enums had `const` added to them. [const enums](https://www.typescriptlang.org/docs/handbook/enums.html#const-enums)
are removed at compile time and replaced with numbers.
Here we require strings to be passed to `libdatachannel`, so in #259
we exported objects with values that correspond to the enums so consuming
code can import something they can use in `PeerConnection` method
invocations, e.g.:
```js
import { DescriptionType, PeerConnection } from 'node-datachannel'
const pc = new PeerConnection()
pc.setLocalDescription(DescriptionType.Offer, {
// ...
})
```
In #278 the codebase was converted to TypeScript and a non-const
enum crept back in. Now all the enums live in `types.ts` and since
Rollup was introduced as part of #278, but if you check the `esm`
and `cjs` output dirs, `tests.ts` is not being transpiled to `tests.js`
(`types/lib/types.d.ts` is present though, so `tsc` is doing it's job)
and the re-export of the exports from `tests.ts` is being removed
so enums are broken again at runtime.
The fix here is to give up on enums since they are a constant source
of pain for consumers and change them to be types:
```js
import { PeerConnection } from 'node-datachannel'
const pc = new PeerConnection()
pc.setLocalDescription('offer', {
// ...
})
```
0 commit comments