1.0.1 • Published 3 years ago

di-javascript v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

di-javascript

Steps to use the di

  • Consider a file user.js-
const getuser=async()=>{
    return new Promise((resolve,reject)=>{
        setTimeout(() => {
            reject('user is no more');
        }, 1000);
    });
}
const addUser=async(username,userid)=>{
    return `added a new user:${username}:with id:${userid}`;
}
const removeUser=async()=>{
    return new Promise((resolve,reject)=>{
       resolve(`user removed `);
    })
}
const getUserId=async(userid)=>{
    return userid;
}
module.exports={
    getuser,
    addUser,
    removeUser,
    getUserId
}
  • consider another file app.js where we will inject user.js as dependency-
const user=require('./user');
const container =require('di-javascript');
//inject functions as dependencies 
container.injectFunctionalDependency('getuser',user.getuser);
container.injectFunctionalDependency('adduser',user.addUser);
container.injectFunctionalDependency('getUserId',user.getUserId);
container.injectFunctionalDependency('removeUser',user.removeUser);
container.injectFunctionalDependency('modify',user.modify); //execute a dependency
 container.execute('adduser',["siddharth",25])  
 .then((v)=>{
   console.log(`result:${v}`);
 })
 .catch((e)=>{
   console.log(`error:${e.toString()}`);
 });
//get a dependency 
let func=container.getDependency('getuser');
//func will contain the dependency
 func().then(val=>{
     console.log(`ans to get depdendency:${val}`)
 })
 .catch((e)=>{
     console.log("error",e);
 })
//execute chain of dependencies
container.autoInject(
  {"getuser":{args:[]},
  "getUserId":{args:[26,"getuser"]},
  "adduser":{args:["sid","getUserId"]},
  "removeUser":{args:[]}
})
.then((val)=>{
  console.log(`auto inject result:${JSON.stringify(val)}`)
})
.catch(e=>{
  console.log(`auto inject error:${e}`);
})
  • Result -
  [{"name":"getuser","args":[],"isCompleted":1,"result":"user is no more"},
  {"name":"removeUser","args":[],"isCompleted":1,"result":"user removed "},
  {"name":"getUserId","args":[26,"user is no more"],"dependsOn":["getuser"],"isDependent":true,"dependencyNumber":1,"isCompleted":1,"result":26}
  ,{"name":"adduser","args":[null,26],"dependsOn":["getUserId"],"isDependent":true,"dependencyNumber":1,"isCompleted":1,"result":"added a new user:sid:with id:26"}
  ]