# Publish Client library to npm & Typescript Support

**URL:** https://discourse.lynckia.com/t/publish-client-library-to-npm-typescript-support/1051
**Category:** Features
**Created:** [September 29, 2021, 6:54am UTC](https://discourse.lynckia.com/t/publish-client-library-to-npm-typescript-support/1051 "2021-09-29T06:54:23Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![krtirtho](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.lynckia.com/krtirtho/32/183_2.png) [@krtirtho](https://discourse.lynckia.com/u/krtirtho)
#### Post date: [September 29, 2021, 6:54am UTC](https://discourse.lynckia.com/t/publish-client-library-to-npm-typescript-support/1051/1 "2021-09-29T06:54:23Z")

</div>

Licode is an awesome project but…

#### ErizoClient through npm

The Client API is completely JavaScript-based & doesn’t require any binary compilation thus it is much safer to provide it through [npmjs.com](http://npmjs.com). Client API aka `erizoClient` is completely independent of the rest of the project with a single dependence to the shared module `erizo_controller\common\ReliableSocket.js`. But because of the webpack-bundle, it doesn’t matter. Thus it’d be much easier for the user to install `erizoClient` through npm compared to copying it over-and-over manually or through a postinstall/init script

#### Typescript typedefs with `.d.ts`

Typescript is currently is really important because of its safety guarantees. Even though this project is created with JavaScript, providing type definitions through `.d.ts` file can be done. Especially `nuve` & `erizoClient` type definitions are needed most as it’s used in the user’s project

If possible, migrate the complete JavaScript code to Typescript & remove google-closure-compiler as Typescript’s `tsc` is better currently. Don’t worry, I’m not requesting to do this part but if this can be done it’ll be a huge improvement for the project & lot of developers can use/integrate Licode in their projects easily
