Files
TypeScript/src/server/cancellationToken.ts
T
2016-06-14 17:30:55 -07:00

34 lines
895 B
TypeScript

/// <reference path="node.d.ts"/>
// TODO: extract services types
interface HostCancellationToken {
isCancellationRequested(): boolean;
}
const fs: typeof NodeJS.fs = require("fs");
function createCancellationToken(args: string[]): HostCancellationToken {
let cancellationPipeName: string;
for (let i = 0; i < args.length - 1; i++) {
if (args[i] === "--cancellationPipeName") {
cancellationPipeName = args[i + 1];
break;
}
}
if (!cancellationPipeName) {
return { isCancellationRequested: () => false };
}
return {
isCancellationRequested() {
try {
fs.statSync(cancellationPipeName);
return true;
}
catch(e) {
return false;
}
}
};
}
export = createCancellationToken