JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 324
  • Score
    100M100P100Q83084F
  • License MIT

Transform data using synchronous and asynchronous functions.

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

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