Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
// mocked functions for demo purpose
const fakePromise = (data) => new Promise((r) => {
  setTimeout(r, 100, data);
});
const getAllCommitsForaPR = (number) => fakePromise(Array(number).fill(number));
const getAllOpenPRs = () => fakePromise([{number: 1}, {number: 2}, {number: 3}, {number: 4}]);
const checkCommitMessageForPatch = (message) => message % 2;
// function as discussed in the post
const getNonSemverPatchPRs = async () => {
    const allOpenPrs = await getAllOpenPRs();
    return allOpenPrs.reduce(async (previousPromise, pr) => {
        const collection = await previousPromise;
        const allCommits = await getAllCommitsForaPR(pr.number);
        const isNotSemverPatchPR = checkCommitMessageForPatch(allCommits[0]);
        
        if (isNotSemverPatchPR) {
            collection.push(pr);
        }
        return collection;
    }, Promise.resolve([]));
};
getNonSemverPatchPRs()
.then((a) => console.log(a))
.catch((e) => console.error(e))
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
gyandeepspro
0viewers