summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile32
-rw-r--r--dist/async.min.map3
-rw-r--r--support/build.test.js3
-rw-r--r--support/es.test.js7
-rw-r--r--support/get-alias.js12
-rw-r--r--support/list-aliases.js25
6 files changed, 70 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index b9d413c..880d739 100644
--- a/Makefile
+++ b/Makefile
@@ -9,6 +9,7 @@ PACKAGE = asyncjs
REQUIRE_NAME = async
UGLIFY = uglifyjs
XYZ = support/xyz.sh --repo git@github.com:caolan/async.git
+COPY_ES = sed -E "s/(import.+)lodash/\1lodash-es/g"
BUILDDIR = build
BUILD_ES = build-es
@@ -22,8 +23,10 @@ LINT_FILES = lib/ mocha_test/ $(shell find perf/ -maxdepth 2 -type f) $(shell fi
UMD_BUNDLE = $(BUILDDIR)/dist/async.js
UMD_BUNDLE_MIN = $(BUILDDIR)/dist/async.min.js
UMD_BUNDLE_MAP = $(BUILDDIR)/dist/async.min.map
-ES_MODULES = $(patsubst lib/%.js, build-es/%.js, $(JS_SRC))
-CJS_MODULES = $(patsubst lib/%.js, build/%.js, $(JS_SRC))
+ALIAS_ES = $(shell node $(SCRIPTS)/list-aliases.js build-es/)
+ES_MODULES = $(patsubst lib/%.js, build-es/%.js, $(JS_SRC)) $(ALIAS_ES)
+ALIAS_CJS = $(shell node $(SCRIPTS)/list-aliases.js build/)
+CJS_MODULES = $(patsubst lib/%.js, build/%.js, $(JS_SRC)) $(ALIAS_CJS)
all: clean lint build test
@@ -54,12 +57,20 @@ $(BUILDDIR)/%.js: lib/%.js
mkdir -p "$(@D)"
node $(SCRIPTS)/build/compile-module.js --file $< --output $@
+
+define COMPILE_ALIAS
+$A: $(shell node $(SCRIPTS)/get-alias.js $A)
+ mkdir -p "$$(@D)"
+ node $(SCRIPTS)/build/compile-module.js --file $$< --output $$@
+endef
+$(foreach A,$(ALIAS_CJS),$(eval $(COMPILE_ALIAS)))
+
$(UMD_BUNDLE): $(ES_MODULES) package.json
mkdir -p "$(@D)"
node $(SCRIPTS)/build/aggregate-bundle.js
# Create the minified UMD versions and copy them to dist/ for bower
-build-dist: $(DIST) $(UMD_BUNDLE) $(UMD_BUNDLE_MIN) $(DIST)/async.js $(DIST)/async.min.js $(DIST)/async.min.map
+build-dist: $(DIST) $(DIST)/async.js $(DIST)/async.min.js $(DIST)/async.min.map
$(DIST):
mkdir -p $@
@@ -71,22 +82,27 @@ $(UMD_BUNDLE_MIN): $(UMD_BUNDLE)
--source-map-url async.min.map \
-o $@
-$(UMD_BUNDLE_MAP): $(UMD_BUNDLE_MIN)
-
$(DIST)/async.js: $(UMD_BUNDLE)
cp $< $@
$(DIST)/async.min.js: $(UMD_BUNDLE_MIN)
cp $< $@
-$(DIST)/async.min.map: $(UMD_BUNDLE_MAP)
- cp $< $@
+$(DIST)/async.min.map: $(UMD_BUNDLE_MIN)
+ cp $(UMD_BUNDLE_MAP) $@
build-es: $(ES_MODULES)
$(BUILD_ES)/%.js: lib/%.js
mkdir -p "$(@D)"
- sed -E "s/(import.+)lodash/\1lodash-es/g" $< > $@
+ $(COPY_ES) $< > $@
+
+define COPY_ES_ALIAS
+$A: $(shell node $(SCRIPTS)/get-alias.js $A)
+ mkdir -p "$$(@D)"
+ $(COPY_ES) $$< > $$@
+endef
+$(foreach A,$(ALIAS_ES),$(eval $(COPY_ES_ALIAS)))
test-build: $(UMD_BUNDLE) $(UMD_BUNDLE_MIN)
mocha support/build.test.js
diff --git a/dist/async.min.map b/dist/async.min.map
index 21a5431..33dd00d 100644
--- a/dist/async.min.map
+++ b/dist/async.min.map
@@ -1,2 +1 @@
-!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.async=n.async||{})}(this,function(n){"use strict";function t(n,t){t|=0;for(var e=Math.max(n.length-t,0),r=Array(e),u=0;u<e;u++)r[u]=n[t+u];return r}function e(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function r(n){setTimeout(n,0)}function u(n){return function(e){var r=t(arguments,1);n(function(){e.apply(null,r)})}}function i(n){return ct(function(t,r){var u;try{u=n.apply(this,t)}catch(n){return r(n)}e(u)&&"function"==typeof u.then?u.then(function(n){o(r,null,n)},function(n){o(r,n.message?n:new Error(n))}):r(null,u)})}function o(n,t,e){try{n(t,e)}catch(n){lt(c,n)}}function c(n){throw n}function f(n){return st&&"AsyncFunction"===n[Symbol.toStringTag]}function a(n){return f(n)?i(n):n}function l(n){return function(e){var r=t(arguments,1),u=ct(function(t,r){var u=this;return n(e,function(n,e){a(n).apply(u,t.concat(e))},r)});return r.length?u.apply(this,r):u}}function s(n){var t=mt.call(n,bt),e=n[bt];try{n[bt]=void 0;var r=!0}catch(n){}var u=gt.call(n);return r&&(t?n[bt]=e:delete n[bt]),u}function p(n){return St.call(n)}function h(n){return null==n?void 0===n?Lt:kt:(n=Object(n),Ot&&Ot in n?s(n):p(n))}function y(n){if(!e(n))return!1;var t=h(n);return t==xt||t==Et||t==wt||t==At}function v(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=Tt}function d(n){return null!=n&&v(n.length)&&!y(n)}function m(){}function g(n){return function(){if(null!==n){var t=n;n=null,t.apply(this,arguments)}}}function b(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}function j(n){return null!=n&&"object"==typeof n}function S(n){return j(n)&&h(n)==_t}function k(){return!1}function L(n,t){return t=null==t?Nt:t,!!t&&("number"==typeof n||Qt.test(n))&&n>-1&&n%1==0&&n<t}function O(n){return j(n)&&v(n.length)&&!!me[h(n)]}function w(n){return function(t){return n(t)}}function x(n,t){var e=Vt(n),r=!e&&Pt(n),u=!e&&!r&&Wt(n),i=!e&&!r&&!u&&Oe(n),o=e||r||u||i,c=o?b(n.length,String):[],f=c.length;for(var a in n)!t&&!xe.call(n,a)||o&&("length"==a||u&&("offset"==a||"parent"==a)||i&&("buffer"==a||"byteLength"==a||"byteOffset"==a)||L(a,f))||c.push(a);return c}function E(n){var t=n&&n.constructor,e="function"==typeof t&&t.prototype||Ee;return n===e}function A(n,t){return function(e){return n(t(e))}}function T(n){if(!E(n))return Ae(n);var t=[];for(var e in Object(n))Be.call(n,e)&&"constructor"!=e&&t.push(e);return t}function B(n){return d(n)?x(n):T(n)}function F(n){var t=-1,e=n.length;return function(){return++t<e?{value:n[t],key:t}:null}}function I(n){var t=-1;return function(){var e=n.next();return e.done?null:(t++,{value:e.value,key:t})}}function _(n){var t=B(n),e=-1,r=t.length;return function(){var u=t[++e];return e<r?{value:n[u],key:u}:null}}function M(n){if(d(n))return F(n);var t=It(n);return t?I(t):_(n)}function U(n){return function(){if(null===n)throw new Error("Callback was already called.");var t=n;n=null,t.apply(this,arguments)}}function z(n){return function(t,e,r){function u(n,t){if(f-=1,n)c=!0,r(n);else{if(t===Bt||c&&f<=0)return c=!0,r(null);i()}}function i(){for(;f<n&&!c;){var t=o();if(null===t)return c=!0,void(f<=0&&r(null));f+=1,e(t.value,t.key,U(u))}}if(r=g(r||m),n<=0||!t)return r(null);var o=M(t),c=!1,f=0;i()}}function P(n,t,e,r){z(t)(n,a(e),r)}function V(n,t){return function(e,r,u){return n(e,t,r,u)}}function q(n,t,e){function r(n,t){n?e(n):++i!==o&&t!==Bt||e(null)}e=g(e||m);var u=0,i=0,o=n.length;for(0===o&&e(null);u<o;u++)t(n[u],u,U(r))}function D(n){return function(t,e,r){return n(Ie,t,a(e),r)}}function R(n,t,e,r){r=r||m,t=t||[];var u=[],i=0,o=a(e);n(t,function(n,t,e){var r=i++;o(n,function(n,t){u[r]=t,e(n)})},function(n){r(n,u)})}function C(n){return function(t,e,r,u){return n(z(e),t,a(r),u)}}function $(n,t){for(var e=-1,r=null==n?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}function W(n){return function(t,e,r){for(var u=-1,i=Object(t),o=r(t),c=o.length;c--;){var f=o[n?c:++u];if(e(i[f],f,i)===!1)break}return t}}function N(n,t){return n&&Ve(n,t,B)}function Q(n,t,e,r){for(var u=n.length,i=e+(r?1:-1);r?i--:++i<u;)if(t(n[i],i,n))return i;return-1}function G(n){return n!==n}function H(n,t,e){for(var r=e-1,u=n.length;++r<u;)if(n[r]===t)return r;return-1}function J(n,t,e){return t===t?H(n,t,e):Q(n,G,e)}function K(n,t){for(var e=-1,r=null==n?0:n.length,u=Array(r);++e<r;)u[e]=t(n[e],e,n);return u}function X(n){return"symbol"==typeof n||j(n)&&h(n)==De}function Y(n){if("string"==typeof n)return n;if(Vt(n))return K(n,Y)+"";if(X(n))return $e?$e.call(n):"";var t=n+"";return"0"==t&&1/n==-Re?"-0":t}function Z(n,t,e){var r=-1,u=n.length;t<0&&(t=-t>u?0:u+t),e=e>u?u:e,e<0&&(e+=u),u=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(u);++r<u;)i[r]=n[r+t];return i}function nn(n,t,e){var r=n.length;return e=void 0===e?r:e,!t&&e>=r?n:Z(n,t,e)}function tn(n,t){for(var e=n.length;e--&&J(t,n[e],0)>-1;);return e}function en(n,t){for(var e=-1,r=n.length;++e<r&&J(t,n[e],0)>-1;);return e}function rn(n){return n.split("")}function un(n){return Je.test(n)}function on(n){return n.match(hr)||[]}function cn(n){return un(n)?on(n):rn(n)}function fn(n){return null==n?"":Y(n)}function an(n,t,e){if(n=fn(n),n&&(e||void 0===t))return n.replace(yr,"");if(!n||!(t=Y(t)))return n;var r=cn(n),u=cn(t),i=en(r,u),o=tn(r,u)+1;return nn(r,i,o).join("")}function ln(n){return n=n.toString().replace(gr,""),n=n.match(vr)[2].replace(" ",""),n=n?n.split(dr):[],n=n.map(function(n){return an(n.replace(mr,""))})}function sn(n,t){var e={};N(n,function(n,t){function r(t,e){var r=K(u,function(n){return t[n]});r.push(e),a(n).apply(null,r)}var u,i=f(n),o=!i&&1===n.length||i&&0===n.length;if(Vt(n))u=n.slice(0,-1),n=n[n.length-1],e[t]=u.concat(u.length>0?r:n);else if(o)e[t]=n;else{if(u=ln(n),0===n.length&&!i&&0===u.length)throw new Error("autoInject task functions require explicit parameters.");i||u.pop(),e[t]=u.concat(r)}}),qe(e,t)}function pn(){this.head=this.tail=null,this.length=0}function hn(n,t){n.length=1,n.head=n.tail=t}function yn(n,t,e){function r(n,t,e){if(null!=e&&"function"!=typeof e)throw new Error("task callback must be a function");if(s.started=!0,Vt(n)||(n=[n]),0===n.length&&s.idle())return lt(function(){s.drain()});for(var r=0,u=n.length;r<u;r++){var i={data:n[r],callback:e||m};t?s._tasks.unshift(i):s._tasks.push(i)}f||(f=!0,lt(function(){f=!1,s.process()}))}function u(n){return function(t){o-=1;for(var e=0,r=n.length;e<r;e++){var u=n[e],i=J(c,u,0);0===i?c.shift():i>0&&c.splice(i,1),u.callback.apply(u,arguments),null!=t&&s.error(t,u.data)}o<=s.concurrency-s.buffer&&s.unsaturated(),s.idle()&&s.drain(),s.process()}}if(null==t)t=1;else if(0===t)throw new Error("Concurrency must not be zero");var i=a(n),o=0,c=[],f=!1,l=!1,s={_tasks:new pn,concurrency:t,payload:e,saturated:m,unsaturated:m,buffer:t/4,empty:m,drain:m,error:m,started:!1,paused:!1,push:function(n,t){r(n,!1,t)},kill:function(){s.drain=m,s._tasks.empty()},unshift:function(n,t){r(n,!0,t)},remove:function(n){s._tasks.remove(n)},process:function(){if(!l){for(l=!0;!s.paused&&o<s.concurrency&&s._tasks.length;){var n=[],t=[],e=s._tasks.length;s.payload&&(e=Math.min(e,s.payload));for(var r=0;r<e;r++){var f=s._tasks.shift();n.push(f),c.push(f),t.push(f.data)}o+=1,0===s._tasks.length&&s.empty(),o===s.concurrency&&s.saturated();var a=U(u(n));i(t,a)}l=!1}},length:function(){return s._tasks.length},running:function(){return o},workersList:function(){return c},idle:function(){return s._tasks.length+o===0},pause:function(){s.paused=!0},resume:function(){s.paused!==!1&&(s.paused=!1,lt(s.process))}};return s}function vn(n,t){return yn(n,1,t)}function dn(n,t,e,r){r=g(r||m);var u=a(e);jr(n,function(n,e,r){u(t,n,function(n,e){t=e,r(n)})},function(n){r(n,t)})}function mn(){var n=K(arguments,a);return function(){var e=t(arguments),r=this,u=e[e.length-1];"function"==typeof u?e.pop():u=m,dn(n,e,function(n,e,u){e.apply(r,n.concat(function(n){var e=t(arguments,1);u(n,e)}))},function(n,t){u.apply(r,[n].concat(t))})}}function gn(n){return n}function bn(n,t){return function(e,r,u,i){i=i||m;var o,c=!1;e(r,function(e,r,i){u(e,function(r,u){r?i(r):n(u)&&!o?(c=!0,o=t(!0,e),i(null,Bt)):i()})},function(n){n?i(n):i(null,c?o:t(!1))})}}function jn(n,t){return t}function Sn(n){return function(e){var r=t(arguments,1);r.push(function(e){var r=t(arguments,1);"object"==typeof console&&(e?console.error&&console.error(e):console[n]&&$(r,function(t){console[n](t)}))}),a(e).apply(null,r)}}function kn(n,e,r){function u(n){if(n)return r(n);var e=t(arguments,1);e.push(i),c.apply(this,e)}function i(n,t){return n?r(n):t?void o(u):r(null)}r=U(r||m);var o=a(n),c=a(e);i(null,!0)}function Ln(n,e,r){r=U(r||m);var u=a(n),i=function(n){if(n)return r(n);var o=t(arguments,1);return e.apply(this,o)?u(i):void r.apply(null,[null].concat(o))};u(i)}function On(n,t,e){Ln(n,function(){return!t.apply(this,arguments)},e)}function wn(n,t,e){function r(n){return n?e(n):void o(u)}function u(n,t){return n?e(n):t?void i(r):e(null)}e=U(e||m);var i=a(t),o=a(n);o(u)}function xn(n){return function(t,e,r){return n(t,r)}}function En(n,t,e){Ie(n,xn(a(t)),e)}function An(n,t,e,r){z(t)(n,xn(a(e)),r)}function Tn(n){return f(n)?n:ct(function(t,e){var r=!0;t.push(function(){var n=arguments;r?lt(function(){e.apply(null,n)}):e.apply(null,n)}),n.apply(this,t),r=!1})}function Bn(n){return!n}function Fn(n){return function(t){return null==t?void 0:t[n]}}function In(n,t,e,r){var u=new Array(t.length);n(t,function(n,t,r){e(n,function(n,e){u[t]=!!e,r(n)})},function(n){if(n)return r(n);for(var e=[],i=0;i<t.length;i++)u[i]&&e.push(t[i]);r(null,e)})}function _n(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(e,i){e?r(e):(i&&u.push({index:t,value:n}),r())})},function(n){n?r(n):r(null,K(u.sort(function(n,t){return n.index-t.index}),Fn("value")))})}function Mn(n,t,e,r){var u=d(t)?In:_n;u(n,t,a(e),r||m)}function Un(n,t){function e(n){return n?r(n):void u(e)}var r=U(t||m),u=a(Tn(n));e()}function zn(n,t,e,r){r=g(r||m);var u={},i=a(e);P(n,t,function(n,t,e){i(n,t,function(n,r){return n?e(n):(u[t]=r,void e())})},function(n){r(n,u)})}function Pn(n,t){return t in n}function Vn(n,e){var r=Object.create(null),u=Object.create(null);e=e||gn;var i=a(n),o=ct(function(n,o){var c=e.apply(null,n);Pn(r,c)?lt(function(){o.apply(null,r[c])}):Pn(u,c)?u[c].push(o):(u[c]=[o],i.apply(null,n.concat(function(){var n=t(arguments);r[c]=n;var e=u[c];delete u[c];for(var i=0,o=e.length;i<o;i++)e[i].apply(null,n)})))});return o.memo=r,o.unmemoized=n,o}function qn(n,e,r){r=r||m;var u=d(e)?[]:{};n(e,function(n,e,r){a(n)(function(n,i){arguments.length>2&&(i=t(arguments,1)),u[e]=i,r(n)})},function(n){r(n,u)})}function Dn(n,t){qn(Ie,n,t)}function Rn(n,t,e){qn(z(t),n,e)}function Cn(n,t){if(t=g(t||m),!Vt(n))return t(new TypeError("First argument to race must be an array of functions"));if(!n.length)return t();for(var e=0,r=n.length;e<r;e++)a(n[e])(t)}function $n(n,e,r,u){var i=t(n).reverse();dn(i,e,r,u)}function Wn(n){var e=a(n);return ct(function(n,r){return n.push(function(n,e){if(n)r(null,{error:n});else{var u;u=arguments.length<=2?e:t(arguments,1),r(null,{value:u})}}),e.apply(this,n)})}function Nn(n){var t;return Vt(n)?t=K(n,Wn):(t={},N(n,function(n,e){t[e]=Wn.call(this,n)})),t}function Qn(n,t,e,r){Mn(n,t,function(n,t){e(n,function(n,e){t(n,!e)})},r)}function Gn(n){return function(){return n}}function Hn(n,t,e){function r(n,t){if("object"==typeof t)n.times=+t.times||i,n.intervalFunc="function"==typeof t.interval?t.interval:Gn(+t.interval||o),n.errorFilter=t.errorFilter;else{if("number"!=typeof t&&"string"!=typeof t)throw new Error("Invalid arguments for async.retry");n.times=+t||i}}function u(){f(function(n){n&&l++<c.times&&("function"!=typeof c.errorFilter||c.errorFilter(n))?setTimeout(u,c.intervalFunc(l)):e.apply(null,arguments)})}var i=5,o=0,c={times:i,intervalFunc:Gn(o)};if(arguments.length<3&&"function"==typeof n?(e=t||m,t=n):(r(c,n),e=e||m),"function"!=typeof t)throw new Error("Invalid arguments for async.retry");var f=a(t),l=1;u()}function Jn(n,t){qn(jr,n,t)}function Kn(n,t,e){function r(n,t){var e=n.criteria,r=t.criteria;return e<r?-1:e>r?1:0}var u=a(t);_e(n,function(n,t){u(n,function(e,r){return e?t(e):void t(null,{value:n,criteria:r})})},function(n,t){return n?e(n):void e(null,K(t.sort(r),Fn("value")))})}function Xn(n,t,e){var r=a(n);return ct(function(u,i){function o(){var t=n.name||"anonymous",r=new Error('Callback function "'+t+'" timed out.');r.code="ETIMEDOUT",e&&(r.info=e),f=!0,i(r)}var c,f=!1;u.push(function(){f||(i.apply(null,arguments),clearTimeout(c))}),c=setTimeout(o,t),r.apply(null,u)})}function Yn(n,t,e,r){for(var u=-1,i=tu(nu((t-n)/(e||1)),0),o=Array(i);i--;)o[r?i:++u]=n,n+=e;return o}function Zn(n,t,e,r){var u=a(e);Ue(Yn(0,n,1),t,u,r)}function nt(n,t,e,r){arguments.length<=3&&(r=e,e=t,t=Vt(n)?[]:{}),r=g(r||m);var u=a(e);Ie(n,function(n,e,r){u(t,n,e,r)},function(n){r(n,t)})}function tt(n,e){var r,u=null;e=e||m,Fr(n,function(n,e){a(n)(function(n,i){r=arguments.length>2?t(arguments,1):i,u=n,e(!n)})},function(){e(u,r)})}function et(n){return function(){return(n.unmemoized||n).apply(null,arguments)}}function rt(n,e,r){r=U(r||m);var u=a(e);if(!n())return r(null);var i=function(e){if(e)return r(e);if(n())return u(i);var o=t(arguments,1);r.apply(null,[null].concat(o))};u(i)}function ut(n,t,e){rt(function(){return!n.apply(this,arguments)},t,e)}var it,ot=function(n){var e=t(arguments,1);return function(){var r=t(arguments);return n.apply(null,e.concat(r))}},ct=function(n){return function(){var e=t(arguments),r=e.pop();n.call(this,e,r)}},ft="function"==typeof setImmediate&&setImmediate,at="object"==typeof process&&"function"==typeof process.nextTick;it=ft?setImmediate:at?process.nextTick:r;var lt=u(it),st="function"==typeof Symbol,pt="object"==typeof global&&global&&global.Object===Object&&global,ht="object"==typeof self&&self&&self.Object===Object&&self,yt=pt||ht||Function("return this")(),vt=yt.Symbol,dt=Object.prototype,mt=dt.hasOwnProperty,gt=dt.toString,bt=vt?vt.toStringTag:void 0,jt=Object.prototype,St=jt.toString,kt="[object Null]",Lt="[object Undefined]",Ot=vt?vt.toStringTag:void 0,wt="[object AsyncFunction]",xt="[object Function]",Et="[object GeneratorFunction]",At="[object Proxy]",Tt=9007199254740991,Bt={},Ft="function"==typeof Symbol&&Symbol.iterator,It=function(n){return Ft&&n[Ft]&&n[Ft]()},_t="[object Arguments]",Mt=Object.prototype,Ut=Mt.hasOwnProperty,zt=Mt.propertyIsEnumerable,Pt=S(function(){return arguments}())?S:function(n){return j(n)&&Ut.call(n,"callee")&&!zt.call(n,"callee")},Vt=Array.isArray,qt="object"==typeof n&&n&&!n.nodeType&&n,Dt=qt&&"object"==typeof module&&module&&!module.nodeType&&module,Rt=Dt&&Dt.exports===qt,Ct=Rt?yt.Buffer:void 0,$t=Ct?Ct.isBuffer:void 0,Wt=$t||k,Nt=9007199254740991,Qt=/^(?:0|[1-9]\d*)$/,Gt="[object Arguments]",Ht="[object Array]",Jt="[object Boolean]",Kt="[object Date]",Xt="[object Error]",Yt="[object Function]",Zt="[object Map]",ne="[object Number]",te="[object Object]",ee="[object RegExp]",re="[object Set]",ue="[object String]",ie="[object WeakMap]",oe="[object ArrayBuffer]",ce="[object DataView]",fe="[object Float32Array]",ae="[object Float64Array]",le="[object Int8Array]",se="[object Int16Array]",pe="[object Int32Array]",he="[object Uint8Array]",ye="[object Uint8ClampedArray]",ve="[object Uint16Array]",de="[object Uint32Array]",me={};me[fe]=me[ae]=me[le]=me[se]=me[pe]=me[he]=me[ye]=me[ve]=me[de]=!0,me[Gt]=me[Ht]=me[oe]=me[Jt]=me[ce]=me[Kt]=me[Xt]=me[Yt]=me[Zt]=me[ne]=me[te]=me[ee]=me[re]=me[ue]=me[ie]=!1;var ge="object"==typeof n&&n&&!n.nodeType&&n,be=ge&&"object"==typeof module&&module&&!module.nodeType&&module,je=be&&be.exports===ge,Se=je&&pt.process,ke=function(){try{return Se&&Se.binding("util")}catch(n){}}(),Le=ke&&ke.isTypedArray,Oe=Le?w(Le):O,we=Object.prototype,xe=we.hasOwnProperty,Ee=Object.prototype,Ae=A(Object.keys,Object),Te=Object.prototype,Be=Te.hasOwnProperty,Fe=V(P,1/0),Ie=function(n,t,e){var r=d(n)?q:Fe;r(n,a(t),e)},_e=D(R),Me=l(_e),Ue=C(R),ze=V(Ue,1),Pe=l(ze),Ve=W(),qe=function(n,e,r){function u(n,t){j.push(function(){f(n,t)})}function i(){if(0===j.length&&0===v)return r(null,y);for(;j.length&&v<e;){var n=j.shift();n()}}function o(n,t){var e=b[n];e||(e=b[n]=[]),e.push(t)}function c(n){var t=b[n]||[];$(t,function(n){n()}),i()}function f(n,e){if(!d){var u=U(function(e,u){if(v--,arguments.length>2&&(u=t(arguments,1)),e){var i={};N(y,function(n,t){i[t]=n}),i[n]=u,d=!0,b=Object.create(null),r(e,i)}else y[n]=u,c(n)});v++;var i=a(e[e.length-1]);e.length>1?i(y,u):i(u)}}function l(){for(var n,t=0;S.length;)n=S.pop(),t++,$(s(n),function(n){0===--k[n]&&S.push(n)});if(t!==h)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function s(t){var e=[];return N(n,function(n,r){Vt(n)&&J(n,t,0)>=0&&e.push(r)}),e}"function"==typeof e&&(r=e,e=null),r=g(r||m);var p=B(n),h=p.length;if(!h)return r(null);e||(e=h);var y={},v=0,d=!1,b=Object.create(null),j=[],S=[],k={};N(n,function(t,e){if(!Vt(t))return u(e,[t]),void S.push(e);var r=t.slice(0,t.length-1),i=r.length;return 0===i?(u(e,t),void S.push(e)):(k[e]=i,void $(r,function(c){if(!n[c])throw new Error("async.auto task `"+e+"` has a non-existent dependency `"+c+"` in "+r.join(", "));o(c,function(){i--,0===i&&u(e,t)})}))}),l(),i()},De="[object Symbol]",Re=1/0,Ce=vt?vt.prototype:void 0,$e=Ce?Ce.toString:void 0,We="\\ud800-\\udfff",Ne="\\u0300-\\u036f\\ufe20-\\ufe23",Qe="\\u20d0-\\u20f0",Ge="\\ufe0e\\ufe0f",He="\\u200d",Je=RegExp("["+He+We+Ne+Qe+Ge+"]"),Ke="\\ud800-\\udfff",Xe="\\u0300-\\u036f\\ufe20-\\ufe23",Ye="\\u20d0-\\u20f0",Ze="\\ufe0e\\ufe0f",nr="["+Ke+"]",tr="["+Xe+Ye+"]",er="\\ud83c[\\udffb-\\udfff]",rr="(?:"+tr+"|"+er+")",ur="[^"+Ke+"]",ir="(?:\\ud83c[\\udde6-\\uddff]){2}",or="[\\ud800-\\udbff][\\udc00-\\udfff]",cr="\\u200d",fr=rr+"?",ar="["+Ze+"]?",lr="(?:"+cr+"(?:"+[ur,ir,or].join("|")+")"+ar+fr+")*",sr=ar+fr+lr,pr="(?:"+[ur+tr+"?",tr,ir,or,nr].join("|")+")",hr=RegExp(er+"(?="+er+")|"+pr+sr,"g"),yr=/^\s+|\s+$/g,vr=/^(?:async\s+)?(function)?\s*[^\(]*\(\s*([^\)]*)\)/m,dr=/,/,mr=/(=.+)?(\s*)$/,gr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;pn.prototype.removeLink=function(n){return n.prev?n.prev.next=n.next:this.head=n.next,n.next?n.next.prev=n.prev:this.tail=n.prev,n.prev=n.next=null,this.length-=1,n},pn.prototype.empty=function(){for(;this.head;)this.shift();return this},pn.prototype.insertAfter=function(n,t){t.prev=n,t.next=n.next,n.next?n.next.prev=t:this.tail=t,n.next=t,this.length+=1},pn.prototype.insertBefore=function(n,t){t.prev=n.prev,t.next=n,n.prev?n.prev.next=t:this.head=t,n.prev=t,this.length+=1},pn.prototype.unshift=function(n){this.head?this.insertBefore(this.head,n):hn(this,n)},pn.prototype.push=function(n){this.tail?this.insertAfter(this.tail,n):hn(this,n)},pn.prototype.shift=function(){return this.head&&this.removeLink(this.head)},pn.prototype.pop=function(){return this.tail&&this.removeLink(this.tail)},pn.prototype.toArray=function(){for(var n=Array(this.length),t=this.head,e=0;e<this.length;e++)n[e]=t.data,t=t.next;return n},pn.prototype.remove=function(n){for(var t=this.head;t;){var e=t.next;n(t)&&this.removeLink(t),t=e}return this};var br,jr=V(P,1),Sr=function(){return mn.apply(null,t(arguments).reverse())},kr=Array.prototype.concat,Lr=function(n,e,r,u){u=u||m;var i=a(r);Ue(n,e,function(n,e){i(n,function(n){return n?e(n):e(null,t(arguments,1))})},function(n,t){for(var e=[],r=0;r<t.length;r++)t[r]&&(e=kr.apply(e,t[r]));return u(n,e)})},Or=V(Lr,1/0),wr=V(Lr,1),xr=function(){var n=t(arguments),e=[null].concat(n);return function(){var n=arguments[arguments.length-1];return n.apply(this,e)}},Er=D(bn(gn,jn)),Ar=C(bn(gn,jn)),Tr=V(Ar,1),Br=Sn("dir"),Fr=V(An,1),Ir=D(bn(Bn,Bn)),_r=C(bn(Bn,Bn)),Mr=V(_r,1),Ur=D(Mn),zr=C(Mn),Pr=V(zr,1),Vr=function(n,t,e,r){r=r||m;var u=a(e);Ue(n,t,function(n,t){u(n,function(e,r){return e?t(e):t(null,{key:r,val:n})})},function(n,t){for(var e={},u=Object.prototype.hasOwnProperty,i=0;i<t.length;i++)if(t[i]){var o=t[i].key,c=t[i].val;u.call(e,o)?e[o].push(c):e[o]=[c]}return r(n,e)})},qr=V(Vr,1/0),Dr=V(Vr,1),Rr=Sn("log"),Cr=V(zn,1/0),$r=V(zn,1);br=at?process.nextTick:ft?setImmediate:r;var Wr=u(br),Nr=function(n,t){var e=a(n);return yn(function(n,t){e(n[0],t)},t,1)},Qr=function(n,t){var e=Nr(n,t);return e.push=function(n,t,r){if(null==r&&(r=m),"function"!=typeof r)throw new Error("task callback must be a function");if(e.started=!0,Vt(n)||(n=[n]),0===n.length)return lt(function(){e.drain()});t=t||0;for(var u=e._tasks.head;u&&t>=u.priority;)u=u.next;for(var i=0,o=n.length;i<o;i++){var c={data:n[i],priority:t,callback:r};u?e._tasks.insertBefore(u,c):e._tasks.push(c)}lt(e.process)},delete e.unshift,e},Gr=D(Qn),Hr=C(Qn),Jr=V(Hr,1),Kr=function(n,t){t||(t=n,n=null);var e=a(t);return ct(function(t,r){function u(n){e.apply(null,t.concat(n))}n?Hn(n,u,r):Hn(u,r)})},Xr=D(bn(Boolean,gn)),Yr=C(bn(Boolean,gn)),Zr=V(Yr,1),nu=Math.ceil,tu=Math.max,eu=V(Zn,1/0),ru=V(Zn,1),uu=function(n,e){function r(t){var e=a(n[i++]);t.push(U(u)),e.apply(null,t)}function u(u){return u||i===n.length?e.apply(null,arguments):void r(t(arguments,1))}if(e=g(e||m),!Vt(n))return e(new Error("First argument to waterfall must be an array of functions"));if(!n.length)return e();var i=0;r([])},iu={apply:ot,applyEach:Me,applyEachSeries:Pe,asyncify:i,auto:qe,autoInject:sn,cargo:vn,compose:Sr,concat:Or,concatLimit:Lr,concatSeries:wr,constant:xr,detect:Er,detectLimit:Ar,detectSeries:Tr,dir:Br,doDuring:kn,doUntil:On,doWhilst:Ln,during:wn,each:En,eachLimit:An,eachOf:Ie,eachOfLimit:P,eachOfSeries:jr,eachSeries:Fr,ensureAsync:Tn,every:Ir,everyLimit:_r,everySeries:Mr,filter:Ur,filterLimit:zr,filterSeries:Pr,forever:Un,groupBy:qr,groupByLimit:Vr,groupBySeries:Dr,log:Rr,map:_e,mapLimit:Ue,mapSeries:ze,mapValues:Cr,mapValuesLimit:zn,mapValuesSeries:$r,memoize:Vn,nextTick:Wr,parallel:Dn,parallelLimit:Rn,priorityQueue:Qr,queue:Nr,race:Cn,reduce:dn,reduceRight:$n,reflect:Wn,reflectAll:Nn,reject:Gr,rejectLimit:Hr,rejectSeries:Jr,retry:Hn,retryable:Kr,seq:mn,series:Jn,setImmediate:lt,some:Xr,someLimit:Yr,someSeries:Zr,sortBy:Kn,timeout:Xn,times:eu,timesLimit:Zn,timesSeries:ru,transform:nt,tryEach:tt,unmemoize:et,until:ut,waterfall:uu,whilst:rt,all:Ir,allLimit:_r,allSeries:Mr,any:Xr,anyLimit:Yr,anySeries:Zr,find:Er,findLimit:Ar,findSeries:Tr,forEach:En,forEachSeries:Fr,forEachLimit:An,forEachOf:Ie,forEachOfSeries:jr,forEachOfLimit:P,inject:dn,foldl:dn,foldr:$n,select:Ur,selectLimit:zr,selectSeries:Pr,wrapSync:i};n.default=iu,n.apply=ot,n.applyEach=Me,n.applyEachSeries=Pe,n.asyncify=i,n.auto=qe,n.autoInject=sn,n.cargo=vn,n.compose=Sr,n.concat=Or,n.concatLimit=Lr,n.concatSeries=wr,n.constant=xr,n.detect=Er,n.detectLimit=Ar,n.detectSeries=Tr,n.dir=Br,n.doDuring=kn,n.doUntil=On,n.doWhilst=Ln,n.during=wn,n.each=En,n.eachLimit=An,n.eachOf=Ie,n.eachOfLimit=P,n.eachOfSeries=jr,n.eachSeries=Fr,n.ensureAsync=Tn,n.every=Ir,n.everyLimit=_r,n.everySeries=Mr,n.filter=Ur,n.filterLimit=zr,n.filterSeries=Pr,n.forever=Un,n.groupBy=qr,n.groupByLimit=Vr,n.groupBySeries=Dr,n.log=Rr,n.map=_e,n.mapLimit=Ue,n.mapSeries=ze,n.mapValues=Cr,n.mapValuesLimit=zn,n.mapValuesSeries=$r,n.memoize=Vn,n.nextTick=Wr,n.parallel=Dn,n.parallelLimit=Rn,n.priorityQueue=Qr,n.queue=Nr,n.race=Cn,n.reduce=dn,n.reduceRight=$n,n.reflect=Wn,n.reflectAll=Nn,n.reject=Gr,n.rejectLimit=Hr,n.rejectSeries=Jr,n.retry=Hn,n.retryable=Kr,n.seq=mn,n.series=Jn,n.setImmediate=lt,n.some=Xr,n.someLimit=Yr,n.someSeries=Zr,n.sortBy=Kn,n.timeout=Xn,n.times=eu,n.timesLimit=Zn,n.timesSeries=ru,n.transform=nt,n.tryEach=tt,n.unmemoize=et,n.until=ut,n.waterfall=uu,n.whilst=rt,n.all=Ir,n.allLimit=_r,n.allSeries=Mr,n.any=Xr,n.anyLimit=Yr,n.anySeries=Zr,n.find=Er,n.findLimit=Ar,n.findSeries=Tr,n.forEach=En,n.forEachSeries=Fr,n.forEachLimit=An,n.forEachOf=Ie,n.forEachOfSeries=jr,n.forEachOfLimit=P,n.inject=dn,n.foldl=dn,n.foldr=$n,n.select=Ur,n.selectLimit=zr,n.selectSeries=Pr,n.wrapSync=i,Object.defineProperty(n,"__esModule",{value:!0})});
-//# sourceMappingURL=async.min.map \ No newline at end of file
+{"version":3,"sources":["build/dist/async.js"],"names":["global","factory","exports","module","define","amd","async","this","slice","arrayLike","start","newLen","Math","max","length","newArr","Array","idx","isObject","value","type","fallback","fn","setTimeout","wrap","defer","args","arguments","apply","asyncify","func","initialParams","callback","result","e","then","invokeCallback","err","message","Error","error","setImmediate$1","rethrow","isAsync","supportsSymbol","Symbol","toStringTag","wrapAsync","asyncFn","applyEach$1","eachfn","fns","go","that","cb","concat","getRawTag","isOwn","hasOwnProperty","call","symToStringTag$1","tag","undefined","unmasked","nativeObjectToString","objectToString","nativeObjectToString$1","baseGetTag","undefinedTag","nullTag","Object","symToStringTag","isFunction","funcTag","genTag","asyncTag","proxyTag","isLength","MAX_SAFE_INTEGER","isArrayLike","noop","once","callFn","baseTimes","n","iteratee","index","isObjectLike","baseIsArguments","argsTag","stubFalse","isIndex","MAX_SAFE_INTEGER$1","reIsUint","test","baseIsTypedArray","typedArrayTags","baseUnary","arrayLikeKeys","inherited","isArr","isArray","isArg","isArguments","isBuff","isBuffer","isType","isTypedArray","skipIndexes","String","key","hasOwnProperty$1","push","isPrototype","Ctor","constructor","proto","prototype","objectProto$5","overArg","transform","arg","baseKeys","object","nativeKeys","hasOwnProperty$3","keys","createArrayIterator","coll","i","len","createES2015Iterator","iterator","item","next","done","createObjectIterator","obj","okeys","getIterator","onlyOnce","_eachOfLimit","limit","iterateeCallback","running","breakLoop","replenish","elem","nextElem","eachOfLimit","doLimit","iterable","eachOfArrayLike","iteratorCallback","completed","doParallel","eachOf","_asyncMap","arr","results","counter","_iteratee","_","v","doParallelLimit","arrayEach","array","createBaseFor","fromRight","keysFunc","props","baseForOwn","baseFor","baseFindIndex","predicate","fromIndex","baseIsNaN","strictIndexOf","baseIndexOf","arrayMap","isSymbol","symbolTag","baseToString","symbolToString","INFINITY","baseSlice","end","castSlice","charsEndIndex","strSymbols","chrSymbols","charsStartIndex","asciiToArray","string","split","hasUnicode","reHasUnicode","unicodeToArray","match","reUnicode","stringToArray","toString","trim","chars","guard","replace","reTrim","join","parseParams","STRIP_COMMENTS","FN_ARGS","FN_ARG_SPLIT","map","FN_ARG","autoInject","tasks","newTasks","taskFn","newTask","taskCb","newArgs","params","name","fnIsAsync","hasNoDeps","pop","auto","DLL","head","tail","setInitial","dll","node","queue","worker","concurrency","payload","_insert","data","insertAtFront","q","started","idle","drain","l","_tasks","unshift","processingScheduled","process","_next","numRunning","task","workersList","shift","splice","buffer","unsaturated","_worker","isProcessing","saturated","empty","paused","kill","remove","testFn","min","pause","resume","cargo","reduce","memo","eachOfSeries","x","seq","_functions","newargs","nextargs","identity","_createTester","check","getResult","testResult","testPassed","_findGetResult","consoleFunc","console","doDuring","_test","truth","_fn","doWhilst","doUntil","during","_withoutIndex","eachLimit","eachLimit$1","ensureAsync","sync","innerArgs","notId","baseProperty","filterArray","truthValues","filterGeneric","sort","a","b","_filter","filter","forever","errback","mapValuesLimit","newObj","val","has","memoize","hasher","create","queues","memoized","unmemoized","_parallel","parallelLimit","parallelLimit$1","race","TypeError","reduceRight","reversed","reverse","reflect","reflectCallback","cbArg","reflectAll","reject$1","constant$1","retry","opts","parseTimes","acc","t","times","DEFAULT_TIMES","intervalFunc","interval","DEFAULT_INTERVAL","errorFilter","retryAttempt","_task","attempt","options","series","sortBy","comparator","left","right","criteria","timeout","milliseconds","info","timeoutCallback","code","timedOut","timer","clearTimeout","baseRange","step","nativeMax","nativeCeil","timeLimit","count","mapLimit","accumulator","k","tryEach","eachSeries","res","unmemoize","whilst","until","_defer","callArgs","hasSetImmediate","setImmediate","hasNextTick","nextTick","freeGlobal","freeSelf","self","root","Function","Symbol$1","objectProto","objectProto$1","iteratorSymbol","objectProto$3","hasOwnProperty$2","propertyIsEnumerable","freeExports","nodeType","freeModule","moduleExports","Buffer","nativeIsBuffer","argsTag$1","arrayTag","boolTag","dateTag","errorTag","funcTag$1","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","freeExports$1","freeModule$1","moduleExports$1","freeProcess","nodeUtil","binding","nodeIsTypedArray","objectProto$2","objectProto$4","eachOfGeneric","Infinity","eachOfImplementation","applyEach","mapSeries","applyEachSeries","enqueueTask","readyTasks","runTask","processQueue","runningTasks","run","addListener","taskName","taskListeners","listeners","taskComplete","hasError","taskCallback","safeResults","rkey","checkForDeadlocks","currentTask","readyToCheck","getDependents","dependent","uncheckedDependencies","numTasks","keys$$1","dependencies","remainingDependencies","dependencyName","symbolProto","rsAstralRange","rsComboMarksRange","rsComboSymbolsRange","rsVarRange","rsZWJ","RegExp","rsAstralRange$1","rsComboMarksRange$1","rsComboSymbolsRange$1","rsVarRange$1","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsZWJ$1","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","removeLink","prev","insertAfter","newNode","insertBefore","toArray","curr","_defer$1","compose","_concat","concatLimit","mapResults","concatSeries","constant","values","detect","detectLimit","detectSeries","dir","every","everyLimit","everySeries","filterLimit","filterSeries","groupByLimit","groupBy","groupBySeries","log","mapValues","mapValuesSeries","queue$1","items","priorityQueue","priority","nextNode","reject","rejectLimit","rejectSeries","retryable","some","Boolean","someLimit","someSeries","ceil","timesSeries","waterfall","nextTask","taskIndex","each","parallel","timesLimit","all","allLimit","allSeries","any","anyLimit","anySeries","find","findLimit","findSeries","forEach","forEachSeries","forEachLimit","forEachOf","forEachOfSeries","forEachOfLimit","inject","foldl","foldr","select","selectLimit","selectSeries","wrapSync","defineProperty"],"mappings":"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","file":"build/dist/async.min.js"} \ No newline at end of file
diff --git a/support/build.test.js b/support/build.test.js
index c0c939d..ebf18b7 100644
--- a/support/build.test.js
+++ b/support/build.test.js
@@ -48,8 +48,7 @@ describe("async umd minified", function() {
});
});
-// TODO: don't slice when we can make individual files for aliases
-methods.slice(0, -1).forEach(function (methodName) {
+methods.forEach(function (methodName) {
describe("async." + methodName, function () {
var method;
before(function () {
diff --git a/support/es.test.js b/support/es.test.js
index da008fa..3dbb7d6 100644
--- a/support/es.test.js
+++ b/support/es.test.js
@@ -4,6 +4,7 @@ import {waterfall as waterfall} from "../build-es/index";
import {wrapSync} from "../build-es/index";
import async from "../build-es/index";
import constant from "../build-es/constant";
+import forEachOf from "../build-es/forEachOf";
waterfall([
constant(42),
@@ -18,6 +19,12 @@ waterfall([
if (val !== 1 && key !== 'a') return cb(new Error('fail!'));
cb();
}, function (err) { next (err, val)});
+ },
+ function (val, next) {
+ forEachOf([1, 2, 3], function (v, key, cb) {
+ val += key
+ cb()
+ }, function (err) { next(err, val - 3) })
}
], function (err, result) {
if (err) { throw err; }
diff --git a/support/get-alias.js b/support/get-alias.js
new file mode 100644
index 0000000..0323fc0
--- /dev/null
+++ b/support/get-alias.js
@@ -0,0 +1,12 @@
+#!/usr/bin/env node
+const path = require('path')
+const aliases = require('./aliases.json')
+
+const toAlias = process.argv[2]
+const baseName = path.basename(toAlias, '.js')
+
+const alias = aliases[baseName] || baseName
+
+process.stdout.write(toAlias
+ .replace(/^[^/]+\//, 'lib/')
+ .replace(baseName, alias))
diff --git a/support/list-aliases.js b/support/list-aliases.js
new file mode 100644
index 0000000..d1eeed5
--- /dev/null
+++ b/support/list-aliases.js
@@ -0,0 +1,25 @@
+#!/usr/bin/env node
+const path = require('path')
+const yargs = require('yargs')
+const aliases = require('./aliases')
+
+const argv = yargs
+ .option('sources', {
+ type: 'boolean',
+ default: false
+ })
+ .argv
+
+const prefix = argv._[0] || 'build-es/'
+
+const targets = Object.keys(aliases).map(argv.sources ? expandSource : expandAlias)
+process.stdout.write(targets.join(' '))
+
+
+function expandAlias (alias) {
+ return path.join(prefix, `${alias}.js`)
+}
+
+function expandSource (alias) {
+ return path.join(prefix, `${aliases[alias]}.js`)
+}