1.0.1 • Published 3 years ago
di-javascript v1.0.1
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"}
]