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