@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 2.55 kB
JavaScript
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0
import i from"./../define-nonenumerable-read-only-property.js";import e from"./../../assert/is-function.js";import t from"./../../assert/is-collection.js";import r from"./../../constants/math/float64-pinf.js";import n from"./../../assert/is-plain-object.js";import o from"./../../assert/has-own-property.js";import s from"./../../assert/is-boolean.js";import l from"./../../assert/is-positive-integer.js";import a from"./../../vendor/debug.js";var m=n,u=o,c=s.isPrimitive,f=l.isPrimitive;function p(i,e){return m(e)?(u(e,"thisArg")&&(i.thisArg=e.thisArg),u(e,"series")&&(i.series=e.series,!c(i.series))?new TypeError("invalid option. `series` option must be a boolean primitive. Option: `"+i.series+"`."):u(e,"limit")&&(i.limit=e.limit,!f(i.limit))?new TypeError("invalid option. `limit` option must be a positive integer. Option: `"+i.limit+"`."):null):new TypeError("invalid argument. Options must be an object. Value: `"+e+"`.")}var g=a,d=o,h=g("count-by-async:limit");function v(i,e,t,r){var n,o,s,l,a,m,u,c;if(a=i.length,h("Collection length: %d",a),u={},0===a)return h("Finished processing a collection."),r(null,u);for(l=a<e.limit?a:e.limit,h("Concurrency limit: %d",l),h("Number of arguments: %d",t.length),n=a-1,o=0,m=-1,c=0;c<l;c++)m<n&&f();function f(){var r,n;function o(i,e){if(!s){if(i)return s=!0,p(i);h("Collection element %d group: %s.",n,e),d(u,e)?u[e]+=1:u[e]=1,p()}}r=i[n=m+=1],h("Collection element %d: %s.",n,JSON.stringify(r)),2===t.length?t.call(e.thisArg,r,o):3===t.length?t.call(e.thisArg,r,n,o):t.call(e.thisArg,r,n,i,o)}function p(i){return i?(h("Encountered an error: %s",i.message),r(i)):(h("Processed %d of %d collection elements.",o+=1,a),m<n?f():o===a?(h("Finished processing a collection."),r(null,u)):void 0)}}var b=e,y=t,j=r,w=p,E=v;function A(i,e){var t,r,n;if(t={},arguments.length>1){if(r=w(t,i))throw r;n=e}else n=i;if(!b(n))throw new TypeError("invalid argument. Last argument must be a function. Value: `"+n+"`.");return t.series?t.limit=1:t.limit||(t.limit=j),o;function o(i,e){if(!y(i))throw new TypeError("invalid argument. First argument must be a collection. Value: `"+i+".`");if(!b(e))throw new TypeError("invalid argument. Last argument must be a function. Value: `"+e+"`.");return E(i,t,n,(function(i,t){if(i)return e(i);e(null,t)}))}}var T=A;function C(i,e,t,r){if(arguments.length<4)return T(e)(i,t);T(e,t)(i,r)}var O=i,V=C,F=A;O(V,"factory",F);export default V;
//# sourceMappingURL=count-by.js.map