fix(client): DRY out challenge sourcing

Also handles file changes the same way as the original sourcing.
This commit is contained in:
Oliver Eyton-Williams
2020-05-20 16:00:08 +02:00
committed by Mrugesh Mohapatra
parent 597ceba27f
commit 5bc3e15e3a

View File

@ -41,9 +41,8 @@ exports.sourceNodes = function sourceChallengesSourceNodes(
File changed at ${filePath}, replacing challengeNode id ${challenge.id} File changed at ${filePath}, replacing challengeNode id ${challenge.id}
` `
); );
return createChallengeNode(challenge, reporter); createVisibleChallenge(challenge);
}) })
.then(createNode)
.catch(e => .catch(e =>
reporter.error(`fcc-replace-challenge reporter.error(`fcc-replace-challenge
@ -58,12 +57,7 @@ File changed at ${filePath}, replacing challengeNode id ${challenge.id}
return source() return source()
.then(challenges => Promise.all(challenges)) .then(challenges => Promise.all(challenges))
.then(challenges => .then(challenges =>
challenges challenges.map(challenge => createVisibleChallenge(challenge))
.filter(
challenge => challenge.superBlock.toLowerCase() !== 'certificates'
)
.map(challenge => createChallengeNode(challenge, reporter))
.map(node => createNode(node))
) )
.catch(e => .catch(e =>
reporter.panic(`fcc-source-challenges reporter.panic(`fcc-source-challenges
@ -74,6 +68,11 @@ File changed at ${filePath}, replacing challengeNode id ${challenge.id}
); );
} }
function createVisibleChallenge(challenge) {
if (challenge.superBlock.toLowerCase() === 'certificates') return;
createNode(createChallengeNode(challenge, reporter));
}
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
watcher.on('ready', () => sourceAndCreateNodes().then(resolve, reject)); watcher.on('ready', () => sourceAndCreateNodes().then(resolve, reject));
}); });