Skip to content

Latest commit

 

History

History
60 lines (42 loc) · 1.17 KB

README.md

File metadata and controls

60 lines (42 loc) · 1.17 KB

fluent.js Build Status

A tiny library for building fluent interfaces in JavaScript

Installation

npm install fluent.js --save

Usage

Simple functions

var fluent = require('fluent.js');

var insert = fluent({
  insert: '*',
  into: '[]',
  after: '*'
}, function handler(value, array, otherValue) {
  array.splice(array.indexOf(otherValue) + 1, 0, value);
  return array;
});

console.log(insert(2).into([1, 3]).after(1)); //[1, 2, 3]

Extending objects (and prototypes)

var fluent = require('fluent.js');

fluent({
  with: '*',
  after: '*'
}, function handler(value, otherValue) {
  var copy = this.slice(0);		
  copy.splice(copy.indexOf(otherValue) + 1, 0, value);		
  return copy;
}, Array.prototype);

console.log(['this', 'awesome'].with('is').after('this')); //['this', 'is', 'awesome']

TODO

  • Argument validation
  • ES6 object destructuring
  • Branching functions
  • ???

Contributing

Make sure gulp build passes, otherwise try to maintain similar code style.

License

MIT