select = (settings = {}) => {
if (
typeof settings.options != "object" ||
Object.keys(settings.options).length == 0
) {
return "Please provide at least one option!";
}
if (Array.isArray(settings.options)) {
settings.options = settings.options.reduce(
(obj, key) => Object.assign(obj, { [key]: key }),
{}
);
}
let options = "";
for (let [key, value] of Object.entries(settings.options)) {
if (key === "null") {
options += `<option ${
key == settings.selected ? "selected" : ""
} value = ${null}></option>`;
} else {
options += `<option ${
key == settings.selected ? "selected" : ""
} value = '${value}'>${key}</option>`;
}
}
settings.value = options;
return input(settings, "select");
}