UNPKG

twitch-core

Version:
55 lines (54 loc) 1.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SettingsProvider = void 0; const path_1 = __importDefault(require("path")); const lowdb_1 = __importDefault(require("lowdb")); const FileSync_1 = __importDefault(require("lowdb/adapters/FileSync")); class SettingsProvider { constructor() { this.defaults = { 'commands': () => { return { Commands: {}, TextCommandsManager: {} }; }, 'text-commands': () => { return { options: {}, commands: [] }; } }; } /** * Set Settings Provider * * @param files */ set(...files) { var _a; for (const file of files) { const ext = path_1.default.extname(file); const name = path_1.default.basename(file, ext); const provider = lowdb_1.default(new FileSync_1.default(file)); provider .defaults((_a = this.defaults[name]) === null || _a === void 0 ? void 0 : _a.call(this)) .write(); this.providers = Object.assign(Object.assign({}, this.providers), { [name]: provider }); } } /** * Get Settings Provider * * @param name * @returns */ get(name) { return this.providers[name]; } } exports.SettingsProvider = SettingsProvider;