30 lines
819 B
JavaScript
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);
|