UNPKG

highland-piper

Version:

Create highland pipelines with abort and finalize logic.

28 lines (18 loc) 1.04 kB
'use strict'; var piper = require('./index'); var h = require('highland'); var stream = h([{name: 'John', rating: 1}, {name: 'Tom', rating: 2}, {name: 'Sam', rating: 3}]); var pipeline = piper('experiences'); pipeline .add('addInfo', h.doto( obj => obj.info = obj.rating > 1 ? 'Experienced' : 'Beginner')) .abort('ignoreExperienced', obj => /experienced/i.test(obj.info)) .add('assignWork', h.doto( obj => obj.work = 'Do extra work.')) .finally(h.doto( obj => delete obj.rating)); pipeline.exec('foo', { bar: 0 }, (err, result) => console.log('\nFOO', result)); pipeline.exec('addInfo', { rating: 2 }, (err, result) => console.log('\nADD_INFO', result)); pipeline.exec('assignWork', { rating: 2 }, (err, result) => console.log('\nassignWork', result)); pipeline.exec('ignoreExperienced', { rating: 1, info: 'Beginner' }, (err, result) => console.log('\nIGNORE_EXPERIENCED', result)); pipeline.exec('finally', { rating: 1 }, (err, result) => console.log('\nFINALLY', result)); stream .through(pipeline.consumer) .each(h.log);