@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
43 lines • 6.09 kB
JavaScript
// Declare the TypeScript for Declaration Merging
// https://www.typescriptlang.org/docs/handbook/declaration-merging.html
if (String.prototype.replaceAll == null) {
String.prototype.replaceAll = function (stringToFind, stringToReplace) {
let temp = this;
while (temp.indexOf(stringToFind) !== -1)
temp = temp.replace(stringToFind, stringToReplace);
return temp;
};
}
if (String.prototype.format == null) {
String.prototype.format = function () {
let args = arguments;
return this.replace(/{(\d+)}/g, function (match, num) {
return typeof args[num] !== "undefined" ? args[num] : match;
});
};
}
if (String.prototype.trim == null) {
String.prototype.trim = function () {
return String(this)
.replace(/^\s+|\s+$/g, "");
};
}
if (String.prototype.startsWith == null) {
// see below for better implementation!
String.prototype.startsWith = function (str) {
return this.slice(0, str.length) === str;
};
}
if (String.prototype.endsWith == null) {
String.prototype.endsWith = function (pattern) {
let d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
}
if (String.prototype.isPrintable == null) {
String.prototype.isPrintable = function () {
let re = /^[\x20-\x7e]*$/;
return re.test(this);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbFN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92b3J0ZXgvVXRpbFN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpREFBaUQ7QUFDakQsd0VBQXdFO0FBYXhFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO0lBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLFVBQzFCLFlBQW9CLEVBQ3BCLGVBQXVCO1FBRXZCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ3RELE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQyxDQUFBO0NBQ0o7QUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtJQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRztRQUN0QixJQUFJLElBQUksR0FBRyxTQUFTLENBQUE7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUM1QixLQUFLLEVBQ0wsR0FBRztZQUVILE9BQU8sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUMvRCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQTtDQUNKO0FBRUQsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7SUFDL0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUc7UUFDcEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO2FBQ2QsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUE7Q0FDSjtBQUVELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO0lBQ3JDLHVDQUF1QztJQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxVQUFVLEdBQVc7UUFDL0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFBO0lBQzVDLENBQUMsQ0FBQTtDQUNKO0FBRUQsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7SUFDbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxPQUFlO1FBQ2pELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEQsQ0FBQyxDQUFBO0NBQ0o7QUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRTtJQUN0QyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRztRQUMzQixJQUFJLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQTtRQUN6QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEIsQ0FBQyxDQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBEZWNsYXJlIHRoZSBUeXBlU2NyaXB0IGZvciBEZWNsYXJhdGlvbiBNZXJnaW5nXG4vLyBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9kZWNsYXJhdGlvbi1tZXJnaW5nLmh0bWxcblxuaW50ZXJmYWNlIFN0cmluZyB7XG4gICAgcmVwbGFjZUFsbChcbiAgICAgICAgc3RyaW5nVG9GaW5kOiBzdHJpbmcsXG4gICAgICAgIHN0cmluZ1RvUmVwbGFjZTogc3RyaW5nXG4gICAgKTogc3RyaW5nO1xuICAgIGZvcm1hdCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZztcbiAgICBzdGFydHNXaXRoKHN0cjogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBlbmRzV2l0aChzdHI6IHN0cmluZyk6IGJvb2xlYW47XG4gICAgaXNQcmludGFibGUoKTogYm9vbGVhbjtcbn1cblxuaWYgKFN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCA9PSBudWxsKSB7XG4gICAgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsID0gZnVuY3Rpb24gKFxuICAgICAgICBzdHJpbmdUb0ZpbmQ6IHN0cmluZyxcbiAgICAgICAgc3RyaW5nVG9SZXBsYWNlOiBzdHJpbmdcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBsZXQgdGVtcCA9IHRoaXNcbiAgICAgICAgd2hpbGUgKHRlbXAuaW5kZXhPZihzdHJpbmdUb0ZpbmQpICE9PSAtMSlcbiAgICAgICAgICAgIHRlbXAgPSB0ZW1wLnJlcGxhY2Uoc3RyaW5nVG9GaW5kLCBzdHJpbmdUb1JlcGxhY2UpXG4gICAgICAgIHJldHVybiB0ZW1wXG4gICAgfVxufVxuXG5pZiAoU3RyaW5nLnByb3RvdHlwZS5mb3JtYXQgPT0gbnVsbCkge1xuICAgIFN0cmluZy5wcm90b3R5cGUuZm9ybWF0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgYXJncyA9IGFyZ3VtZW50c1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAoXG4gICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgIG51bVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgYXJnc1tudW1dICE9PSBcInVuZGVmaW5lZFwiID8gYXJnc1tudW1dIDogbWF0Y2hcbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmlmIChTdHJpbmcucHJvdG90eXBlLnRyaW0gPT0gbnVsbCkge1xuICAgIFN0cmluZy5wcm90b3R5cGUudHJpbSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0aGlzKVxuICAgICAgICAgICAgLnJlcGxhY2UoL15cXHMrfFxccyskL2csIFwiXCIpXG4gICAgfVxufVxuXG5pZiAoU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoID09IG51bGwpIHtcbiAgICAvLyBzZWUgYmVsb3cgZm9yIGJldHRlciBpbXBsZW1lbnRhdGlvbiFcbiAgICBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGggPSBmdW5jdGlvbiAoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2xpY2UoMCwgc3RyLmxlbmd0aCkgPT09IHN0clxuICAgIH1cbn1cblxuaWYgKFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGggPT0gbnVsbCkge1xuICAgIFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGggPSBmdW5jdGlvbiAocGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBkID0gdGhpcy5sZW5ndGggLSBwYXR0ZXJuLmxlbmd0aFxuICAgICAgICByZXR1cm4gZCA+PSAwICYmIHRoaXMubGFzdEluZGV4T2YocGF0dGVybikgPT09IGRcbiAgICB9XG59XG5cbmlmIChTdHJpbmcucHJvdG90eXBlLmlzUHJpbnRhYmxlID09IG51bGwpIHtcbiAgICBTdHJpbmcucHJvdG90eXBlLmlzUHJpbnRhYmxlID0gZnVuY3Rpb24gKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmUgPSAvXltcXHgyMC1cXHg3ZV0qJC9cbiAgICAgICAgcmV0dXJuIHJlLnRlc3QodGhpcylcbiAgICB9XG59XG4iXX0=