-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathwebpack.helper.js
40 lines (34 loc) · 1.34 KB
/
webpack.helper.js
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
38
39
40
/* eslint-disable guard-for-in */
/* eslint-disable consistent-return */
/* eslint-disable no-restricted-syntax */
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { readdirSync } = require("fs");
//* To add an extra test this script does not need to be modified.*
//* Please read CONTRIBUTING.MD *
const getFilesInDirectory = (source) =>
readdirSync(source, { withFileTypes: true })
.filter((dirent) => !dirent.isDirectory())
.map((dirent) => dirent.name);
const getTemplates = (opts) => {
const matchTemplateRegex = /(?:_template)\d{1,}_/;
const getTemplateNumberFromName = (name) => {
const selectTemplateRegex = /(?<=_template)\d+?(?=_)/;
const templateNameRegex = new RegExp(selectTemplateRegex);
// Check if name contains _templateN_ -> Select the N from _templateN_
return name.match(matchTemplateRegex) ? templateNameRegex.exec(name)[0] : undefined;
};
const files = getFilesInDirectory(`./tests/${opts.templateType}`);
const templates = [];
for (const file of files) {
const HTML_TEMPLATE = getTemplateNumberFromName(file);
if (HTML_TEMPLATE) {
templates.push({
fullFileName: file,
pageName: file.split(matchTemplateRegex)[1].split(opts.extension)[0],
template_id: HTML_TEMPLATE,
});
}
}
return templates;
};
module.exports = { getTemplates };