lib-stream-protocol

> create and parse object streams from a single definition

lib-stream-protocol

create and parse object streams from a single definition

npm install --save lib-stream-protocol
var proto = require('lib-stream-protocol');
 
// create your data type 
function Message() {
  this.from    = '';
  this.dest    = '';
  this.body    = '';
  this.subject = '';
  this._some_internal_property = null;
}
 
// define some types 
var stringProto  = new proto.StringType;
var messageProto = new proto.StructType(Message);
 
messageProto.addRequired('from'   , stringProto);
messageProto.addRequired('dest'   , stringProto);
messageProto.addOptional('body'   , stringProto);
messageProto.addOptional('subject', stringProto);
// create a data object 
var m = new Message();
m.from = 'bob';
m.dest = 'kim';
m.body = 'hello world';
 
// ready it for the world 
JSON.stringify(messageProto.marshal(m))
// message will either be a correct Message object, or throw an error 
var message = messageProto.marshal(JSON.parse(str))