index.js
function(parsersDefinitions) {

    // check that the parsersDefinitions is an object
    if(typeof parsersDefinitions !== 'object' || Array.isArray(parsersDefinitions)) {
      throw new Error('parsers should be an Object that contains arrays of functions under init and update');
    }

    this.parser = this.parser || getParser();

    this.parser.add(parsersDefinitions);

    return this;
  }
function(parsersDefinitions) {

    // check that the parsersDefinitions is an object
    if(typeof parsersDefinitions !== 'object' || Array.isArray(parsersDefinitions)) {
      throw new Error('parsers should be an Object that contains arrays of functions under init and update');
    }

    this.parser = this.parser || getParser();

    this.parser.add(parsersDefinitions);

    return this;
  }
function ( parsersDefinitions ) { // check that the parsersDefinitions is an object if ( typeof parsersDefinitions !== 'object' || Array . isArray ( parsersDefinitions ) ) { throw new Error ( 'parsers should be an Object that contains arrays of functions under init and update' ) ; } this . parser = this . parser || getParser ( ) ; this . parser . add ( parsersDefinitions ) ; return this ; }
`f1` can target many different platforms. How it does this is by using parsers which
can target different platforms. Parsers apply calculated state objects to targets.

If working with the dom for instance your state could define values which will be applied
by the parser to the dom elements style object.

When calling parsers pass in an Object that can contain variables init, and update. Both should contain
an Array's of functions which will be used to either init or update ui.

init's functions will receive: states definition, targets definition, and transitions definition.
update functions will receive: target and state. Where target could be for instance a dom element and
state is the currently calculated state.

@param  {Object}  parsersDefinitions an Object which may define arrays of init and update functions
@chainable
f1 can target many different platforms . How it does this is by using parsers which can target different platforms . Parsers apply calculated state objects to targets .