https://github.com/divedylan/sardine
one step mock server 🔧
https://github.com/divedylan/sardine
fake koa mock openapi swagger
Last synced: 10 months ago
JSON representation
one step mock server 🔧
- Host: GitHub
- URL: https://github.com/divedylan/sardine
- Owner: diveDylan
- License: mit
- Created: 2021-07-03T04:52:06.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-03T02:36:36.000Z (over 4 years ago)
- Last Synced: 2025-04-09T20:07:17.193Z (10 months ago)
- Topics: fake, koa, mock, openapi, swagger
- Language: TypeScript
- Homepage:
- Size: 1.56 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Sardine
`Sardine` is one step mock tool, via `swagger v2`, `chance`, `koa`. It will check `request` and return `response`. You can set swagger `format` property with chance method name to fake different types data~
### Install
``` bash
npm install sardine -D
//or
yarn add sardine -D
```
### Usage
```js
// mock.js
const {
default: Sardine,
chanceInstance,
responseBodyMiddleware // a middleware Examples
} = require('sardine')
new Sardine({
url: 'https://petstore.swagger.io/v2/swagger.json',
port: 9000,
})
```
Run `node mock.js` to start your first sardine mock server
`Options`:
``` typescript
interface SardineOptions {
url: string
port?: number
requestMiddlewares?: Middleware[]
responseMiddleWares?: Middleware[]
}
/* make it is possible to config your chanceInstance
*/
public chanceInstance: {
/**
* config chance fake count of arrays
*/
__DEFAULT_ARRAY_COUNT?: number
/**
* max stack size for nest object
*/
_MAX_NEST_STACK_SIZE?: number
} = chanceInstance
```
- `url` swagger json url
- `port` mock sever port
- `requestMiddlewares` & `responseMiddleWares` middleware use in koa mock server, [more about koa](https://koajs.com/)
### Swagger Schemes
📖 : [Swagger Schemes V2](https://swagger.io/specification/v2/#swaggerSchemes)
💡: Newton's 🍎
> However, the format property is an open string-valued property, and can have any value to support documentation needs. Formats such as "email", "uuid", etc., can be used even though they are not defined by this specification
You can create a lot fake data via different format type(id, card, png, city)
🚥 : Rules
- `number` types use `minimum` & `maximum`
- `string` types use `maxLength` & `minLength`
- `array` types use `maxItems` & `minItems`
- `enum` types use for `options`
- `default` value use for fake value
### TODO
- swagger v3 support
- request validtor middleware(options 😄)