forked from type-challenges/type-challenges
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuildAnswersFolder.ts
37 lines (31 loc) · 1.23 KB
/
buildAnswersFolder.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import path from 'path';
import fs from 'fs-extra'
import { loadQuizes } from './loader'
const ANSWERS_FOLDER = path.join(__dirname, '../answers/');
async function buildAnswersFolder() {
const quizes = await loadQuizes();
try {
// If answers folder doesn't exist create it
if (!fs.existsSync(ANSWERS_FOLDER)) {
fs.mkdirSync(ANSWERS_FOLDER);
}
} catch (err) {
console.error(err);
return;
}
for (let quiz of quizes) {
let divider = `/******************************************************************************\n* Answer\n******************************************************************************/\n`;
let content = `${quiz.tests}\n${divider}\n${quiz.template}\n`;
let outputFilename = path.join(ANSWERS_FOLDER, `${quiz.path}.ts`);
if (!fs.existsSync(outputFilename)) {
fs.writeFileSync(outputFilename, content);
console.log(`Generating ${outputFilename}...`)
}
}
let links: string[] = [];
for (let quiz of quizes) {
links.push(`<a href="./answers/${quiz.path}.ts" target="_blank">${quiz.no}・${quiz.info.en?.title}</a>`);
}
console.log(links.join('\n\n'));
}
buildAnswersFolder()