UNPKG

typescript-libraries

Version:
108 lines (107 loc) 4.25 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TSString = void 0; var TSString = /** @class */ (function () { function TSString() { } TSString.slugify = function (text, join, cut) { if (join === void 0) { join = '-'; } if (cut) { text = text.toString().split(cut)[0]; } text = text.toString().replace(/[^\w\s]/g, ''); if (join === 'cc') { return text.split(/\.|_|\s+|\d+/).map(function (v, i) { v = v.toLowerCase(); if (i > 0) { v = TSString.cfChar(v); } return v.length > 1 ? v : ''; }).filter(Boolean).join(''); } return text.replace(/\s+/g, join).toLowerCase(); }; TSString.parseAndReplace = function (text, data, cb, masks) { if (masks === void 0) { masks = ['braces']; } if (data && Array.isArray(data)) { data.forEach(function (v, i) { return text = text.replace(RegExp('\{' + i + '\}'.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), v); }); } else if (data && typeof data === 'object') { var keys = masks.reduce(function (a, k) { return Object.assign.apply(Object, __spreadArray([a], (text.match(TSString.masks(k, '\.\+\?')) || []).map(function (s) { var _a; return (_a = {}, _a[s.slice(1, -1)] = s, _a); }), false)); }, {}); for (var k in keys) { if (keys.hasOwnProperty(k)) { var _a = k.split(/:(.+)/), key = _a[0], type = _a[1]; text = text.replace(new RegExp(keys[k].replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), cb ? cb(key, type) : data[key]); } } } masks.forEach(function (k) { return text = text.replace(TSString.masks(k), ''); }); return text; }; TSString.masks = function (kind, key) { if (key === void 0) { key = '\.\*'; } if (kind === 'braces') { return /(?:^|)\{([^{}]*)(\}(?!\}))/g; } else if (kind === 'parentheses') { return new RegExp('\\(' + key + '\\)', 'g'); } else if (kind === 'brackets') { return new RegExp('\\[' + key + '\\]', 'g'); } return new RegExp('%' + key + '%', 'g'); }; TSString.pad = function (string, length, char, append) { if (length === void 0) { length = 2; } if (char === void 0) { char = ' '; } string = string.toString(); char = char.toString(); while (string.length < length) { string = append ? string + char : char + string; } return string; }; TSString.cfChar = function (string, char) { string = string.toString(); if (char && string.indexOf(char) !== 0) { string = char + string; } else { string = string.charAt(0).toUpperCase() + string.slice(1); } return string; }; TSString.paramToJson = function (text) { return '{"' + text.replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}'; }; TSString.isJson = function (text) { return /^[\],:{}\s]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, '@') .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') .replace(/(?:^|:|,)(?:\s*\[)+/g, '')); }; TSString.splitBy = function (term, match, kind) { if (kind === void 0) { kind = 'last'; } var index; if (kind === 'last') { index = term.lastIndexOf(match); } else { index = term.indexOf(match); } return [term.substring(0, index), term.substring(index + 1)]; }; return TSString; }()); exports.TSString = TSString;