"use strict"; const pDefer = require("p-defer"); // FIXME: Move into separate package, and see if this can be used in other stream implementations too module.exports = function createPromiseNotifier() { let promise, resolve; return { wait: function () { if (promise == null) { let defer = pDefer(); promise = defer.promise; resolve = defer.resolve; } return promise; }, notify: function (value) { if (resolve != null) { resolve(value); promise = null; resolve = null; } } }; };