ezs v9.4.2
Make pipeline of streams easy : Easy Streams
It's just a wrapper to build Stream transformers with functional style. It's like the koa / expressjs middlewares !
Example
const ezs = require('ezs')
ezs.use(require('ezs-basics'));
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin
.pipe(ezs('split', { delimiter: "\n" }))
.pipe(ezs('counter'))
.pipe(ezs((input, output) => output.send(input.toString()));
.pipe(process.stdout);Installation
With npm:
$ npm install ezsConcepts
Scope
Each statement function have its own scope and can access to few methods :
- this.isLast()
- this.isFirst()
- this.getIndex()
- this.getParam(name, defaultValue)
Output Object
Output object is an object with few methods :
- output.write(something)
- output.end()
- output.send(something)
- output.close()
- output.stop(withAnError)
With a sync statement, you can break the pipe with throw but with an async statement, you should use stop(with An Error) instead of throw.
CLI
The command line interface is used to create run pipelines described in .ini files.
It is also possible to launch a web server allowing remote execution of .ini files
$ ezs -h ven. 15 mars 2019 16:15:20 CET
Usage: ezs [options] [<file>|<directory>] [<file2> <file3> ...]
Options:
--help Affiche de l'aide [booléen]
--version Affiche le numéro de version [booléen]
--verbose, -v Enable debug mode with DEBUG=ezs [booléen] [défaut: false]
--daemon, -d Launch daemon on a directory containing commands script
[chaine de caractère]
--server, -s Server to dispach commands [chaine de caractère]
--env, -e Execute commands with environement variables as input
[booléen] [défaut: false]
for more information, find our manual at https://github.com/touv/node-ezsAPI Documentation
ezs(statement : Mixed, params : Object) : Stream
Converts a transform stream with existing function or adhoc function.
const ezs = require('ezs'),
let transformer = ezs(function(input, output) {
output.send(input.toString())
})ezs.use(module: Function) : None
Adding bundle of statements. see the avaible modules here : https://www.npmjs.com/browse/keyword/ezs
import ezs from 'ezs';
import basics from 'ezs-basics';
import files from 'ezs-files';
ezs.use(basics);
ezs.use(files);ezs.catch(func : Function)
catch Error in NodeJS pipeline
// Example #1
process.stdin
.pipe(ezs('truncate', { length: 100 }))
.pipe(ezs((d, f) => f.send(new Error('Badaboum')))))
.pipe(ezs.catch(e => e)) // catch errors in chunks and throw a error, which breaking the pipeline
.on('error', console.error)
// Example #2
process.stdin
.pipe(ezs('truncate', { length: 100 }))
.pipe(ezs((d, f) => f.send(new Error('Badaboum')))))
.pipe(ezs.catch(e => console.error('Warning:', e))) // catch errors in chunks to display them without breaking the pipelineezs.toBuffer(options : Object)
get chunk of in NodeJS pipeline and send Buffer of the chunk
process.stdin
.pipe(ezs('replace', { path: 'id', value: 'xxxxx' }))
.pipe(ezs('dump'))
.pipe(ezs.toBuffer())
.pipe(process.stdout);Statements
Table of Contents
- assign
- concat
- debug
- delegate
- dispatch
- dump
- env
- extract
- group
- keep
- pack
- replace
- shift
- shuffle
- tracer
- transit
- truncate
- ungroup
- unpack
- validate
assign
Take Object and add new field
Parameters
Returns Object
concat
Take all String, concat them and thow just one
Parameters
datafeedbeginWithString? Add value at the beginjoinWithString? use value to join 2 chunkendWithString? Add value at the end
Returns String
debug
Take Object , print it and throw the same object
Parameters
datafeedlevelString console level : log or error (optional, defaultlog)textString text before the dump (optional, defaultvalueOf)pathString? path of field to print
Returns Object
delegate
Takes an Object delegate processing to an external pipeline
Parameters
datafeedfileString? the external pipeline is descrbied in a filescriptString? the external pipeline is descrbied in a sting of characterscommandsString? the external pipeline is descrbied in object
Returns Object
dispatch
Takes an Object dispatch processing to an external pipeline in one or more servers
Parameters
datafeedserverString? servers to dispatch datafileString? the external pipeline is descrbied in a filescriptString? the external pipeline is descrbied in a sting of characterscommandsString? the external pipeline is descrbied in object
Returns Object
dump
Take all Object and genereta a json array
Parameters
datafeedindentString indent JSON (optional, defaultfalse)
Returns String
env
Take Object and send the same object
but in the meantime, it is possible to add
new environment field
Parameters
Returns Object
extract
Take Object and throw each value of fields
Parameters
datafeedpathString? path of field to extract
Returns Object
group
Take all chunk, and throw array of chunks
Parameters
datafeedsizeNumber? Size of each partition
Returns String
keep
Take Object and throw the same object but keep only
spefici fields
Parameters
datafeedpathString? path of field to keep
Returns Object
pack
Take all Object, throw encoded String
Parameters
datafeed
Returns String
replace
Take Object and create a new object with some fields
Parameters
Returns Object
shift
Take the first Object and close the feed
Parameters
datafeed
Returns Object
shuffle
Take Object, shuffle data of the whole object or only some fields specified by path
Parameters
datafeedpathString? path of field to shuffle
Returns Object
tracer
Take Object, print a character and throw the same object
Parameters
datafeedprintString character to print at each object (optional, default.)lastString character to print at last call (optional, default.)firstString character to print at first call (optional, default.)
Returns Object
transit
Take Object and throw the same object
Parameters
datafeed
Returns Object
truncate
Takes all the chunks, and closes the feed when the total length is equal to the parameter
Parameters
datafeedlengthNumber? Length of the feed
Returns Mixed
ungroup
Take all chunk, and throw each item of chunks
Parameters
datafeed
Returns String
unpack
Take String and throw Object builded by JSON.parse on each line
Parameters
datafeed
Returns String
validate
- See: laravel validtor rules
Take Object and throw the same object if all rules passes
Parameters
Returns Object
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
