Norse Power Metal

    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)
     

    Install

    npm i json-schema-to-mongoose

    DownloadsWeekly Downloads

    140

    Version

    0.2.2

    License

    MIT

    Last publish

    Collaborators

    • iaincollins
    • jon49