# How do I use mediasoup-client with TypeScript and bundlers?

**URL:** <https://mediasoup.discourse.group/t/how-do-i-use-mediasoup-client-with-typescript-and-bundlers/2309>\
**Category:** mediasoup libraries\
**Created:** [January 22, 2021, 12:39am UTC](https://mediasoup.discourse.group/t/how-do-i-use-mediasoup-client-with-typescript-and-bundlers/2309 "2021-01-22T00:39:37Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Minding](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/minding/32/763_2.png) [@Minding](https://mediasoup.discourse.group/u/Minding)\
**Post date:** [January 22, 2021, 12:39am UTC](https://mediasoup.discourse.group/t/how-do-i-use-mediasoup-client-with-typescript-and-bundlers/2309/1 "2021-01-22T00:39:37Z")

</div>

I already used `mediasoup-client` with JS and it worked fine.

Now I’m transitioning to TypeScript and am currently using `browserify` as my bundler, but I’m not set on it and would probably prefer `snowpack` if possible.

Unfortunately I was unable to find any TypeScript `mediasoup-client` examples.

How would I import `mediasoup-client` properly given these requirements?

- Actually transpiles (no errors)
- Type hints in the IDE
- Import classes separately (`new Device()` instead of `new mediasoup.Device()`)

The [documentation](https://mediasoup.org/documentation/v3/mediasoup-client/installation/) does not match these requirements, so I’ve tried the following variants:

```typescript
import {DataConsumer} from 'mediasoup-client'
import {DataConsumer} from 'mediasoup-client/src/types'
import {DataConsumer} from 'mediasoup-client/src/DataConsumer'
import {DataConsumer} from 'mediasoup-client/lib/DataConsumer'

```

And errors ranged from

> SyntaxError: ‘import’ and ‘export’ may appear only with ‘sourceType: module’

to

> Error TS2305: Module ‘“./node\_modules/mediasoup-client/lib”’ has no exported member ‘DataConsumer’

and

> [snowpack] Package “mediasoup-client/src/DataConsumer” not found. Have you installed it?

Regarding `snowpack`: Is `mediasoup-client` an ES-Module?

Ideally I would like to bundle `mediasoup-client` separately from my package, but for now I only want it to work at all.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [January 22, 2021, 1:35am UTC](https://mediasoup.discourse.group/t/how-do-i-use-mediasoup-client-with-typescript-and-bundlers/2309/2 "2021-01-22T01:35:26Z")

</div>

> **[mediasoup :: API](https://mediasoup.org/documentation/v3/mediasoup-client/api/#mediasoupClient-types)**
>
> Cutting Edge WebRTC Video Conferencing

---

<div class="post-metadata">

**Author:** ![liqingxue](https://avatars.discourse-cdn.com/v4/letter/l/e0b2c6/32.png) [@liqingxue](https://mediasoup.discourse.group/u/liqingxue)\
**Post date:** [January 24, 2021, 11:43am UTC](https://mediasoup.discourse.group/t/how-do-i-use-mediasoup-client-with-typescript-and-bundlers/2309/3 "2021-01-24T11:43:17Z")

</div>

> [@Minding](#):
>
> `mediasoup-client` with JS

hi,i am learning how to use `mediasoup-client` with JS,i donot know to get “my-signaling” as below.  
import { Device } from ‘mediasoup-client’;  
import mySignaling from ‘./my-signaling’; // Our own signaling stuff.  
could please show me an example? thanks!!!  
my email [is:25650944@qq.com](mailto:is:25650944@qq.com)

---

<div class="post-metadata">

**Author:** ![Minding](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/minding/32/763_2.png) [@Minding](https://mediasoup.discourse.group/u/Minding)\
**Post date:** [January 25, 2021, 12:00am UTC](https://mediasoup.discourse.group/t/how-do-i-use-mediasoup-client-with-typescript-and-bundlers/2309/4 "2021-01-25T00:00:38Z")

</div>

First of all, you should not ask a question unrelated to the topic of a thread. Please keep it organized.

Now, to answer your question:  
You need to implement the signaling yourself, using whatever thechnology you want - that’s why the import refers to “my-signaling” - it’s just an example / placeholder.

`mediasoup-client` does not cover signaling, since it is not part of [WebRTC](https://webrtc.org/getting-started/media-devices). Usually [WebSockets](https://developer.mozilla.org/de/docs/WebSockets) are used for signaling, but other methods may be just as good.

To get started have a look at the [demos](https://mediasoup.org/documentation/examples/) (I’d recommend [this single-page one](https://github.com/daily-co/mediasoup-sandbox/blob/master/single-page/server.js))
