GithubHelp home page GithubHelp logo

mosc's Introduction

Build Status

Mosc.js (A simple inline object model builder)

Mosc.js is a simple inline object model builder for NodeJS (A small port exists for client-side javascript). It can be used to build ORM schemas, app configurations and a host of other valid object usecases.

Don't like those pesky curly braces? Just:

npm install Mosc --save

var Mosc = require('mosc');
var mosc = new Mosc({});
var SimpleORMUserModel = mosc.build('title:string')
							 .build('name:string')
                             .build('age:integer')
                             .end();

SimpleORMUserModel above becomes:

{
	title:"string",
    name:"string",
    age:"integer"
}

Pass in a context dictionary

You can pass a context dictionary argument for Mosc to use when evaluating certain placeholders in your build arguments

var context_dictionary = {'SEQ':{string:'SEQUELIZE_STRING'}};
var result = new mosc(context_dictionary)
                 .build('id', 'type:*SEQ*.string')
                 .end();
/*
*SEQ*.string is evaluated using the context dictionary passed
Mosc looks for the property SEQ in the context dictionary, 
it then checks if there is a corresponding string property
if there is, Mosq evaluates SEQ.string and returns the result hence:
result = {
   id: {
     type:'SEQUELIZE_STRING'
   }
}
if there isn't MOSC throws a context not found in eval dict error
*/

With Mosc, it is also possible to do depth builds i.e object in object in object:

var obj = mosc.buildIn('attributes.id'); 
/*
obj = {
		attributes:
        {
        	id:
            {
            
            }
        }
      }
*/
var obj = mosc.buildIn('attributes.id', 'type:String, primaryKey:true').end();
/*
obj = {
		attributes:
        {
        	id:
            {
              type:'String',
              primaryKey:true
            }
        }
      }
*/

(For depth builds, the final path in the depth must be a valid object i.e 'attributes.id', id, if it exists, must be an object otherwise Mosc throws a 'Path must be an object error')

mosc's People

Contributors

asjidkalam avatar jamieslome avatar

Watchers

 avatar  avatar

Forkers

asjidkalam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.