mongoose-to-swagger
Version:
Conversion library for transforming Mongoose schema objects into Swagger schema definitions.
77 lines (54 loc) • 1.91 kB
Markdown
[![NPM version][npm-image]][npm-url]
Conversion library for transforming [Mongoose](http://mongoosejs.com/) schema objects into [Swagger](http://swagger.io) schema definitions.
```sh
$ npm install --save mongoose-to-swagger
```
Converts a mongoose model into a swagger schema.
```js
const mongoose = require('mongoose');
const m2s = require('mongoose-to-swagger');
const Cat = mongoose.model('Cat', { name: String });
const swaggerSchema = m2s(Cat);
console.log(swaggerSchema);
```
By default, `description`, `enum`, and `required` fields are extracted from the mongoose schema definitions and placed into the correspoding swagger properties definitions. Additional meta props can be whitelisted using the props array on the options argument.
```ts
const Cat = mongoose.model('Cat', {
name: {
type: String,
/**
* Custom Properties
* `description` is enabled by default
*/
description: 'Name of the cat', // description is enabled by default
bar: 'baz' // custom prop
},
color: String
});
const options = {
/**
* Whitelist of custom meta fields.
*/
props: ['bar'],
/**
* Fields to omit from model root. "__v" and "id" are omitted by default with omitMongooseInternals (default: true)
*/
omitFields: ['_id', 'color'],
/**
* Omit mongoose internals, omits mongoose internals from result ("__v", "id" - mongoose version field and virtual id field) (default: true)
*/
omitMongooseInternals: false
};
const swaggerSchema = m2s(Cat, options);
```
We look forward to seeing your contributions!
MIT © [Ben Lugavere](https://benlugavere.com/)
[]: https://badge.fury.io/js/mongoose-to-swagger.svg
[]: https://npmjs.org/package/mongoose-to-swagger