🐛 fix array key in config
This commit is contained in:
parent
d9e37e5e19
commit
c634532897
@ -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];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user