typescript-dotnet-core
Version:
A the core classes and utilities of a JavaScript-Friendly .NET Based TypeScript Library.
7 lines (6 loc) • 2.08 kB
JavaScript
;
/*!
* @author electricessence / https://github.com/electricessence/
* Licensing: MIT https://github.com/electricessence/TypeScript.NET-Core/blob/master/LICENSE.md
*/Object.defineProperty(exports,"__esModule",{value:!0});var Types_1=require("../Types");function getHashCode(e){var r=0;if(0==e.length)return r;for(var t=0,a=e.length;t<a;t++){r=(r<<5)-r+e.charCodeAt(t),r|=0}return r}function repeat(e,r){var t=exports.EMPTY;if(!isNaN(r))for(var a=0;a<r;a++)t+=e;return t}function fromChars(e,r){if(void 0===r&&(r=1),e instanceof Array){for(var t=exports.EMPTY,a=0,n=e;a<n.length;a++){var s=n[a];t+=String.fromCharCode(s)}return t}return repeat(String.fromCharCode(e),r)}function escapeRegExp(e){return e.replace(/[-[\]\/{}()*+?.\\^$|]/g,"\\$&")}function trim(e,r,t){if(r===exports.EMPTY)return e;if(r){var a=escapeRegExp(r instanceof Array?r.join():r);return e.replace(new RegExp("^["+a+"]+|["+a+"]+$","g"+(t?"i":"")),exports.EMPTY)}return e.replace(/^\s+|\s+$/g,exports.EMPTY)}function format(e){for(var r=[],t=1;t<arguments.length;t++)r[t-1]=arguments[t];return supplant(e,r)}function supplant(e,s){var o=s instanceof Array;return e.replace(/{([^{}]*)}/g,function(e,r){var t=r;if(o){var a=parseInt(r);isNaN(a)||(t=a)}var n=s[t];switch(typeof n){case Types_1.default.STRING:case Types_1.default.NUMBER:case Types_1.default.BOOLEAN:return n;default:return n&&Types_1.default.hasMemberOfType(n,"toString",Types_1.default.FUNCTION)?n.toString():e}})}function canMatch(e,r){return!(!Types_1.default.isString(e)||!r)&&(e===r||(r.length<e.length?null:void 0))}function startsWith(e,r){var t=canMatch(e,r);return Types_1.default.isBoolean(t)?t:0==e.indexOf(r)}function endsWith(e,r){var t=canMatch(e,r);return Types_1.default.isBoolean(t)?t:e.lastIndexOf(r)==e.length-r.length}exports.EMPTY="",exports.getHashCode=getHashCode,exports.repeat=repeat,exports.fromChars=fromChars,exports.escapeRegExp=escapeRegExp,exports.trim=trim,exports.format=format,exports.supplant=supplant,exports.startsWith=startsWith,exports.endsWith=endsWith;
//# sourceMappingURL=Utility.js.map