UNPKG

vimo-dt

Version:

A Vue2.x UI Project For Mobile & HyBrid

187 lines (155 loc) 6.02 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.setupConfig = setupConfig; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var isFunction = function isFunction(val) { return typeof val === 'function'; }; var isDefined = function isDefined(val) { return typeof val !== 'undefined'; }; var isObject = function isObject(val) { return (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object'; }; var isArray = Array.isArray; var URL_CONFIG_PREFIX = 'vm'; var Config = exports.Config = function () { function Config() { _classCallCheck(this, Config); this._cache = {}; this._settings = {}; this.plt = null; } _createClass(Config, [{ key: 'init', value: function init(config, plt) { this._settings = config && isObject(config) && !isArray(config) ? config : {}; this.plt = plt; } }, { key: 'get', value: function get(key) { var fallbackValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var platform = this.plt; if (!isDefined(this._cache[key])) { if (!isDefined(key)) { throw new Error('config key is not defined'); } var userPlatformValue = void 0; var userDefaultValue = this._settings[key]; var platformValue = void 0; var configObj = null; if (platform) { var queryStringValue = platform.getQueryParam(URL_CONFIG_PREFIX + key); if (isDefined(queryStringValue)) { if (queryStringValue === 'true') { this._cache[key] = true; } else if (queryStringValue === 'false') { this._cache[key] = false; } else { this._cache[key] = queryStringValue; } return this._cache[key]; } var activePlatformKeys = platform.platforms(); for (var i = 0, ilen = activePlatformKeys.length; i < ilen; i++) { if (this._settings.platforms) { configObj = this._settings.platforms[activePlatformKeys[i]]; if (configObj) { if (isDefined(configObj[key])) { userPlatformValue = configObj[key]; } } } configObj = platform.getPlatformConfig(activePlatformKeys[i]); if (configObj && configObj.settings) { if (isDefined(configObj.settings[key])) { platformValue = configObj.settings[key]; } } } } this._cache[key] = isDefined(userPlatformValue) ? userPlatformValue : isDefined(userDefaultValue) ? userDefaultValue : isDefined(platformValue) ? platformValue : null; } var rtnVal = this._cache[key]; if (isFunction(rtnVal)) { rtnVal = rtnVal(platform); } return rtnVal !== null ? rtnVal : fallbackValue; } }, { key: 'getBoolean', value: function getBoolean(key) { var fallbackValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var val = this.get(key); if (val === null) { return fallbackValue; } if (typeof val === 'string') { return val === 'true'; } return !!val; } }, { key: 'getNumber', value: function getNumber(key) { var fallbackValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN; var val = parseFloat(this.get(key)); return isNaN(val) ? fallbackValue : val; } }, { key: 'set', value: function set() { var arg0 = arguments.length <= 0 ? undefined : arguments[0]; var arg1 = arguments.length <= 1 ? undefined : arguments[1]; switch (arguments.length) { case 2: this._settings[arg0] = arg1; delete this._cache[arg0]; break; case 3: this._settings.platforms = this._settings.platforms || {}; this._settings.platforms[arg0] = this._settings.platforms[arg0] || {}; this._settings.platforms[arg0][arg1] = arguments.length <= 2 ? undefined : arguments[2]; delete this._cache[arg1]; break; } return this; } }, { key: 'settings', value: function settings(arg0, arg1) { switch (arguments.length) { case 0: return this._settings; case 1: this._settings = arg0; this._cache = {}; break; case 2: this._settings.platforms = this._settings.platforms || {}; this._settings.platforms[arg0] = arg1; this._cache = {}; break; } return this; } }, { key: 'cache', value: function cache() { return this._cache; } }]); return Config; }(); function setupConfig() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var plt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var c = new Config(); c.init(config, plt); return c; }