# Workerpool embedded worker example
In a browser environment, the `script` argument in `workerpool.pool(script)` can also be a data URL like `'data:application/javascript;base64,...'`. This allows embedding the bundled code of a worker in your main application, which is demonstrated in this example.
> !!! Note that this example only works in the browser, not in node.js !!!
## Run
Install the dependencies:
```
npm install
```
Build the embedded worker (`dist/worker.embedded.js`) and the bundled version of `app.js` (`dist/app.bundle.js`):
```
npm run build
```
Then open app.html in your browser.
## How does it work?
1. The script worker.js is bundled into `dist/worker.bundle.js` using Webpack
2. From the worker bundle, a base64 encoded data url is created and stored in a JavaScript file `dist/worker.embedded.js`. This file looks like:
```js
module.exports = 'data:application/javascript;base64,...';
```
3. The file app.js loads the embedded worker and passes it to the worker pool like:
```js
var workerDataUrl = require('./dist/worker.embedded');
// create a worker pool
var pool = workerpool.pool(workerDataUrl);
```
4. The application `app.js` is bundled using Webpack, and the bundle is loaded into app.html.