@ycnt/mm2ssd
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Build Status Coverage Status MIT license

Overview

Transforming Mongoose model into Swagger schema definitions

Installation

npm i @ycnt/mm2ssd

or

yarn add @ycnt/mm2ssd

Usage

mm2ssd(model: mongoose.Model, xmlTagName: string);
// model: the mongoose model to be converted
// xmlTagName: xml root tag name

Example

import * as mongoose from 'mongoose';
import { mm2ssd } from '@ycnt/mm2ssd';

test('Should generate simple schema', () => {
  const model = mongoose.model('simple', new mongoose.Schema({
    name: {
      type: String,
      required: true,
      enum: ['Tom', 'Jerry']
    },
    age: Number,
    date: Date,
    balance: mongoose.SchemaTypes.Decimal128
  }));
  const schema = mm2ssd(model, 'xml');
  expect(schema).toEqual({
    type: 'object',
    properties: {
      _id: {
        type: 'string',
        required: false
      },
      __v: {
        type: 'integer',
        format: 'int64',
        required: false
      },
      name: {
        type: 'string',
        required: true,
        enum: ['Tom', 'Jerry']
      },
      age: {
        type: 'integer',
        format: 'int64',
        required: false
      },
      date: {
        type: 'string',
        format: 'date-time',
        required: false
      },
      balance: {
        type: 'number',
        format: 'double',
        required: false
      }
    },
    xml: {
      name: 'xml'
    },
    required: ['name']
  });
});

Contributing

Looking forward to seeing your contributions!

Readme

Keywords

none

Package Sidebar

Install

npm i @ycnt/mm2ssd

Weekly Downloads

1

Version

1.0.2

License

MIT

Last publish

Collaborators

  • kuyoonjo