dotfiles/vscode/.vscode/extensions/matangover.mypy-0.3.1/node_modules/child-process-promise/lib/ChildProcessPromise.js
Errol Sancaktar 5f8db31398 alacritty
2024-07-15 17:06:13 -06:00

63 lines
1.4 KiB
JavaScript

'use strict';
var Promise;
if (require('node-version').major >= 4) {
Promise = global.Promise;
} else {
// Don't use the native Promise in Node.js <4 since it doesn't support subclassing
Promise = require('promise-polyfill');
}
class ChildProcessPromise extends Promise {
constructor(executor) {
var resolve;
var reject;
super((_resolve, _reject) => {
resolve = _resolve;
reject = _reject;
if (executor) {
executor(resolve, reject);
}
});
this._cpResolve = resolve;
this._cpReject = reject;
this.childProcess = undefined;
}
progress(callback) {
process.nextTick(() => {
callback(this.childProcess);
});
return this;
}
then(onFulfilled, onRejected) {
var newPromise = super.then(onFulfilled, onRejected);
newPromise.childProcess = this.childProcess;
return newPromise;
}
catch(onRejected) {
var newPromise = super.catch(onRejected);
newPromise.childProcess = this.childProcess;
return newPromise;
}
done() {
this.catch((e) => {
process.nextTick(() => {
throw e;
});
});
}
}
ChildProcessPromise.prototype.fail = ChildProcessPromise.prototype.catch;
module.exports = ChildProcessPromise;