4cko
/usr/local/rvm/gems/ruby-3.4.7/bin:/usr/local/rvm/gems/ruby-3.4.7@global/bin:/usr/local/rvm/rubies/ruby-3.4.7/bin:/home/codespace/.vscode-remote/data/User/globalStorage/github.copilot-chat/debugCommand:/home/codespace/.vscode-remote/data/User/globalStorage/github.copilot-chat/copilotCli:/vscode/bin/linux-x64/7e7950df89d055b5a378379db9ee14290772148a/bin/remote-cli:/home/codespace/.local/bin:/home/codespace/.dotnet:/home/codespace/nvm/current/bin:/home/codespace/.php/current/bin:/home/codespace/.python/current/bin:/home/codespace/java/current/bin:/home/codespace/.ruby/current/bin:/home/codespace/.local/bin:/usr/local/python/current/bin:/usr/local/py-utils/bin:/usr/local/jupyter:/usr/local/oryx:/usr/local/go/bin:/go/bin:/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:/usr/local/sdkman/candidates/ant/current/bin:/usr/local/rvm/gems/default/bin:/usr/local/rvm/gems/default@global/bin:/usr/local/rvm/rubies/default/bin:/usr/local/share/rbenv/bin:/usr/local/php/current/bin:/opt/conda/bin:/usr/local/nvs:/usr/local/share/nvm/versions/node/v24.14.0/bin:/usr/local/hugo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/share/dotnet:/home/codespace/.dotnet/tools:/usr/local/rvm/bin
a2c64e7 | var streamify = require('./streamify.js') | |
| , defer = require('./defer.js') | |
| ; | |
| // API | |
| module.exports = ReadableAsyncKit; | |
| /** | |
| * Base constructor for all streams | |
| * used to hold properties/methods | |
| */ | |
| function ReadableAsyncKit() | |
| { | |
| ReadableAsyncKit.super_.apply(this, arguments); | |
| // list of active jobs | |
| this.jobs = {}; | |
| // add stream methods | |
| this.destroy = destroy; | |
| this._start = _start; | |
| this._read = _read; | |
| } | |
| /** | |
| * Destroys readable stream, | |
| * by aborting outstanding jobs | |
| * | |
| * @returns {void} | |
| */ | |
| function destroy() | |
| { | |
| if (this.destroyed) | |
| { | |
| return; | |
| } | |
| this.destroyed = true; | |
| if (typeof this.terminator == 'function') | |
| { | |
| this.terminator(); | |
| } | |
| } | |
| /** | |
| * Starts provided jobs in async manner | |
| * | |
| * @private | |
| */ | |
| function _start() | |
| { | |
| // first argument – runner function | |
| var runner = arguments[0] | |
| // take away first argument | |
| , args = Array.prototype.slice.call(arguments, 1) | |
| // second argument - input data | |
| , input = args[0] | |
| // last argument - result callback | |
| , endCb = streamify.callback.call(this, args[args.length - 1]) | |
| ; | |
| args[args.length - 1] = endCb; | |
| // third argument - iterator | |
| args[1] = streamify.iterator.call(this, args[1]); | |
| // allow time for proper setup | |
| defer(function() | |
| { | |
| if (!this.destroyed) | |
| { | |
| this.terminator = runner.apply(null, args); | |
| } | |
| else | |
| { | |
| endCb(null, Array.isArray(input) ? [] : {}); | |
| } | |
| }.bind(this)); | |
| } | |
| /** | |
| * Implement _read to comply with Readable streams | |
| * Doesn't really make sense for flowing object mode | |
| * | |
| * @private | |
| */ | |
| function _read() | |
| { | |
| } | |