freeCodeCamp/curriculum/gulpfile.js

30 lines
819 B
JavaScript

const fs = require('fs-extra');
const gulp = require('gulp');
const { getChallengesForLang } = require('./getChallenges');
const { supportedLangs } = require('./utils');
function generateCurricula(done) {
const promises = supportedLangs.map(lang => getChallengesForLang(lang));
return Promise.all(promises)
.then(allLangCurriculum =>
allLangCurriculum.reduce(
(map, current, i) => ({ ...map, [supportedLangs[i]]: current }),
{}
)
)
.then(curricula =>
fs.writeFile('./curricula.json', JSON.stringify(curricula))
)
.then(done);
}
function watchFiles() {
return gulp.watch('./challenges/**/*.md', generateCurricula);
}
const defaultTask = gulp.series(generateCurricula, watchFiles);
gulp.task('default', defaultTask);
gulp.task('build', generateCurricula);