-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.js
71 lines (63 loc) · 1.36 KB
/
utils.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const inquirer = require("inquirer");
const inputMany = async (
repeatQuestions,
conditionQuestions = [
{
name: "answer",
type: "confirm",
message: "Add more?",
},
]
) => {
let _picks = [];
let _stop = true;
while (_stop) {
let res = await inquirer.prompt(repeatQuestions);
_picks.push(res);
res = await inquirer.prompt(conditionQuestions);
if (!res.answer) {
_stop = false;
}
}
return _picks;
};
const cleanup = (config) => {
Object.keys(config).forEach((key) => {
try {
const isArray = Array.isArray(config[key]);
const isObject = typeof config[key] === "object";
if (isArray && config[key].length === 0) {
delete config[key];
} else if (
!isArray &&
isObject &&
Object.keys(config[key]).length === 0
) {
delete config[key];
}
if (isArray && config[key]) {
config[key] = [...new Set(config[key])];
}
} catch (error) {
console.error("Format Error", key, error);
}
});
};
const initializeArray = (value) => {
if (!Array.isArray(value)) {
value = [];
}
return value;
};
const initializeObject = (value) => {
if (value === undefined || !typeof value === "object") {
value = {};
}
return value;
};
module.exports = {
initializeArray,
initializeObject,
inputMany,
cleanup,
};