ToolJet allows you to utilize external libraries in your app by importing them using the [RunJS query](/docs/data-sources/run-js).
In this how-to guide, we will import a few JavaScript libraries and use it in the application.
:::tip
You can import any of the available libraries using their **CDN**. Find free CDN of the open source projects at **[jsDelivr](https://www.jsdelivr.com/)**
<imgclassName="screenshot-full"src="/img/how-to/import-js/newquery.png"alt="Import external libraries using RunJS"/>
</div>
- Let's write some code for importing libraries. We will first create a function `addScript` that returns a `Promise`, the `Promise` creates a script tag -> sets an attribute -> and eventListener `resolves` if its loaded and `rejects` if there is an error, and then body is appended at the end.
- We are going to import two libraries using their CDNs: **MathJS** and **Flatten**, and display an alert when the libraries are loaded successfully.
await actions.showAlert("success", 'Mathjs and Flatten imported')
} catch (e) {
console.log(e);
}
```
- Now, when you hit **create** and then **run** the query, the script will be injected into the DOM. An alert should pop-up with the message **Mathjs and Flatten imported**.
<divstyle={{textAlign:'center'}}>
<imgclassName="screenshot-full"src="/img/how-to/import-js/imported.png"alt="Import external libraries using RunJS"/>
- Let's create a new **RunJS** query that will use **Flatten** library(imported in the above section) and the query will flatten the JSON object.
```js
return flatten({
key1: {
keyA: 'valueI'
},
key2: {
keyB: 'valueII'
},
key3: { a: { b: { c: 2 } } }
})
```
- Save the query, you can either **Preview** the output on the query manager or **Run** the query to check the output on the inspector on the left-sidebar.
<divstyle={{textAlign:'center'}}>
<imgclassName="screenshot-full"src="/img/how-to/import-js/flatten.png"alt="Import external libraries using RunJS"/>
</div>
### Computation using MathJS
- Let's create a new **RunJS** query that will return the result of calculation performed by [atan2](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2) method and then divided by [pi](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI).
```js
return math.atan2(3, -3) / math.pi
```
- Save the query, you can either **Preview** the output on the query manager or **Run** the query to check the output on the inspector on the left-sidebar.
<divstyle={{textAlign:'center'}}>
<imgclassName="screenshot-full"src="/img/how-to/import-js/mathjs.png"alt="Import external libraries using RunJS"/>