🐛 fix array key in config

This commit is contained in:
Flam3rboy 2021-10-09 14:31:19 +02:00
parent d9e37e5e19
commit c634532897

View File

@ -12,6 +12,7 @@ export const Config = {
if (config) return config; if (config) return config;
pairs = await ConfigEntity.find(); pairs = await ConfigEntity.find();
config = pairsToConfig(pairs); config = pairsToConfig(pairs);
console.log(config.guild.autoJoin);
return this.set((config || {}).merge(DefaultConfigOptions)); return this.set((config || {}).merge(DefaultConfigOptions));
}, },
@ -47,16 +48,18 @@ function pairsToConfig(pairs: ConfigEntity[]) {
pairs.forEach((p) => { pairs.forEach((p) => {
const keys = p.key.split("_"); const keys = p.key.split("_");
let prev = "";
let obj = value; let obj = value;
let prev = "";
let prevObj = obj;
let i = 0; let i = 0;
for (const key of keys) { for (const key of keys) {
if (Number(key) && !obj[prev]) obj = obj[prev] = []; if (!isNaN(Number(key)) && !prevObj[prev]?.length) prevObj[prev] = obj = [];
if (i++ === keys.length - 1) obj[key] = p.value; if (i++ === keys.length - 1) obj[key] = p.value;
else if (!obj[key]) obj[key] = {}; else if (!obj[key]) obj[key] = {};
prev = key; prev = key;
prevObj = obj;
obj = obj[key]; obj = obj[key];
} }
}); });