in src/renderers/Utils.js [34:94]
loadTemplates(templateDir: string) {
// 1. load codegen main templates
// 2. load codegen partial templates
// 3. discover files need to copy to the sdk folder
const mainTemplates = [];
const partialTemplates = {};
const versionedTemplates = [];
const filesNeedCopy = [];
const walkTemplateDir = (dir: string) => {
const relativeDir = dir.substring(templateDir.length) + path.sep;
fs.readdirSync(dir).forEach(file => {
const fullPath = path.join(dir, file);
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
walkTemplateDir(fullPath);
} else if (stat.isFile()) {
let match = file.match(/^(.*)\.mustache$/);
if (match) {
const name = match[1];
if (name === 'codegen') {
// Main templates
mainTemplates.push({
dir: relativeDir,
content: fs.readFileSync(fullPath, 'utf8'),
});
} else {
match = name.match(/^(.*)\.versioned$/);
if (match) {
// Config template ends with .versioned.mustache
versionedTemplates.push({
content: fs.readFileSync(fullPath, 'utf8'),
dir: relativeDir,
file: match[1],
});
} else {
// Partial templates
partialTemplates[relativeDir + name] = fs.readFileSync(
fullPath,
'utf8',
);
}
}
} else {
filesNeedCopy.push({
dir: relativeDir,
file: file,
});
}
}
});
};
walkTemplateDir(templateDir);
return {
mainTemplates: mainTemplates,
partialTemplates: partialTemplates,
versionedTemplates: versionedTemplates,
filesNeedCopy: filesNeedCopy,
};
},