UNPKG

typescript-dotnet-core

Version:

A the core classes and utilities of a JavaScript-Friendly .NET Based TypeScript Library.

7 lines (6 loc) 4.57 kB
"use strict"; /*! * @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"),Integer_1=require("../../Integer"),Compare_1=require("../../Compare"),ArgumentException_1=require("../../Exceptions/ArgumentException"),ArgumentNullException_1=require("../../Exceptions/ArgumentNullException"),ArgumentOutOfRangeException_1=require("../../Exceptions/ArgumentOutOfRangeException"),initialize_1=require("./initialize");exports.initialize=initialize_1.default;var copy_1=require("./copy");exports.copy=copy_1.copy,exports.copyTo=copy_1.copyTo;var CBN="Cannot be null.",CB0="Cannot be zero.",CBL0="Cannot be less than zero.",VFN="Must be a valid finite number";function indexOf(e,t,r){void 0===r&&(r=Compare_1.areEqual);var n=e&&e.length;if(n){if(r==Compare_1.areEqual&&e instanceof Array&&!Types_1.default.isTrueNaN(t))return e.indexOf(t);for(var i=0;i<n;i++)if(r(e[i],t))return i}return-1}function contains(e,t,r){return void 0===r&&(r=Compare_1.areEqual),-1!=indexOf(e,t,r)}function replace(e,t,r,n){if(void 0===n&&(n=1/0),!e||!e.length||0===n)return 0;if(n<0)throw new ArgumentOutOfRangeException_1.default("max",n,CBL0);n=n||1/0;for(var i=0,a=0,o=e.length;a<o&&(e[a]!==t||(e[a]=r,++i!=n));a++);return i}function updateRange(e,t,r,n){if(void 0===r&&(r=0),e){if(Integer_1.default.assertZeroOrGreater(r,"start"),n||0===n||(n=e.length),Integer_1.default.assert(n,"stop"),n<r)throw new ArgumentOutOfRangeException_1.default("stop",n,"is less than start");for(var i=r;i<n;i++)e[i]=t}}function clear(e,t,r){void 0===t&&(t=0),updateRange(e,null,t,r)}function register(e,t,r){if(void 0===r&&(r=Compare_1.areEqual),!e)throw new ArgumentNullException_1.default("array",CBN);var n=e.length,i=!n||!contains(e,t,r);return i&&(e[n]=t),i}function findIndex(e,t){if(!e)throw new ArgumentNullException_1.default("array",CBN);if(!Types_1.default.isFunction(t))throw new ArgumentException_1.default("predicate","Must be a function.");var r=e.length;if(!Types_1.default.isNumber(r,!0)||r<0)throw new ArgumentException_1.default("array","Does not have a valid length.");if(e instanceof Array){for(var n=0;n<r;n++)if(t(e[n],n))return n}else for(n=0;n<r;n++)if(n in e&&t(e[n],n))return n;return-1}function forEach(e,t){if(e&&t)for(var r=0;r<e.length&&!1!==t(e[r],r);r++);}function applyTo(e,t){if(e&&t)for(var r=0;r<e.length;r++)e[r]=t(e[r],r)}function removeIndex(e,t){if(!e)throw new ArgumentNullException_1.default("array",CBN);if(Integer_1.default.assert(t,"index"),t<0)throw new ArgumentOutOfRangeException_1.default("index",t,CBL0);var r=t<e.length;return r&&e.splice(t,1),r}function remove(e,t,r,n){if(void 0===r&&(r=1/0),void 0===n&&(n=Compare_1.areEqual),!e||!e.length||0===r)return 0;if(r<0)throw new ArgumentOutOfRangeException_1.default("max",r,CBL0);var i=0;if(r&&isFinite(r)){for(var a=[],o=(u=0,e.length);u<o&&(!n(e[u],t)||(a.push(u),++i!=r));u++);for(u=a.length-1;0<=u;u--)e.splice(a[u],1)}else for(var u=e.length-1;0<=u;u--)n(e[u],t)&&(e.splice(u,1),++i);return i}function repeat(e,t){if(Integer_1.default.assert(t,"count"),t<0)throw new ArgumentOutOfRangeException_1.default("count",t,CBL0);for(var r=initialize_1.default(t),n=0;n<t;n++)r[n]=e;return r}function range(e,t,r){if(void 0===r&&(r=1),isNaN(e)||!isFinite(e))throw new ArgumentOutOfRangeException_1.default("first",e,VFN);if(isNaN(t)||!isFinite(t))throw new ArgumentOutOfRangeException_1.default("count",t,VFN);if(t<0)throw new ArgumentOutOfRangeException_1.default("count",t,CBL0);for(var n=initialize_1.default(t),i=0;i<t;i++)n[i]=e,e+=r;return n}function rangeUntil(e,t,r){if(void 0===r&&(r=1),0==r)throw new ArgumentOutOfRangeException_1.default("step",r,CB0);return range(e,(t-e)/r,r)}function distinct(e){if(!e)return[];var t={};return e.filter(function(e){return!(e in t)&&(t[e]=!0)})}function flatten(e,t){void 0===t&&(t=0);for(var r=[],n=0;n<e.length;n++){var i=e[n];if(i instanceof Array){0<t&&(i=flatten(i,t-1));for(var a=0;a<i.length;a++)r.push(i[a])}else r.push(i)}return r}exports.indexOf=indexOf,exports.contains=contains,exports.replace=replace,exports.updateRange=updateRange,exports.clear=clear,exports.register=register,exports.findIndex=findIndex,exports.forEach=forEach,exports.applyTo=applyTo,exports.removeIndex=removeIndex,exports.remove=remove,exports.repeat=repeat,exports.range=range,exports.rangeUntil=rangeUntil,exports.distinct=distinct,exports.flatten=flatten; //# sourceMappingURL=Utility.js.map