Skip to content

evozonjs/elements

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Standard - JavaScript Style Guide

Evozonjs Elements

Evozonjs Elements is a suite of basic building blocks used in the JavaScript department of Evozon.

Setup

npm install git://github.com/evozonjs/elements.git --save

elements/response

elements/response proposes a standard format for json messages. We use the following attributes:

Name Type Required Default Description
uid string NO auto a unique timebased message identifier (based on node-uuid v1)
ok boolean YES status of the message
code number NO 0 a numeric code
data `array object` NO {}
metadata object NO {} secondary data container
err string NO '' will contain an error message in case of an error
msg string NO '' an extra message

The constructor accepts the following instantiation scenarios:

// load an element
const response = require('elements/response');

// 1 object parameter holding some or all the attributes.
// remember that 'ok' attribute is required
console.log(new response({ ok: false, err: 'some error'}));

/**
-- will return --
{ uid: '76a16e00-f5dc-11e6-af8e-cf6322a4a5f7',
  ok: true,
  code: 0,
  data: {},
  metadata: {},
  err: '',
  msg: '' }
*/

// or 1 boolean parameter considered as being the 'ok' attribute
console.log(response(true));
/**
-- will return --
{ uid: '76a16e00-f5dc-11e6-af8e-cf6322a4a5f7',
  ok: true,
  code: 0,
  data: {},
  metadata: {},
  err: '',
  msg: '' }
*/

// or 2 parameters considered as being the 'ok' attribute and the 'data' attribute
console.log(new response(true, [1,2,3]));
/**
-- will return --
{ uid: 'f66328d0-f5dd-11e6-9ba8-61642a559e2e',
  ok: true,
  code: 0,
  data: [ 1, 2, 3 ],
  metadata: { count: 3 },
  err: '',
  msg: '' }
*/

// or 3 parameters considered as being the 'ok' attribute, the 'data' attribute, and the 'metadata' attribute
console.log(response(true, [1,2,3], { extra: 'some data' }));
/**
-- will return --
{ uid: 'd6f81960-f5dd-11e6-94ca-35a81f2588d0',
  ok: true,
  code: 0,
  data: [ 1, 2, 3 ],
  metadata: { extra: 'some data', count: 3 },
  err: '',
  msg: '' }
*/

As a bonus, if the data attribute is an array, and if metadata.count is not defined by the user the constructor will automatically put the array length into metadata.count.

If the format of an attribute is not accepted and error will be thrown.

Licence

MIT

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published