Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/coderaiser/join-io

join files on a fly to reduce requests count
https://github.com/coderaiser/join-io

cloudcmd express express-middleware javascript nodejs

Last synced: 5 days ago
JSON representation

join files on a fly to reduce requests count

Awesome Lists containing this project

README

        

# Join-io

Join files on a fly to reduce requests count.

## Install

`npm i join-io --save`

## How it works?

`join-io` it's middleware that works with streams: open files and pipe them to `response` one-by-one,
when everything is done, stream is closing. `join-io` based on readPipe function of [files-io](https://github.com/coderaiser/files-io "Files-io").

[jsDelivr](https://jsdelivr.com/ "jsDelivr") works in similar way: [load Multiple files with a single HTTP request](https://www.maxcdn.com/blog/jsdelivr-better/ "load Multiple files with a single HTTP").

## How to use?

`Join-io` could be used as express middleware.

### Client

```html

```

#### Join.js

You could build join urls dynamically. Load `/join/join.js` library for this purpose.

```html

join(['lib/client', 'lib/util.js']);

```

To decrease requests count you could make `/join/join.js` part of request:

```html

```

Instead of `/join` you could use any prefix you like (don't forget to set it on the server side).

### Server

```js
const join = require('join-io');
const http = require('http');
const express = require('express');

const app = express();
const server = http.createServer(app);

const port = 1337;
const ip = '0.0.0.0';

app.use(join({
dir: __dirname,
prefix: '/join', /* default */
}));

app.use(express.static(__dirname));

server.listen(port, ip);
```

## License

MIT