mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-29 15:50:28 +01:00
95f198550e
While working on #6805, I noticed that many variables were being used before they were declared. Technically this worked fine in practice because we were using the `transform-es2015-block-scoping` Babel plugin, which transforms `let` and `const` to `var`, which is hoisted. However, after removing that Babel transformation, many things broke. All instances of variables or classes being used before declared have been fixed. The `no-use-before-define` eslint rule has been added to catch these cases going forward. The rule is disabled for function declarations for the moment, because those are always hoisted. We could disable that too if we want to, but it's purely stylistic and would require a lot more changes.
24 lines
625 B
JavaScript
24 lines
625 B
JavaScript
const WritableStream = require('readable-stream').Writable
|
|
const promiseToCallback = require('promise-to-callback')
|
|
|
|
class AsyncWritableStream extends WritableStream {
|
|
|
|
constructor (asyncWriteFn, _opts) {
|
|
const opts = Object.assign({ objectMode: true }, _opts)
|
|
super(opts)
|
|
this._asyncWriteFn = asyncWriteFn
|
|
}
|
|
|
|
// write from incomming stream to state
|
|
_write (chunk, encoding, callback) {
|
|
promiseToCallback(this._asyncWriteFn(chunk, encoding))(callback)
|
|
}
|
|
|
|
}
|
|
|
|
function createStreamSink (asyncWriteFn, _opts) {
|
|
return new AsyncWritableStream(asyncWriteFn, _opts)
|
|
}
|
|
|
|
module.exports = createStreamSink
|