# lite-proxy

> lite-proxy is a tool to create a proxy server just with a piece of config.

Latest version **1.0.5** (published 2018-05-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install lite-proxy
pnpm add lite-proxy
yarn add lite-proxy
bun add lite-proxy
```

Provides the command `liteproxy`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2018-05-24 |
| First published | 2018-04-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 6.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Yang G |
| Maintainers | builditnow |
| Keywords | proxy, lite-proxy |

## Links

- npm: https://www.npmjs.com/package/lite-proxy
- npm.io page: https://npm.io/package/lite-proxy

## Dependencies (3)

- [cors](https://npm.io/package/cors.md) ^2.8.4
- [express](https://npm.io/package/express.md) ^4.16.3
- [express-http-proxy](https://npm.io/package/express-http-proxy.md) ^1.1.0

## Recent versions

- 1.0.5 (latest) — 2018-05-24
- 1.0.4 — 2018-05-24
- 1.0.3 — 2018-04-06
- 1.0.2 — 2018-04-06
- 1.0.1 — 2018-04-06
- 1.0.0 — 2018-04-04

## README

## lite-proxy
lite-proxy is a tool to create a proxy server just with a piece of config.
Why I create lite-proxy?
In client/server architecture, I have meet several front-end projects, who can't access server data when develop and debug in localhost, the reasons as bellow:
* CORS
* Authentication: Request header or cookie not match in localhost environment

If want to solve these problems, nginx can work, but a lot of work need to do and not friendly to new guys(even front-end guys). So lite-proxy comes, as a dependency of project, easy to use. Just a piece of config and then `npm run liteproxy`, it's done.

## How to use
### install
Use `npm install -save-dev lite-proxy` to install or put `    "lite-proxy": "^1.0.0",` in your *package.json*.
### configure
Just config in you *package.json* as bellow:
``` json
...
"liteProxy": {
	"port": 8081,
	"cookie": "token=1",
	"proxies": [{
        "host": "www.server1-domain.com",
        "https": true,
        "path": "/pathPrefex/",
        "headers": {
            "host": "www.server1-domain.com",
            "origin": "https://www.server1-domain.com",
            "referer": "https://www.server1-domain.com/index.html"
        }
    }, {
        "host": "www.server0-domain.com",
        "https": true,
        "headers": {
            "host": "www.server0-domain.com",
            "origin": "https://www.server0-domain.com",
            "referer": "https://www.server0-domain.com/index.html"
        }
    }]
},
...
```
With this config, we create a proxy server listening on 8081 port. This proxy server will delegate any request starts `/pathPrefex/` to `https://www.server1-domain.com`, and delegate any other request to `https://www.server0-domain.com`. These requests send by proxy server will take the cookie and headers set in config.

#### port
Port number proxy server listening.

#### cookie
Cookie for request send to back-end server.

#### proxies
An array to define each proxy. **You must take the proxy with path in front the proxy without path.**

##### proxy.host
The back-end server domain.

##### proxy.https
Use https or not.

##### proxy.headers
Any headers you wan't to feed back-end server.

##### proxy.path
Path prefex, only the request starts with this config will be delegated by this proxy.

##### [proxy.cookie]
Cookie for request send to this back-end server. If not set, will use the outer cookie config.

---
_Source: https://npm.io/package/lite-proxy · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
