0.0.4 • Published 6 years ago

simple-dependency-promise v0.0.4

Weekly downloads
7
License
ISC
Repository
github
Last release
6 years ago

Build Status NPM version

Simple dependency for promises, functions or simple processes

A basic module for sequencing and executing functions and promises with their dependencies. It makes easy to chain and access to other promises results, if you provoke a Circular dependency, it will throw an error.

Npm Install

npm install simple-dependency-promise --save

Javascript Usage

    const RefPromise = require("simple-dependency-promise");

    const a = new RefPromise({
      key: "a", 
      run(refs){return "My message : " + refs.b;}
    });
 
    const b = new RefPromise({
      key: "b", 
      run(){return "from B KEY promise";}
    });
   
    a.inject(b);

    a.start().then(res=>{
      console.log(res.a);
      //"My message : from B KEY promise
    });

Using promises

Example 1

    const RefPromise = require("simple-dependency-promise");

    const a = new RefPromise({
      key: "a", 
      run(refs){
        //Here it can access to b and c results 
        return new Promise((resolve, reject) => {
          resolve({success: true, b: refs.b, c: refs.c});
        });
      }
    });
 
    const b = new RefPromise({
      key: "b", 
      run(refs){
        //Here it can access to c result 
        return new Promise((resolve, reject) => {
          resolve({success: true, c: refs.c, ip: '127.0.0.1'});
        });
      }
    });
 
    const c = new RefPromise({
      key: "c", 
      run(){
         //c cannot acces anything because of its lack of dependency
         return new Promise((resolve, reject) => {
          resolve({success: true, data: {userName: "Admin"}});
        });
      }
    });
   
    a.inject(b);
    a.inject(c);
    b.inject(c);

    a.start().then(res=>{
      console.log(res.a.success)
      //true
      console.log(res.a.b.ip)
      //127.0.0.1
      console.log(res.a.c.data.userName)
      //Admin
    });

    

Example 2

Options

General Orchestrator features.

F(X)ParamsReturnDetail
startpromiseThis method starts to chain javascript promises
injectRefPromise objectvoidThis method add a dependency to the process

Add() method options.

PropertiesTypeDetail
keystringthis is the key name of the process, keep it unique
run(refs)functionMain method, you have to return a promise/function/object here
refsobjectThis param contains the data of your promises if you injected it

Tests

npm test

License

MIT