
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Conditionally run promise series waterfall alike, every promise in the chain will get the previous result. At the end you get the an array with all the results, being the laters the final outcome
Promif controls your workflow control using promises (even for the test expression).
Async test function:
const promif = require('promif');
const asyncTestFunction = () => {
return new Promise(resolve=>{setTimeout(()=>resolve(true),500)});
};
promif.when({
test: asyncTestFunction,
whenTrue: ()=>Promise.resolve(true),
whenFalse: ()=>Promise.resolve(false)
}).then((res)=>{
// after 500ms => res = true!
console.log(res)
});
Sync test
const promif = require('promif');
let x = 23;
promif.when({
test: x === 23, // Sync test (expression)
whenTrue: ()=>Promise.resolve('Yahoo'),
whenFalse: ()=>Promise.resolve(false)
}).then((res)=>{
// res = 'Yahoo'!
console.log(res);
});
** Both whenTrue & whenFalse must be functions returning Promise (will be resolved or rejected);
Run sequentially an array of preformated objects like in promif.when Every promise gets the result of the previous resolved promise
const promif = require('promif');
const pif1 = {
test: false,
whenFalse: ()=>Promise.resolve(2)
};
const pif2 = {
test: () => new Promise((resolve) => {
setTimeout(() => resolve(true), 30);
}),
whenTrue: (val1) => Promise.resolve(2 * val1)
};
const pif3 = {
test: true,
whenTrue: (val2) => new Promise((resolve) => {
setTimeout(() => resolve(3 * val2), 10);
}),
whenFalse: () => Promise.reject('Error pif3')
};
promif.serial([pif1, pif2, pif3])
.then((res) => {
// 2 * 2 * 3
// Array whith all intermetiate values (each promise)
// res = [2,4,12]
console.log(res);
})
.catch((e)=>{
// no error
console.error(e);
});
FAQs
Conditionally run promise series waterfall alike, every promise in the chain will get the previous result. At the end you get the an array with all the results, being the laters the final outcome
We found that promif demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.