@microsoft/dev-tunnels-ssh
Version:
SSH library for Dev Tunnels
38 lines • 1.49 kB
JavaScript
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
Object.defineProperty(exports, "__esModule", { value: true });
exports.withCancellation = exports.CancellationError = exports.CancellationTokenSource = exports.CancellationToken = void 0;
const vscode_jsonrpc_1 = require("vscode-jsonrpc");
Object.defineProperty(exports, "CancellationToken", { enumerable: true, get: function () { return vscode_jsonrpc_1.CancellationToken; } });
Object.defineProperty(exports, "CancellationTokenSource", { enumerable: true, get: function () { return vscode_jsonrpc_1.CancellationTokenSource; } });
/**
* Error thrown when an operation is cancelled via a CancellationToken.
*/
class CancellationError extends Error {
constructor(message) {
super(message || 'Operation cancelled.');
}
}
exports.CancellationError = CancellationError;
function withCancellation(promise, cancellation) {
if (!cancellation) {
return promise;
}
return Promise.race([
promise,
new Promise((resolve, reject) => {
if (cancellation.isCancellationRequested) {
reject(new CancellationError());
}
else {
cancellation.onCancellationRequested(() => {
reject(new CancellationError());
});
}
}),
]);
}
exports.withCancellation = withCancellation;
//# sourceMappingURL=cancellation.js.map
;