node package manager

transformer

Transform data using synchronous and asynchronous functions.

transformer

transformer

Patreon PayPal AMA Travis Version Downloads Get help on Codementor

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): If true, the functions will be executed, without calling the start() 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|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.

Return

  • Transformer The current Transformer instance.

start(data, fn)

Starts the function execution.

Params

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

😋 How to contribute

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

💰 Donations

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! ❤️

💫 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
  • lien—Another lightweight NodeJS framework. Lien is the link between request and response objects.

📜 License

MIT © Ionică Bizău