the-utils
Version:
Set of tools to keep simple things simple
93 lines (74 loc) • 2.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.str = undefined;
var _isInteger = require('babel-runtime/core-js/number/is-integer');
var _isInteger2 = _interopRequireDefault(_isInteger);
var _array = require('./array');
var _object = require('./object');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// =========== String
var template = function template(strings) {
for (var _len = arguments.length, keys = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
keys[_key - 1] = arguments[_key];
}
return function () {
for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
values[_key2] = arguments[_key2];
}
var dict = _array.arr.get(values, [values.length - 1], {});
return strings.reduce(function (accumulator, part, i) {
return accumulator + ((0, _isInteger2.default)(keys[i - 1]) ? _array.arr.get(values, keys[i - 1], '') : _object.obj.get(dict, keys[i - 1], '')) + part;
});
};
};
var cmp = function cmp(a, b) {
if (a < b) return -1;
if (a > b) return 1;
return 0;
};
var toBoolean = function toBoolean(s) {
var falsy = /^(?:f(?:alse)?|no?|0+)$/i;
return !falsy.test(s) && !!s;
};
var ucFirst = function ucFirst(string) {
return typeof string === 'string' || string instanceof String ? string.charAt(0).toUpperCase() + string.slice(1).toLowerCase() : string;
};
var short = function short(a, b) {
a = a.toString();
b = b.toString();
var n = 0;
var i = 0;
for (i = 0, n = Math.max(a.length, b.length); i < n && a.charAt(i) === b.charAt(i); ++i) {}
if (i === n) return 0;
return a.charAt(i) > b.charAt(i) ? -1 : 1;
};
var search = function search(str1, str2) {
return String(str1 || ''.toLowerCase()).includes(String(str2 || ''.toLowerCase()));
};
var btoa = function btoa(str) {
return Buffer.from(str).toString('base64');
};
var checkport = function checkport(host, port) {
return host.indexOf(':') === -1 ? host + ':' + port : host;
};
var getCookie = function getCookie(name) {
if (typeof document !== 'undefined') {
var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); // eslint-disable-line no-undef
return v ? v[2] : undefined;
}
return undefined;
};
var str = exports.str = {
template: template,
cmp: cmp,
toBoolean: toBoolean,
ucFirst: ucFirst,
short: short,
search: search,
btoa: btoa,
checkport: checkport,
getCookie: getCookie
};
exports.default = str;