Package Exports
- transformer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (transformer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
transformer
Transform data using synchronous and asynchronous functions.
☁️ Installation
$ npm i --save transformer📋 Example
const Transformer = require("transformer");
let t = new Transformer({ world: "Earth" });
// There are three levels where the functions are added to be executed:
//
// Parallel: | <0: [.............................................]>
// Unordered (don't wait): | <4a: [........]>
// + <4b: [....]>
// + <4c: [......]>
// Ordered (wait): | <1: [...]> <2: [.]> <3:[.....]> <5: [....]>
// This will run in parallel with all the other functions
t.add((data, cb) => {
setTimeout(() => {
data.parallel = 42;
cb();
}, 2000);
}, Transformer.PARALLEL);
// Async function, but ordered
t.add((data, cb) => {
setTimeout(() => {
data.oldWorld = data.world;
data.world = "Mars";
cb();
}, 1000);
});
// Another async function and ordered
t.add((data, cb) => {
setTimeout(() => {
data.baz = 7;
cb();
}, 500);
});
// Async function, but not ordered
t.add((data, cb) => {
setTimeout(() => {
data.foo = 42;
cb();
}, 1000);
}, Transformer.UNORDERED);
// Another unordered function (this will end sooner)
t.add((data, cb) => {
setTimeout(() => {
data.bar = 42;
cb(null, data);
}, 900);
}, Transformer.UNORDERED);
// Sync function
t.add(data => {
data.planet = data.world;
});
// Finally show the data
t.on("end", (err, data) => console.log(data));
// => { world: 'Mars'
// , parallel: 42
// , oldWorld: 'Earth'
// , baz: 7
// , bar: 42
// , foo: 42
// , planet: 'Mars' }📝 Documentation
transformer(data, opts)
Transformer Transforms the data using synchronous and asynchronous functions.
Params
- Object
data: The data object. - Object
opts: The options object: autostart(Boolean): Iftrue, the functions will be executed, without calling thestart()method.
Return
- Number Return description.
add(fn, type)
Adds a new function.
There are three levels where the functions are added to be executed:
Parallel: | <0: [.............................................]> Unordered (don't wait): | <4a: [........]> + <4b: [....]> + <4c: [......]> Ordered (wait): | <1: [...]> <2: [.]> <3:[.....]> <5: [....]>
Params
- Function
fn: The function to add. - TransformerType
type: One of the following:Transformer.PARALLEL: Used to append on the parallel timeline.Transformer.UNORDERED: Grouped, but unordered.Transformer.ORDERED: Grouped, but ordered.
start(fn)
Starts the function execution.
Params
- Function
fn: The callback function.
😋 How to contribute
Have an idea? Found a bug? See how to contribute.
💫 Where is this library used?
If you are using this library in one of your projects, add it in this list. ✨
launchjs—Launch Application Framework
