UNPKG

node-easysms

Version:

EasySMS is an SMS sender for Node.js

87 lines (86 loc) 2.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Config = void 0; const Utils_1 = require("./Support/Utils"); /** * 配置对象 */ class Config { constructor(config = null) { this.config = { default: { gateways: ['test'], strategy: 'order', }, gateways: {}, }; if (config) { this.config = { default: { gateways: config.default && config.default.gateways ? config.default.gateways : ['test'], strategy: config.default && config.default.strategy ? config.default.strategy : 'order', }, gateways: (0, Utils_1.merge)({}, config.gateways), }; } } get(key = null, defaultValue = null) { let config = (0, Utils_1.merge)({}, this.config); if (!key) { return config; } if (typeof config[key] != 'undefined') { return config[key]; } if (key.indexOf('.') > -1) { let keys = key.split('.'); for (let i = 0; i < keys.length; i++) { let k = keys[i]; if (typeof config != 'object' || typeof config[k] == 'undefined') { return defaultValue; } config = config[k]; } return config; } else { return defaultValue; } } set(key, value) { if (!key) { throw new Error('Invalid config key.'); } let keys = key.split('.'); let config = this.config; while (keys.length > 1) { key = keys.shift(); if (typeof config[key] == 'undefined' || typeof config[key] != 'object') { config[key] = {}; } config = config[key]; } config[keys.shift()] = value; return config; } has(key) { return !!this.get(key); } offsetExists(key) { return typeof this.config[key] == 'undefined'; } offsetGet(key) { return this.get(key); } offsetSet(key, value) { this.set(key, value); } offsetUnset(key) { this.set(key, null); } toString() { return JSON.stringify(this); } } exports.Config = Config; ;