JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 324
  • Score
    100M100P100Q83070F
  • 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

PayPal AMA 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 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

📜 License

MIT © Ionică Bizău