twitch-core
Version:
Twitch bot command client
55 lines (54 loc) • 1.69 kB
JavaScript
;
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;