node package manager

transformer

Transform data using synchronous and asynchronous functions.

transformer

Transform data using synchronous and asynchronous functions.

$ npm i --save transformer
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' } 

Transformer Transforms the data using synchronous and asynchronous functions.

  • Object data: The data object.
  • Object opts: The options object:
  • autostart (Boolean): If true, the functions will be executed, without calling the start() method.
  • Number Return description.

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: [....]>

  • Function|Transformer fn: The function to add. Note you can add an existing transformer instance as well.
  • 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.
  • Transformer The current Transformer instance.

Starts the function execution.

  • Object data: The data object.
  • Function fn: The callback function.

Have an idea? Found a bug? See how to contribute.

Another way to support the development of my open-source modules is to set up a recurring donation, via Patreon. 🚀

PayPal donations are appreciated too! Each dollar helps.

Thanks! ❤️

If you are using this library in one of your projects, add it in this list. ✨

  • launchjs—Launch Application Framework
  • lien—Another lightweight NodeJS framework. Lien is the link between request and response objects.

MIT © Ionică Bizău