json-schema-to-mongoose

0.2.2 • Public • Published

JSON Schema to Mongoose (Schema)

A translation library between JSON Schema and Mongoose Schema. Written in TypeScript.

This project was created from the ashes of json-schema-converter. I took away some features and made it more single purpose and added features to the conversion.

Installation

npm install json-schema-to-mongoose --save

Usage

/// <reference path="../node_modules/json-schema-to-mongoose/json-schema-to-mongoose.d.ts" />
 
import createMongooseSchema = require('./lib/json-schema')
import util = require('util')
 
// Or use plain javascript
// var createMongooseSchema = require('./lib/json-schema')
// var util = require('util')
 
// example json-schema references
var refs =
{
    yep:
    {
        type: 'string',
        pattern: '^\\d{3}$'
    },
    idSpec: {
        type: 'object',
        properties:
        {
            id:
            {
                $ref: 'yep'
            }
        }
    }
}
 
// example schema to convert to mongoose schema
var schema =
{
    type: 'object',
    properties:
    {
        id:
        {
            $ref: 'yep'
        },
        address:
        {
            type: 'object',
            properties:
            {
                street: {type: 'string', default: '44', pattern: '^\\d{2}$'},
                houseColor: {type: 'string', default: '[Function=Date.now]', format: 'date-time'}
            }
        }
    }
}
 
//Convert the schema
var mongooseSchema = createMongooseSchema(refs, schema)
 
//Alternative syntax, which makes it so you can convert many at one time.
 
// var jsonSchemas = {commonRef: ..., good: ..., schema: ..., naming: ...}
// var convert = createMongooseSchema(jsonSchemas)
// var schemaNames = ['good', 'schema', 'naming']
// var schemas = _.map(schemaNames, (name) => { return jsonSchemas[name] })
// var mongooseSchemas = _.zipObject(schemaNames, schemas.reduce((mongooseSchemas, schema) => {
//     return mongooseSchemas.concat(convert(schema))
// }, []))
 
console.log(util.inspect(mongooseSchema, false, null))
 
var Schema = new mongoose.Schema(mongooseSchema)
 

Package Sidebar

Install

npm i json-schema-to-mongoose

Weekly Downloads

44

Version

0.2.2

License

MIT

Last publish

Collaborators

  • iaincollins
  • jon49