# @ionaru/web-server

> My package web-server

Latest version **4.2.0** (published 2021-03-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install @ionaru/web-server
pnpm add @ionaru/web-server
yarn add @ionaru/web-server
bun add @ionaru/web-server
```

Provides the command `web-server`.

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.2.0 |
| Published | 2021-03-30 |
| First published | 2019-02-22 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 12 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Jeroen Akkerman |
| Maintainers | ionaru |

## Links

- npm: https://www.npmjs.com/package/@ionaru/web-server
- Repository: https://github.com/Ionaru/web-server
- Homepage: https://github.com/Ionaru/web-server#readme
- Issues: https://github.com/Ionaru/web-server/issues
- npm.io page: https://npm.io/package/@ionaru/web-server

## Dependencies (1)

- [debug](https://npm.io/package/debug.md) ^4.3.1

## Recent versions

- 4.2.0 (latest) — 2021-03-30
- 4.2.1-16.0 (next) — 2022-04-23
- 4.2.1-15.0 — 2022-04-23
- 4.2.1-6.0 — 2021-03-30
- 4.2.1-4.0 — 2021-03-30
- 4.1.1-41.0 — 2021-03-30
- 4.1.0 — 2021-03-30
- 4.1.2-3.0 — 2021-03-30
- 4.1.1 — 2021-03-30
- 4.0.1-32.0 — 2020-04-20
- 4.0.1-31.0 — 2020-02-24
- 4.0.1-27.0 — 2019-12-28
- 4.0.0 — 2019-12-28
- 3.0.1-26.0 — 2019-12-28
- 3.0.1-23.0 — 2019-07-18
- … 17 more at https://npm.io/package/@ionaru/web-server/versions

## README

# @ionaru/web-server

[![npm version](https://img.shields.io/npm/v/@ionaru/web-server.svg?style=for-the-badge)](https://www.npmjs.com/package/@ionaru/web-server)
[![npm version](https://img.shields.io/npm/v/@ionaru/web-server/next.svg?style=for-the-badge)](https://www.npmjs.com/package/@ionaru/web-server/v/next)
[![Build Status](https://img.shields.io/travis/Ionaru/web-server/master.svg?style=for-the-badge)](https://travis-ci.org/Ionaru/web-server)
[![codecov](https://img.shields.io/codecov/c/github/Ionaru/web-server/master.svg?style=for-the-badge)](https://codecov.io/gh/Ionaru/web-server)

## Description
A package for creating a simple web server.

## Usage
```
npm install @ionaru/web-server
```

### Standard http
```js
new WebServer((request, response) => {
    // Handle request
}).listen();
```

### Express
```js
const expressApplication = express();

expressApplication.use('/', (request, response) => {
    // Handle request
});

new WebServer(expressApplication).listen();
```

### Separate listening call
```js
const webServer = new WebServer((request, response) => {}, 3000);

// Accessed through the exposed Node.js Server instance.
webServer.server.on('listening', () => {/* Custom on-listening code */});
webServer.listen();
```

## Examples
### WebServer.prototype.server
The created http.Server instance is exposed in the WebServer instance.
```js
const myServer = new WebServer((request, response) => {}, 3000).listen();
myServer.server.address();
```

### WebServer.prototype.close() (async)
An promisified version of the standard `.close(callback)`
```js
const myServer = new WebServer((request, response) => {}, 3000).listen();
await myServer.close();
```

The promise will emit an error when the server was not open when closed.
```js
const myServer = new WebServer((request, response) => {}, 3000).listen();
await myServer.close().catch((error) => {
    // handle error
});
```

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