# @agreed/server

> agreed server

Latest version **6.0.0** (published 2024-03-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install @agreed/server
pnpm add @agreed/server
yarn add @agreed/server
bun add @agreed/server
```

Provides the command `server`.

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 6.0.0 |
| Published | 2024-03-14 |
| First published | 2019-10-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 26 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 215 |
| Author | yosuke-furukawa |
| Maintainers | yosuke-furukawa, maxmellon |
| Keywords | agreed, server, mock, port |

## Links

- npm: https://www.npmjs.com/package/@agreed/server
- Repository: https://github.com/recruit-tech/agreed
- Homepage: https://github.com/recruit-tech/agreed-server#readme
- Issues: https://github.com/recruit-tech/agreed-server/issues
- npm.io page: https://npm.io/package/@agreed/server

## Dependencies (6)

- [cors](https://npm.io/package/cors.md) ^2.8.5
- [morgan](https://npm.io/package/morgan.md) ^1.9.1
- [express](https://npm.io/package/express.md) ^4.16.4
- [body-parser](https://npm.io/package/body-parser.md) ^1.18.3
- [@agreed/core](https://npm.io/package/@agreed/core.md) ^6.0.0
- [express-http-proxy](https://npm.io/package/express-http-proxy.md) ^1.6.0

## Alternatives

- [pagerjs](https://npm.io/package/pagerjs.md) — 60 weekly downloads
- [whistle.savefor-mock](https://npm.io/package/whistle.savefor-mock.md) — 4 weekly downloads
- [@cerberauth/stubidp](https://npm.io/package/@cerberauth/stubidp.md) — 0 weekly downloads
- [mock-knight](https://npm.io/package/mock-knight.md) — 0 weekly downloads
- [@analytics-kit/connector-mock](https://npm.io/package/@analytics-kit/connector-mock.md) — 0 weekly downloads

## Recent versions

- 6.0.0 (latest) — 2024-03-14
- 5.3.2-alpha.0 — 2022-08-25
- 5.3.1 — 2022-08-16
- 5.3.0 — 2022-07-21
- 5.2.1 — 2021-07-06
- 5.2.0 — 2021-01-29
- 5.1.10 — 2020-09-01
- 5.1.9 — 2020-08-07
- 5.1.8 — 2020-08-03
- 5.1.7 — 2020-05-28
- 5.1.6 — 2020-05-27
- 5.1.5 — 2020-04-06
- 5.1.4 — 2020-04-06
- 5.1.3 — 2020-03-30
- 5.1.2 — 2020-03-30
- … 13 more at https://npm.io/package/@agreed/server/versions

## README

# Agreed Server
[![Build Status](https://travis-ci.org/recruit-tech/agreed-server.svg?branch=add_travis)](https://travis-ci.org/recruit-tech/agreed-server)

[Agreed](https://www.npmjs.com/package/agreed-core) mock server

`agreed-server` is a mock server based on `agreed`.
This module provides CLI executable command and 2 programmable interface.
If you want to use `agreed` as mock, you would be better to install `agreed-server`.

# Install

```
$ npm install agreed-server --save-dev
```

# Basic Usage

Usage as CLI

```
$ agreed-server --path ./test/agreed.json --port 10101
```

- if you want to boot agreed server as disable hot replacement.

```
$ agreed-server --path ./test/agreed.json --port 10101 --hot false
```

Usage as programming

```js
const agreedServer = require('agreed-server');

const server = agreedServer({
  path: 'agreed/agreed.json',
  port: 3001,
  static: './static', // serve files from ./static
  staticPrefixPath: '/public',
}).createServer();
```

# Advanced Usage

Usage as Express pure server

```js
const agreedServer = require('agreed-server');

const { app, createServer } = agreedServer({
  path: 'agreed/agreed.json',
  port: 3001,
  static: './static', // serve files from ./static
  staticPrefixPath: '/public',
  middlewares: [
    logger,
    perfTool,
    secureHeaders,
  ],
  defaultRequestHeaders: {
    'x-forwarded-for': 'nginx'
  },
  defaultResponseHeaders: {
    'access-control-allow-origin': '*'
  },
});

app.use(someGoodMiddleware);
app.use((err, req, res, next) => {
  res.statusCode = 500;
  res.send(`Error is occurred : ${err}, you should see log`);
});
const server = createServer(app);
```

## notifier

Usage as notification event

### agreed file

```js
module.exports = [
  {
    request: {
      path: '/messages',
      method: 'POST',
      body: {
        message: '{:message}'
      },
      values: {
        message: 'test',
      },
    },
    response: {
      body: {
        result : '{:message}'
      },
      values: {
        message: 'test',
      },
      // add notify property for notification
      notify: {
        body: {
          message: 'message! {:message}'
        }
      }
    },
  },
]
```


```js
const agreedServer = require('agreed-server');

const { app, createServer, notifier } = agreedServer({
  path: 'agreed/agreed.json',
  port: 3001,
  static: './static', // serve files from ./static
  staticPrefixPath: '/public',
  middlewares: [
    logger,
    perfTool,
    secureHeaders,
  ],
  defaultRequestHeaders: {
    'x-forwarded-for': 'nginx'
  },
  defaultResponseHeaders: {
    'access-control-allow-origin': '*'
  },
});

notifier.on('message', (data) => {
  console.log(data) // { message: 'message! hoge' }
});

app.use(someGoodMiddleware);
app.use((err, req, res, next) => {
  res.statusCode = 500;
  res.send(`Error is occurred : ${err}, you should see log`);
});
const server = createServer(app);
```

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