You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
const fs = require('fs');
|
|
const root = require('./root');
|
|
|
|
function getFiles(folder) {
|
|
const files = [];
|
|
const f = fs.readdirSync(root(folder));
|
|
for (const i of f) {
|
|
if (!i.startsWith('.')) {
|
|
if (fs.statSync(root(`${folder}/${i}`)).isDirectory()) {
|
|
const g = getFiles(`${folder}/${i}`);
|
|
for (const j of g) files.push(`${i}/${j}`);
|
|
} else files.push(i);
|
|
}
|
|
}
|
|
return files;
|
|
}
|
|
|
|
const build = (dir, exclude = []) => {
|
|
const files = getFiles(dir);
|
|
const templates = {};
|
|
for (const i of files) {
|
|
let template = fs.readFileSync(root(`${dir}/${i}`)).toString();
|
|
if (!exclude.includes(i)) {
|
|
template = template
|
|
.trim()
|
|
.replace(/ *\n */gmi, ' ')
|
|
.replace(/, /gmi, ',')
|
|
.replace(/%} {%/gmi, '%}{%')
|
|
.replace(/ %}/gmi, '%}')
|
|
.replace(/{% /gmi, '{%')
|
|
.replace(/> </gmi, '><')
|
|
.replace(/}} </gmi, '}}<')
|
|
.replace(/> {{/gmi, '>{{')
|
|
.replace(/{{ /gmi, '{{')
|
|
.replace(/ }}/gmi, '}}')
|
|
.trim();
|
|
}
|
|
templates[i] = template;
|
|
}
|
|
return templates;
|
|
};
|
|
|
|
module.exports = build;
|