freeCodeCamp/client/plugins/fcc-source-challenges/create-challenge-nodes.js
Tom 379f6f89ca fix(learn): tests for python video lessons (#38600)
* fix: improve tests for video challenges

* fix: remove unused challenges + get rid of no description warning

* fix: remove non-existent challenges from meta
2020-05-27 13:19:11 +05:30

42 lines
884 B
JavaScript

const crypto = require('crypto');
function createChallengeNode(challenge, reporter) {
if (
typeof challenge.description[0] !== 'string' &&
challenge.challengeType !== 11
) {
reporter.warn(`
${challenge.title} has a description that will break things!
`);
}
const contentDigest = crypto
.createHash('md5')
.update(JSON.stringify(challenge))
.digest('hex');
const internal = {
contentDigest,
type: 'ChallengeNode'
};
/* eslint-disable prefer-object-spread/prefer-object-spread */
return JSON.parse(
JSON.stringify(
Object.assign(
{},
{
id: challenge.id + ' >>>> ChallengeNode',
children: [],
parent: null,
internal,
sourceInstanceName: 'challenge'
},
challenge
)
)
);
}
exports.createChallengeNode = createChallengeNode;