UNPKG

seyfert

Version:

The most advanced framework for discord bots

43 lines (42 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LangRouter = void 0; const LangRouter = (userLocale, defaultLang, langs) => { function createProxy(route = [], args = []) { const noop = () => { return; }; return new Proxy(noop, { get: (_, key) => { if (key === 'get') { function getValue(locale) { if (typeof locale === 'undefined') throw new Error('Undefined locale'); let value = langs[locale]; for (const i of route) value = value[i]; return value; } return (locale) => { let result; try { result = getValue(locale ?? userLocale); } catch { result = getValue(defaultLang); } const value = typeof result === 'function' ? result(...args) : result; return value; }; } return createProxy([...route, key], args); }, apply: (...[, , args]) => { return createProxy(route, args); }, }); } return createProxy; }; exports.LangRouter = LangRouter; /**Idea inspiration from: FreeAoi */