rahad-all-downloader 2.1.16 → 2.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/Run.yml +20 -0
- package/README.md +1 -2
- package/index.js +1 -1
- package/package.json +6 -2
- package/.cache/nix/binary-cache-v6.sqlite +0 -0
- package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
- package/.cache/replit/env/latest +0 -123
- package/.cache/replit/env/latest.json +0 -1
- package/.cache/replit/modules/nix.res +0 -1
- package/.cache/replit/modules/nodejs-20.res +0 -1
- package/.cache/replit/modules/replit.res +0 -1
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/env.json +0 -1
- package/.cache/typescript/5.4/node_modules/.package-lock.json +0 -137
- package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +0 -48
- package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +0 -29
- package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +0 -35
- package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/node/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +0 -8
- package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +0 -1040
- package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +0 -541
- package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +0 -2363
- package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +0 -1544
- package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +0 -578
- package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +0 -452
- package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +0 -19
- package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +0 -4523
- package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +0 -596
- package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +0 -554
- package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +0 -474
- package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +0 -864
- package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +0 -124
- package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +0 -170
- package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +0 -909
- package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +0 -1245
- package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +0 -4317
- package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +0 -411
- package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +0 -1
- package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +0 -1908
- package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +0 -2418
- package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +0 -550
- package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +0 -89
- package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +0 -2746
- package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +0 -315
- package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +0 -999
- package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +0 -495
- package/.cache/typescript/5.4/node_modules/@types/node/package.json +0 -217
- package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +0 -191
- package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +0 -905
- package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +0 -1754
- package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +0 -117
- package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +0 -153
- package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +0 -150
- package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +0 -540
- package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +0 -430
- package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +0 -153
- package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +0 -12
- package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +0 -83
- package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +0 -367
- package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +0 -1707
- package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +0 -1718
- package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +0 -97
- package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +0 -240
- package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +0 -1217
- package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +0 -197
- package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +0 -208
- package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +0 -952
- package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +0 -2292
- package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +0 -808
- package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +0 -924
- package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +0 -181
- package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +0 -691
- package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +0 -530
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +0 -32
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +0 -238
- package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +0 -83
- package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/request/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +0 -395
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +0 -19
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +0 -350
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +0 -350
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +0 -51
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +0 -2
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +0 -483
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +0 -10
- package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +0 -68
- package/.cache/typescript/5.4/node_modules/@types/request/package.json +0 -70
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +0 -15
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +0 -321
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +0 -35
- package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +0 -21
- package/.cache/typescript/5.4/node_modules/asynckit/README.md +0 -233
- package/.cache/typescript/5.4/node_modules/asynckit/bench.js +0 -76
- package/.cache/typescript/5.4/node_modules/asynckit/index.js +0 -6
- package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +0 -29
- package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +0 -34
- package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +0 -26
- package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +0 -75
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +0 -91
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +0 -25
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +0 -25
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
- package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +0 -37
- package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +0 -141
- package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +0 -29
- package/.cache/typescript/5.4/node_modules/asynckit/package.json +0 -63
- package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +0 -43
- package/.cache/typescript/5.4/node_modules/asynckit/serial.js +0 -17
- package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +0 -75
- package/.cache/typescript/5.4/node_modules/asynckit/stream.js +0 -21
- package/.cache/typescript/5.4/node_modules/combined-stream/License +0 -19
- package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +0 -138
- package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +0 -208
- package/.cache/typescript/5.4/node_modules/combined-stream/package.json +0 -25
- package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +0 -17
- package/.cache/typescript/5.4/node_modules/delayed-stream/License +0 -19
- package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +0 -7
- package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +0 -141
- package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
- package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +0 -27
- package/.cache/typescript/5.4/node_modules/form-data/License +0 -19
- package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +0 -358
- package/.cache/typescript/5.4/node_modules/form-data/Readme.md +0 -358
- package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +0 -62
- package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +0 -2
- package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +0 -501
- package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +0 -10
- package/.cache/typescript/5.4/node_modules/form-data/package.json +0 -68
- package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +0 -507
- package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +0 -23
- package/.cache/typescript/5.4/node_modules/mime-db/README.md +0 -100
- package/.cache/typescript/5.4/node_modules/mime-db/db.json +0 -8519
- package/.cache/typescript/5.4/node_modules/mime-db/index.js +0 -12
- package/.cache/typescript/5.4/node_modules/mime-db/package.json +0 -60
- package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +0 -397
- package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +0 -23
- package/.cache/typescript/5.4/node_modules/mime-types/README.md +0 -113
- package/.cache/typescript/5.4/node_modules/mime-types/index.js +0 -188
- package/.cache/typescript/5.4/node_modules/mime-types/package.json +0 -44
- package/.cache/typescript/5.4/node_modules/types-registry/README.md +0 -2
- package/.cache/typescript/5.4/node_modules/types-registry/index.json +0 -1
- package/.cache/typescript/5.4/node_modules/types-registry/package.json +0 -20
- package/.cache/typescript/5.4/node_modules/undici-types/README.md +0 -6
- package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +0 -31
- package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +0 -43
- package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +0 -18
- package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +0 -36
- package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +0 -97
- package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +0 -34
- package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +0 -21
- package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +0 -28
- package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
- package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +0 -241
- package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +0 -128
- package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +0 -209
- package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +0 -39
- package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +0 -54
- package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +0 -108
- package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +0 -7
- package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +0 -9
- package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +0 -4
- package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +0 -63
- package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +0 -5
- package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +0 -50
- package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +0 -25
- package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +0 -93
- package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +0 -25
- package/.cache/typescript/5.4/node_modules/undici-types/package.json +0 -55
- package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +0 -71
- package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +0 -28
- package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +0 -30
- package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +0 -61
- package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +0 -220
- package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +0 -131
- package/.cache/typescript/5.4/package-lock.json +0 -146
- package/.cache/typescript/5.4/package.json +0 -1
- package/.replit +0 -21
- package/replit.nix +0 -3
@@ -1,76 +0,0 @@
|
|
1
|
-
/* eslint no-console: "off" */
|
2
|
-
|
3
|
-
var asynckit = require('./')
|
4
|
-
, async = require('async')
|
5
|
-
, assert = require('assert')
|
6
|
-
, expected = 0
|
7
|
-
;
|
8
|
-
|
9
|
-
var Benchmark = require('benchmark');
|
10
|
-
var suite = new Benchmark.Suite;
|
11
|
-
|
12
|
-
var source = [];
|
13
|
-
for (var z = 1; z < 100; z++)
|
14
|
-
{
|
15
|
-
source.push(z);
|
16
|
-
expected += z;
|
17
|
-
}
|
18
|
-
|
19
|
-
suite
|
20
|
-
// add tests
|
21
|
-
|
22
|
-
.add('async.map', function(deferred)
|
23
|
-
{
|
24
|
-
var total = 0;
|
25
|
-
|
26
|
-
async.map(source,
|
27
|
-
function(i, cb)
|
28
|
-
{
|
29
|
-
setImmediate(function()
|
30
|
-
{
|
31
|
-
total += i;
|
32
|
-
cb(null, total);
|
33
|
-
});
|
34
|
-
},
|
35
|
-
function(err, result)
|
36
|
-
{
|
37
|
-
assert.ifError(err);
|
38
|
-
assert.equal(result[result.length - 1], expected);
|
39
|
-
deferred.resolve();
|
40
|
-
});
|
41
|
-
}, {'defer': true})
|
42
|
-
|
43
|
-
|
44
|
-
.add('asynckit.parallel', function(deferred)
|
45
|
-
{
|
46
|
-
var total = 0;
|
47
|
-
|
48
|
-
asynckit.parallel(source,
|
49
|
-
function(i, cb)
|
50
|
-
{
|
51
|
-
setImmediate(function()
|
52
|
-
{
|
53
|
-
total += i;
|
54
|
-
cb(null, total);
|
55
|
-
});
|
56
|
-
},
|
57
|
-
function(err, result)
|
58
|
-
{
|
59
|
-
assert.ifError(err);
|
60
|
-
assert.equal(result[result.length - 1], expected);
|
61
|
-
deferred.resolve();
|
62
|
-
});
|
63
|
-
}, {'defer': true})
|
64
|
-
|
65
|
-
|
66
|
-
// add listeners
|
67
|
-
.on('cycle', function(ev)
|
68
|
-
{
|
69
|
-
console.log(String(ev.target));
|
70
|
-
})
|
71
|
-
.on('complete', function()
|
72
|
-
{
|
73
|
-
console.log('Fastest is ' + this.filter('fastest').map('name'));
|
74
|
-
})
|
75
|
-
// run async
|
76
|
-
.run({ 'async': true });
|
@@ -1,29 +0,0 @@
|
|
1
|
-
// API
|
2
|
-
module.exports = abort;
|
3
|
-
|
4
|
-
/**
|
5
|
-
* Aborts leftover active jobs
|
6
|
-
*
|
7
|
-
* @param {object} state - current state object
|
8
|
-
*/
|
9
|
-
function abort(state)
|
10
|
-
{
|
11
|
-
Object.keys(state.jobs).forEach(clean.bind(state));
|
12
|
-
|
13
|
-
// reset leftover jobs
|
14
|
-
state.jobs = {};
|
15
|
-
}
|
16
|
-
|
17
|
-
/**
|
18
|
-
* Cleans up leftover job by invoking abort function for the provided job id
|
19
|
-
*
|
20
|
-
* @this state
|
21
|
-
* @param {string|number} key - job id to abort
|
22
|
-
*/
|
23
|
-
function clean(key)
|
24
|
-
{
|
25
|
-
if (typeof this.jobs[key] == 'function')
|
26
|
-
{
|
27
|
-
this.jobs[key]();
|
28
|
-
}
|
29
|
-
}
|
@@ -1,34 +0,0 @@
|
|
1
|
-
var defer = require('./defer.js');
|
2
|
-
|
3
|
-
// API
|
4
|
-
module.exports = async;
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Runs provided callback asynchronously
|
8
|
-
* even if callback itself is not
|
9
|
-
*
|
10
|
-
* @param {function} callback - callback to invoke
|
11
|
-
* @returns {function} - augmented callback
|
12
|
-
*/
|
13
|
-
function async(callback)
|
14
|
-
{
|
15
|
-
var isAsync = false;
|
16
|
-
|
17
|
-
// check if async happened
|
18
|
-
defer(function() { isAsync = true; });
|
19
|
-
|
20
|
-
return function async_callback(err, result)
|
21
|
-
{
|
22
|
-
if (isAsync)
|
23
|
-
{
|
24
|
-
callback(err, result);
|
25
|
-
}
|
26
|
-
else
|
27
|
-
{
|
28
|
-
defer(function nextTick_callback()
|
29
|
-
{
|
30
|
-
callback(err, result);
|
31
|
-
});
|
32
|
-
}
|
33
|
-
};
|
34
|
-
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module.exports = defer;
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Runs provided function on next iteration of the event loop
|
5
|
-
*
|
6
|
-
* @param {function} fn - function to run
|
7
|
-
*/
|
8
|
-
function defer(fn)
|
9
|
-
{
|
10
|
-
var nextTick = typeof setImmediate == 'function'
|
11
|
-
? setImmediate
|
12
|
-
: (
|
13
|
-
typeof process == 'object' && typeof process.nextTick == 'function'
|
14
|
-
? process.nextTick
|
15
|
-
: null
|
16
|
-
);
|
17
|
-
|
18
|
-
if (nextTick)
|
19
|
-
{
|
20
|
-
nextTick(fn);
|
21
|
-
}
|
22
|
-
else
|
23
|
-
{
|
24
|
-
setTimeout(fn, 0);
|
25
|
-
}
|
26
|
-
}
|
@@ -1,75 +0,0 @@
|
|
1
|
-
var async = require('./async.js')
|
2
|
-
, abort = require('./abort.js')
|
3
|
-
;
|
4
|
-
|
5
|
-
// API
|
6
|
-
module.exports = iterate;
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Iterates over each job object
|
10
|
-
*
|
11
|
-
* @param {array|object} list - array or object (named list) to iterate over
|
12
|
-
* @param {function} iterator - iterator to run
|
13
|
-
* @param {object} state - current job status
|
14
|
-
* @param {function} callback - invoked when all elements processed
|
15
|
-
*/
|
16
|
-
function iterate(list, iterator, state, callback)
|
17
|
-
{
|
18
|
-
// store current index
|
19
|
-
var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;
|
20
|
-
|
21
|
-
state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
|
22
|
-
{
|
23
|
-
// don't repeat yourself
|
24
|
-
// skip secondary callbacks
|
25
|
-
if (!(key in state.jobs))
|
26
|
-
{
|
27
|
-
return;
|
28
|
-
}
|
29
|
-
|
30
|
-
// clean up jobs
|
31
|
-
delete state.jobs[key];
|
32
|
-
|
33
|
-
if (error)
|
34
|
-
{
|
35
|
-
// don't process rest of the results
|
36
|
-
// stop still active jobs
|
37
|
-
// and reset the list
|
38
|
-
abort(state);
|
39
|
-
}
|
40
|
-
else
|
41
|
-
{
|
42
|
-
state.results[key] = output;
|
43
|
-
}
|
44
|
-
|
45
|
-
// return salvaged results
|
46
|
-
callback(error, state.results);
|
47
|
-
});
|
48
|
-
}
|
49
|
-
|
50
|
-
/**
|
51
|
-
* Runs iterator over provided job element
|
52
|
-
*
|
53
|
-
* @param {function} iterator - iterator to invoke
|
54
|
-
* @param {string|number} key - key/index of the element in the list of jobs
|
55
|
-
* @param {mixed} item - job description
|
56
|
-
* @param {function} callback - invoked after iterator is done with the job
|
57
|
-
* @returns {function|mixed} - job abort function or something else
|
58
|
-
*/
|
59
|
-
function runJob(iterator, key, item, callback)
|
60
|
-
{
|
61
|
-
var aborter;
|
62
|
-
|
63
|
-
// allow shortcut if iterator expects only two arguments
|
64
|
-
if (iterator.length == 2)
|
65
|
-
{
|
66
|
-
aborter = iterator(item, async(callback));
|
67
|
-
}
|
68
|
-
// otherwise go with full three arguments
|
69
|
-
else
|
70
|
-
{
|
71
|
-
aborter = iterator(item, key, async(callback));
|
72
|
-
}
|
73
|
-
|
74
|
-
return aborter;
|
75
|
-
}
|
@@ -1,91 +0,0 @@
|
|
1
|
-
var streamify = require('./streamify.js')
|
2
|
-
, defer = require('./defer.js')
|
3
|
-
;
|
4
|
-
|
5
|
-
// API
|
6
|
-
module.exports = ReadableAsyncKit;
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Base constructor for all streams
|
10
|
-
* used to hold properties/methods
|
11
|
-
*/
|
12
|
-
function ReadableAsyncKit()
|
13
|
-
{
|
14
|
-
ReadableAsyncKit.super_.apply(this, arguments);
|
15
|
-
|
16
|
-
// list of active jobs
|
17
|
-
this.jobs = {};
|
18
|
-
|
19
|
-
// add stream methods
|
20
|
-
this.destroy = destroy;
|
21
|
-
this._start = _start;
|
22
|
-
this._read = _read;
|
23
|
-
}
|
24
|
-
|
25
|
-
/**
|
26
|
-
* Destroys readable stream,
|
27
|
-
* by aborting outstanding jobs
|
28
|
-
*
|
29
|
-
* @returns {void}
|
30
|
-
*/
|
31
|
-
function destroy()
|
32
|
-
{
|
33
|
-
if (this.destroyed)
|
34
|
-
{
|
35
|
-
return;
|
36
|
-
}
|
37
|
-
|
38
|
-
this.destroyed = true;
|
39
|
-
|
40
|
-
if (typeof this.terminator == 'function')
|
41
|
-
{
|
42
|
-
this.terminator();
|
43
|
-
}
|
44
|
-
}
|
45
|
-
|
46
|
-
/**
|
47
|
-
* Starts provided jobs in async manner
|
48
|
-
*
|
49
|
-
* @private
|
50
|
-
*/
|
51
|
-
function _start()
|
52
|
-
{
|
53
|
-
// first argument – runner function
|
54
|
-
var runner = arguments[0]
|
55
|
-
// take away first argument
|
56
|
-
, args = Array.prototype.slice.call(arguments, 1)
|
57
|
-
// second argument - input data
|
58
|
-
, input = args[0]
|
59
|
-
// last argument - result callback
|
60
|
-
, endCb = streamify.callback.call(this, args[args.length - 1])
|
61
|
-
;
|
62
|
-
|
63
|
-
args[args.length - 1] = endCb;
|
64
|
-
// third argument - iterator
|
65
|
-
args[1] = streamify.iterator.call(this, args[1]);
|
66
|
-
|
67
|
-
// allow time for proper setup
|
68
|
-
defer(function()
|
69
|
-
{
|
70
|
-
if (!this.destroyed)
|
71
|
-
{
|
72
|
-
this.terminator = runner.apply(null, args);
|
73
|
-
}
|
74
|
-
else
|
75
|
-
{
|
76
|
-
endCb(null, Array.isArray(input) ? [] : {});
|
77
|
-
}
|
78
|
-
}.bind(this));
|
79
|
-
}
|
80
|
-
|
81
|
-
|
82
|
-
/**
|
83
|
-
* Implement _read to comply with Readable streams
|
84
|
-
* Doesn't really make sense for flowing object mode
|
85
|
-
*
|
86
|
-
* @private
|
87
|
-
*/
|
88
|
-
function _read()
|
89
|
-
{
|
90
|
-
|
91
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
var parallel = require('../parallel.js');
|
2
|
-
|
3
|
-
// API
|
4
|
-
module.exports = ReadableParallel;
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Streaming wrapper to `asynckit.parallel`
|
8
|
-
*
|
9
|
-
* @param {array|object} list - array or object (named list) to iterate over
|
10
|
-
* @param {function} iterator - iterator to run
|
11
|
-
* @param {function} callback - invoked when all elements processed
|
12
|
-
* @returns {stream.Readable#}
|
13
|
-
*/
|
14
|
-
function ReadableParallel(list, iterator, callback)
|
15
|
-
{
|
16
|
-
if (!(this instanceof ReadableParallel))
|
17
|
-
{
|
18
|
-
return new ReadableParallel(list, iterator, callback);
|
19
|
-
}
|
20
|
-
|
21
|
-
// turn on object mode
|
22
|
-
ReadableParallel.super_.call(this, {objectMode: true});
|
23
|
-
|
24
|
-
this._start(parallel, list, iterator, callback);
|
25
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
var serial = require('../serial.js');
|
2
|
-
|
3
|
-
// API
|
4
|
-
module.exports = ReadableSerial;
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Streaming wrapper to `asynckit.serial`
|
8
|
-
*
|
9
|
-
* @param {array|object} list - array or object (named list) to iterate over
|
10
|
-
* @param {function} iterator - iterator to run
|
11
|
-
* @param {function} callback - invoked when all elements processed
|
12
|
-
* @returns {stream.Readable#}
|
13
|
-
*/
|
14
|
-
function ReadableSerial(list, iterator, callback)
|
15
|
-
{
|
16
|
-
if (!(this instanceof ReadableSerial))
|
17
|
-
{
|
18
|
-
return new ReadableSerial(list, iterator, callback);
|
19
|
-
}
|
20
|
-
|
21
|
-
// turn on object mode
|
22
|
-
ReadableSerial.super_.call(this, {objectMode: true});
|
23
|
-
|
24
|
-
this._start(serial, list, iterator, callback);
|
25
|
-
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
var serialOrdered = require('../serialOrdered.js');
|
2
|
-
|
3
|
-
// API
|
4
|
-
module.exports = ReadableSerialOrdered;
|
5
|
-
// expose sort helpers
|
6
|
-
module.exports.ascending = serialOrdered.ascending;
|
7
|
-
module.exports.descending = serialOrdered.descending;
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Streaming wrapper to `asynckit.serialOrdered`
|
11
|
-
*
|
12
|
-
* @param {array|object} list - array or object (named list) to iterate over
|
13
|
-
* @param {function} iterator - iterator to run
|
14
|
-
* @param {function} sortMethod - custom sort function
|
15
|
-
* @param {function} callback - invoked when all elements processed
|
16
|
-
* @returns {stream.Readable#}
|
17
|
-
*/
|
18
|
-
function ReadableSerialOrdered(list, iterator, sortMethod, callback)
|
19
|
-
{
|
20
|
-
if (!(this instanceof ReadableSerialOrdered))
|
21
|
-
{
|
22
|
-
return new ReadableSerialOrdered(list, iterator, sortMethod, callback);
|
23
|
-
}
|
24
|
-
|
25
|
-
// turn on object mode
|
26
|
-
ReadableSerialOrdered.super_.call(this, {objectMode: true});
|
27
|
-
|
28
|
-
this._start(serialOrdered, list, iterator, sortMethod, callback);
|
29
|
-
}
|
@@ -1,37 +0,0 @@
|
|
1
|
-
// API
|
2
|
-
module.exports = state;
|
3
|
-
|
4
|
-
/**
|
5
|
-
* Creates initial state object
|
6
|
-
* for iteration over list
|
7
|
-
*
|
8
|
-
* @param {array|object} list - list to iterate over
|
9
|
-
* @param {function|null} sortMethod - function to use for keys sort,
|
10
|
-
* or `null` to keep them as is
|
11
|
-
* @returns {object} - initial state object
|
12
|
-
*/
|
13
|
-
function state(list, sortMethod)
|
14
|
-
{
|
15
|
-
var isNamedList = !Array.isArray(list)
|
16
|
-
, initState =
|
17
|
-
{
|
18
|
-
index : 0,
|
19
|
-
keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
|
20
|
-
jobs : {},
|
21
|
-
results : isNamedList ? {} : [],
|
22
|
-
size : isNamedList ? Object.keys(list).length : list.length
|
23
|
-
}
|
24
|
-
;
|
25
|
-
|
26
|
-
if (sortMethod)
|
27
|
-
{
|
28
|
-
// sort array keys based on it's values
|
29
|
-
// sort object's keys just on own merit
|
30
|
-
initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
|
31
|
-
{
|
32
|
-
return sortMethod(list[a], list[b]);
|
33
|
-
});
|
34
|
-
}
|
35
|
-
|
36
|
-
return initState;
|
37
|
-
}
|
@@ -1,141 +0,0 @@
|
|
1
|
-
var async = require('./async.js');
|
2
|
-
|
3
|
-
// API
|
4
|
-
module.exports = {
|
5
|
-
iterator: wrapIterator,
|
6
|
-
callback: wrapCallback
|
7
|
-
};
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Wraps iterators with long signature
|
11
|
-
*
|
12
|
-
* @this ReadableAsyncKit#
|
13
|
-
* @param {function} iterator - function to wrap
|
14
|
-
* @returns {function} - wrapped function
|
15
|
-
*/
|
16
|
-
function wrapIterator(iterator)
|
17
|
-
{
|
18
|
-
var stream = this;
|
19
|
-
|
20
|
-
return function(item, key, cb)
|
21
|
-
{
|
22
|
-
var aborter
|
23
|
-
, wrappedCb = async(wrapIteratorCallback.call(stream, cb, key))
|
24
|
-
;
|
25
|
-
|
26
|
-
stream.jobs[key] = wrappedCb;
|
27
|
-
|
28
|
-
// it's either shortcut (item, cb)
|
29
|
-
if (iterator.length == 2)
|
30
|
-
{
|
31
|
-
aborter = iterator(item, wrappedCb);
|
32
|
-
}
|
33
|
-
// or long format (item, key, cb)
|
34
|
-
else
|
35
|
-
{
|
36
|
-
aborter = iterator(item, key, wrappedCb);
|
37
|
-
}
|
38
|
-
|
39
|
-
return aborter;
|
40
|
-
};
|
41
|
-
}
|
42
|
-
|
43
|
-
/**
|
44
|
-
* Wraps provided callback function
|
45
|
-
* allowing to execute snitch function before
|
46
|
-
* real callback
|
47
|
-
*
|
48
|
-
* @this ReadableAsyncKit#
|
49
|
-
* @param {function} callback - function to wrap
|
50
|
-
* @returns {function} - wrapped function
|
51
|
-
*/
|
52
|
-
function wrapCallback(callback)
|
53
|
-
{
|
54
|
-
var stream = this;
|
55
|
-
|
56
|
-
var wrapped = function(error, result)
|
57
|
-
{
|
58
|
-
return finisher.call(stream, error, result, callback);
|
59
|
-
};
|
60
|
-
|
61
|
-
return wrapped;
|
62
|
-
}
|
63
|
-
|
64
|
-
/**
|
65
|
-
* Wraps provided iterator callback function
|
66
|
-
* makes sure snitch only called once,
|
67
|
-
* but passes secondary calls to the original callback
|
68
|
-
*
|
69
|
-
* @this ReadableAsyncKit#
|
70
|
-
* @param {function} callback - callback to wrap
|
71
|
-
* @param {number|string} key - iteration key
|
72
|
-
* @returns {function} wrapped callback
|
73
|
-
*/
|
74
|
-
function wrapIteratorCallback(callback, key)
|
75
|
-
{
|
76
|
-
var stream = this;
|
77
|
-
|
78
|
-
return function(error, output)
|
79
|
-
{
|
80
|
-
// don't repeat yourself
|
81
|
-
if (!(key in stream.jobs))
|
82
|
-
{
|
83
|
-
callback(error, output);
|
84
|
-
return;
|
85
|
-
}
|
86
|
-
|
87
|
-
// clean up jobs
|
88
|
-
delete stream.jobs[key];
|
89
|
-
|
90
|
-
return streamer.call(stream, error, {key: key, value: output}, callback);
|
91
|
-
};
|
92
|
-
}
|
93
|
-
|
94
|
-
/**
|
95
|
-
* Stream wrapper for iterator callback
|
96
|
-
*
|
97
|
-
* @this ReadableAsyncKit#
|
98
|
-
* @param {mixed} error - error response
|
99
|
-
* @param {mixed} output - iterator output
|
100
|
-
* @param {function} callback - callback that expects iterator results
|
101
|
-
*/
|
102
|
-
function streamer(error, output, callback)
|
103
|
-
{
|
104
|
-
if (error && !this.error)
|
105
|
-
{
|
106
|
-
this.error = error;
|
107
|
-
this.pause();
|
108
|
-
this.emit('error', error);
|
109
|
-
// send back value only, as expected
|
110
|
-
callback(error, output && output.value);
|
111
|
-
return;
|
112
|
-
}
|
113
|
-
|
114
|
-
// stream stuff
|
115
|
-
this.push(output);
|
116
|
-
|
117
|
-
// back to original track
|
118
|
-
// send back value only, as expected
|
119
|
-
callback(error, output && output.value);
|
120
|
-
}
|
121
|
-
|
122
|
-
/**
|
123
|
-
* Stream wrapper for finishing callback
|
124
|
-
*
|
125
|
-
* @this ReadableAsyncKit#
|
126
|
-
* @param {mixed} error - error response
|
127
|
-
* @param {mixed} output - iterator output
|
128
|
-
* @param {function} callback - callback that expects final results
|
129
|
-
*/
|
130
|
-
function finisher(error, output, callback)
|
131
|
-
{
|
132
|
-
// signal end of the stream
|
133
|
-
// only for successfully finished streams
|
134
|
-
if (!error)
|
135
|
-
{
|
136
|
-
this.push(null);
|
137
|
-
}
|
138
|
-
|
139
|
-
// back to original track
|
140
|
-
callback(error, output);
|
141
|
-
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
var abort = require('./abort.js')
|
2
|
-
, async = require('./async.js')
|
3
|
-
;
|
4
|
-
|
5
|
-
// API
|
6
|
-
module.exports = terminator;
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Terminates jobs in the attached state context
|
10
|
-
*
|
11
|
-
* @this AsyncKitState#
|
12
|
-
* @param {function} callback - final callback to invoke after termination
|
13
|
-
*/
|
14
|
-
function terminator(callback)
|
15
|
-
{
|
16
|
-
if (!Object.keys(this.jobs).length)
|
17
|
-
{
|
18
|
-
return;
|
19
|
-
}
|
20
|
-
|
21
|
-
// fast forward iteration index
|
22
|
-
this.index = this.size;
|
23
|
-
|
24
|
-
// abort jobs
|
25
|
-
abort(this);
|
26
|
-
|
27
|
-
// send back results we have so far
|
28
|
-
async(callback)(null, this.results);
|
29
|
-
}
|
@@ -1,63 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "asynckit",
|
3
|
-
"version": "0.4.0",
|
4
|
-
"description": "Minimal async jobs utility library, with streams support",
|
5
|
-
"main": "index.js",
|
6
|
-
"scripts": {
|
7
|
-
"clean": "rimraf coverage",
|
8
|
-
"lint": "eslint *.js lib/*.js test/*.js",
|
9
|
-
"test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec",
|
10
|
-
"win-test": "tape test/test-*.js",
|
11
|
-
"browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec",
|
12
|
-
"report": "istanbul report",
|
13
|
-
"size": "browserify index.js | size-table asynckit",
|
14
|
-
"debug": "tape test/test-*.js"
|
15
|
-
},
|
16
|
-
"pre-commit": [
|
17
|
-
"clean",
|
18
|
-
"lint",
|
19
|
-
"test",
|
20
|
-
"browser",
|
21
|
-
"report",
|
22
|
-
"size"
|
23
|
-
],
|
24
|
-
"repository": {
|
25
|
-
"type": "git",
|
26
|
-
"url": "git+https://github.com/alexindigo/asynckit.git"
|
27
|
-
},
|
28
|
-
"keywords": [
|
29
|
-
"async",
|
30
|
-
"jobs",
|
31
|
-
"parallel",
|
32
|
-
"serial",
|
33
|
-
"iterator",
|
34
|
-
"array",
|
35
|
-
"object",
|
36
|
-
"stream",
|
37
|
-
"destroy",
|
38
|
-
"terminate",
|
39
|
-
"abort"
|
40
|
-
],
|
41
|
-
"author": "Alex Indigo <iam@alexindigo.com>",
|
42
|
-
"license": "MIT",
|
43
|
-
"bugs": {
|
44
|
-
"url": "https://github.com/alexindigo/asynckit/issues"
|
45
|
-
},
|
46
|
-
"homepage": "https://github.com/alexindigo/asynckit#readme",
|
47
|
-
"devDependencies": {
|
48
|
-
"browserify": "^13.0.0",
|
49
|
-
"browserify-istanbul": "^2.0.0",
|
50
|
-
"coveralls": "^2.11.9",
|
51
|
-
"eslint": "^2.9.0",
|
52
|
-
"istanbul": "^0.4.3",
|
53
|
-
"obake": "^0.1.2",
|
54
|
-
"phantomjs-prebuilt": "^2.1.7",
|
55
|
-
"pre-commit": "^1.1.3",
|
56
|
-
"reamde": "^1.1.0",
|
57
|
-
"rimraf": "^2.5.2",
|
58
|
-
"size-table": "^0.2.0",
|
59
|
-
"tap-spec": "^4.1.1",
|
60
|
-
"tape": "^4.5.1"
|
61
|
-
},
|
62
|
-
"dependencies": {}
|
63
|
-
}
|