mirror of
https://github.com/cupcakearmy/svelte-i18n.git
synced 2024-07-02 11:44:53 +02:00
28 lines
563 B
TypeScript
28 lines
563 B
TypeScript
|
export function delve(obj: Record<string, unknown>, fullKey: string) {
|
||
|
if (fullKey in obj) {
|
||
|
return obj[fullKey];
|
||
|
}
|
||
|
|
||
|
const keys = fullKey.split('.');
|
||
|
let result: any = obj;
|
||
|
|
||
|
for (let p = 0; p < keys.length; p++) {
|
||
|
if (typeof result === 'object') {
|
||
|
if (p > 0) {
|
||
|
const partialKey = keys.slice(p, keys.length).join('.');
|
||
|
|
||
|
if (partialKey in result) {
|
||
|
result = result[partialKey];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
result = result[keys[p]];
|
||
|
} else {
|
||
|
result = undefined;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
}
|