javascriptx
Version:
javascript 基础库扩展
78 lines (63 loc) • 2.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
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; };
var _replaceAll = require("./replaceAll");
var _replaceAll2 = _interopRequireDefault(_replaceAll);
var _getValue = require("./getValue");
var _getValue2 = _interopRequireDefault(_getValue);
var _url = require("./url");
var _url2 = _interopRequireDefault(_url);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var replace = function replace(string) {
if (!string || typeof string !== 'string') {
return string;
}
if (string.indexOf('/') === 0) {
string = window._baseURL + string;
}
if (string.indexOf('~/') > -1) {
string = (0, _replaceAll2.default)(string, '~/', window._baseURL);
}
if (string.indexOf('../') > -1) {
string = (0, _replaceAll2.default)(string, '\\../', window._baseURL);
}
return string;
};
var humpName = function humpName(name) {
var arr = name.split('-');
for (var i = 1; i < arr.length; i++) {
var str = arr[i];
var s = str[0] || '';
arr[i] = str.replace(s, s.toUpperCase());
}
return arr.join('');
};
var fields = ['src', 'href', 'background', 'background-image', 'backgroundImage', 'border', 'border-image', 'borderImage', 'border-image-source', 'borderImageSource'];
exports.default = function (config) {
return function (varPath) {
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var value = (0, _getValue2.default)(config, varPath, defaultValue);
if (value === undefined || value === null) {
return value;
}
if ((typeof value === "undefined" ? "undefined" : _typeof(value)) === 'object') {
value = _extends({}, value);
fields.forEach(function (field) {
if (value[field]) {
value[field] = replace(value[field]);
if (field.indexOf('-') > -1) {
value[humpName(field)] = value[field];
delete value[field];
}
}
});
}
if (typeof value === 'string') {
value = (0, _url2.default)(value, true);
}
return value;
};
};