Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    elegant-objectpublic

    Elegant

    Elegant is schema/raw cleaner for NodeJs. Project is inspired by indicative but for object cleaning.

    Installation

    npm install elegant-object --save
    

    Usage

    var EO = require('elegant-object');
    
    var schema = {
    	// simple rule
    	a: "clean",
    	// multiple rules separated by |
    	b: "trim|capitalize",
    	// nested declaration
    	c: {
    		d: "toBoolean"
    	},
    	// alternative declaration
    	"f.g": "toNumber"
    };
    
    var cleaner = EO();
    
    var myObject = {
    	a: '  my string ',
    	b: '  my other   string ',
    	c: { d: 'true' },
    	f: { g: '19' }
    };
    
    cleaner.clean(myObject, schema)
    .then(function(newObj) {
    	console.log(newObj);
    })
    .catch(function(err) {
    	// error in rule or in execution
    });
    
    // newObj = {
    // 	  a: 'my string',
    //	  b: 'My other string',
    //	  c: { d: true },
    //	  f:  { g : 19 }
    //  };
    

    API

    constructor()

    Returns a cleaner instance

    Params

    schema is required

    schema is an object that will apply rules on leaf node.

    var EO = require('elegant-object');
    
    var userCleaning = EO();
    

    clean(object, [schema])

    Return a promise of a cleaned object

    Promise is rejected if one rule is unknown

    Params
    object
    Object
    schema
    Object

    object is required schema is optional but the key of cleaning

    var EO = require('elegant-object');
    
    var schema = {
    	username: 'clean|toLowerCase',
    	name: {
    	    // trim and
    		first: 'clean|capitalize',
    		last: 'clean|capitalize'
    	}
    };
    
    var userCleaning = EO();
    
    var obj = {
    	username: ' ABcDe ',
    	name: {
    		first: ' roger  ',
    		last: 'arthur'
    	}
    };
    
    userCleaning.clean(obj, schema)
    .then(function(cleanedObj) {
      // save to db :)
    });
    

    Rejection exemple

    var EO = require('elegant-object');
    
    var schema = {
    	username: 'clean|unknown',
    };
    
    var userCleaning = EO();
    
    var obj = {
    	username: ' ABcDe ',
    };
    
    userCleaning.clean(obj, schema)
    .then(function(cleanedObj) {
      // save to db :)
    })
    .catch(function(err) {
    	// err.message => error on field `username`: unknown rule `unknown`: field cleaning error
    });
    

    Rules

    Rules are taken from underscore.string

    Available rules

    • capitalize
    • decapitalize
    • clean
    • cleanDiacritics
    • swapCase
    • escapeHTML
    • unescapeHTML
    • dedent
    • reverse
    • titleize
    • camelize
    • classify
    • underscored
    • dasherize
    • humanize
    • trim
    • ltrim
    • rtrim
    • truncate
    • toNumber
    • stripTags
    • surround
    • quote
    • unquote
    • slugify
    • toBoolean
    • toUpperCase
    • toLowerCase

    install

    npm i elegant-object

    Downloadsweekly downloads

    5

    version

    1.0.3

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar