mongoose-to-swagger

Conversion library for transforming Mongoose schema objects into Swagger schema definitions.

Usage no npm install needed!

<script type="module">
  import mongooseToSwagger from 'https://cdn.skypack.dev/mongoose-to-swagger';
</script>

README

NPM version Build Status Coverage Status

mongoose-to-swagger

Conversion library for transforming Mongoose schema objects into Swagger schema definitions.

Installation

$ npm install --save mongoose-to-swagger

Overview

Converts a mongoose model into a swagger schema.

Usage

const mongoose = require('mongoose');
const m2s = require('mongoose-to-swagger');
const Cat = mongoose.model('Cat', { name: String });
const swaggerSchema = m2s(Cat);
console.log(swaggerSchema);

Meta properties

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.


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" is omitted by default
     */
    omitFields: ['_id', 'color'], 
};

const swaggerSchema = m2s(Cat, options);

Contributing

We look forward to seeing your contributions!

License

MIT © Ben Lugavere