UNPKG

typescript-dotnet-core

Version:

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

7 lines (6 loc) 1.54 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 Values=require("../../Compare"),Types_1=require("../../Types");function validateSize(e,r){if(e&&r&&e===r||!e&&!r)return!0;if(!e||!r)return!1;var a=e.length;return a===r.length&&(0===a||a)}function areAllEqual(e,r,a){if(void 0===r&&(r=!0),void 0===a&&(a=Values.areEqual),!e)throw new Error("ArgumentNullException: 'arrays' cannot be null.");if(e.length<2)throw new Error("Cannot compare a set of arrays less than 2.");Types_1.default.isFunction(r)&&(a=r,r=!0);for(var t=e[0],n=1,l=e.length;n<l;n++)if(!areEqual(t,e[n],r,a))return!1;return!0}function areEqual(e,r,a,t){void 0===a&&(a=!0),void 0===t&&(t=Values.areEqual);var n=validateSize(e,r);if(Types_1.default.isBoolean(n))return n;Types_1.default.isFunction(a)&&(t=a,a=!0);for(var l=0;l<n;l++)if(!t(e[l],r[l],a))return!1;return!0}function internalSort(e,r){if(!e||e.length<2)return e;var a,t=e.length;65536<t?a=new Array(t):(a=[]).length=t;for(var n=0;n<t;n++)a[n]=e[n];return a.sort(r),a}function areEquivalent(e,r,a){void 0===a&&(a=Values.compare);var t=validateSize(e,r);if(Types_1.default.isBoolean(t))return t;e=internalSort(e,a),r=internalSort(r,a);for(var n=0;n<t;n++)if(0!==a(e[n],r[n]))return!1;return!0}exports.areAllEqual=areAllEqual,exports.areEqual=areEqual,exports.areEquivalent=areEquivalent; //# sourceMappingURL=Compare.js.map