Skip to content

Commit 6e198f9

Browse files
author
Arthur Ozga
committed
Merge branch 'master' into MissingPropertyFix
2 parents 1b6cf97 + 6c58938 commit 6e198f9

File tree

387 files changed

+106736
-69927
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

387 files changed

+106736
-69927
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ branches:
1717
only:
1818
- master
1919
- release-2.1
20+
- release-2.2
2021

2122
install:
2223
- npm uninstall typescript

Jakefile.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var servicesDirectory = "src/services/";
1515
var serverDirectory = "src/server/";
1616
var typingsInstallerDirectory = "src/server/typingsInstaller";
1717
var cancellationTokenDirectory = "src/server/cancellationToken";
18+
var watchGuardDirectory = "src/server/watchGuard";
1819
var harnessDirectory = "src/harness/";
1920
var libraryDirectory = "src/lib/";
2021
var scriptsDirectory = "scripts/";
@@ -80,6 +81,7 @@ var compilerSources = filesFromConfig("./src/compiler/tsconfig.json");
8081
var servicesSources = filesFromConfig("./src/services/tsconfig.json");
8182
var cancellationTokenSources = filesFromConfig(path.join(serverDirectory, "cancellationToken/tsconfig.json"));
8283
var typingsInstallerSources = filesFromConfig(path.join(serverDirectory, "typingsInstaller/tsconfig.json"));
84+
var watchGuardSources = filesFromConfig(path.join(serverDirectory, "watchGuard/tsconfig.json"));
8385
var serverSources = filesFromConfig(path.join(serverDirectory, "tsconfig.json"))
8486
var languageServiceLibrarySources = filesFromConfig(path.join(serverDirectory, "tsconfig.library.json"));
8587

@@ -570,8 +572,11 @@ compileFile(cancellationTokenFile, cancellationTokenSources, [builtLocalDirector
570572
var typingsInstallerFile = path.join(builtLocalDirectory, "typingsInstaller.js");
571573
compileFile(typingsInstallerFile, typingsInstallerSources, [builtLocalDirectory].concat(typingsInstallerSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, { outDir: builtLocalDirectory, noOutFile: false });
572574

575+
var watchGuardFile = path.join(builtLocalDirectory, "watchGuard.js");
576+
compileFile(watchGuardFile, watchGuardSources, [builtLocalDirectory].concat(watchGuardSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, { outDir: builtLocalDirectory, noOutFile: false });
577+
573578
var serverFile = path.join(builtLocalDirectory, "tsserver.js");
574-
compileFile(serverFile, serverSources, [builtLocalDirectory, copyright, cancellationTokenFile, typingsInstallerFile].concat(serverSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, { types: ["node"] });
579+
compileFile(serverFile, serverSources, [builtLocalDirectory, copyright, cancellationTokenFile, typingsInstallerFile, watchGuardFile].concat(serverSources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, { types: ["node"], preserveConstEnums: true });
575580
var tsserverLibraryFile = path.join(builtLocalDirectory, "tsserverlibrary.js");
576581
var tsserverLibraryDefinitionFile = path.join(builtLocalDirectory, "tsserverlibrary.d.ts");
577582
compileFile(
@@ -580,7 +585,7 @@ compileFile(
580585
[builtLocalDirectory, copyright, builtLocalCompiler].concat(languageServiceLibrarySources).concat(libraryTargets),
581586
/*prefixes*/[copyright],
582587
/*useBuiltCompiler*/ true,
583-
{ noOutFile: false, generateDeclarations: true, stripInternal: true },
588+
{ noOutFile: false, generateDeclarations: true, stripInternal: true, preserveConstEnums: true },
584589
/*callback*/ function () {
585590
prependFile(copyright, tsserverLibraryDefinitionFile);
586591

@@ -665,7 +670,7 @@ task("generate-spec", [specMd]);
665670
// Makes a new LKG. This target does not build anything, but errors if not all the outputs are present in the built/local directory
666671
desc("Makes a new LKG out of the built js files");
667672
task("LKG", ["clean", "release", "local"].concat(libraryTargets), function () {
668-
var expectedFiles = [tscFile, servicesFile, serverFile, nodePackageFile, nodeDefinitionsFile, standaloneDefinitionsFile, tsserverLibraryFile, tsserverLibraryDefinitionFile, cancellationTokenFile, typingsInstallerFile, buildProtocolDts].concat(libraryTargets);
673+
var expectedFiles = [tscFile, servicesFile, serverFile, nodePackageFile, nodeDefinitionsFile, standaloneDefinitionsFile, tsserverLibraryFile, tsserverLibraryDefinitionFile, cancellationTokenFile, typingsInstallerFile, buildProtocolDts, watchGuardFile].concat(libraryTargets);
669674
var missingFiles = expectedFiles.filter(function (f) {
670675
return !fs.existsSync(f);
671676
});

lib/cancellationToken.js

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,15 @@ and limitations under the License.
1515

1616
"use strict";
1717
var fs = require("fs");
18+
function pipeExists(name) {
19+
try {
20+
fs.statSync(name);
21+
return true;
22+
}
23+
catch (e) {
24+
return false;
25+
}
26+
}
1827
function createCancellationToken(args) {
1928
var cancellationPipeName;
2029
for (var i = 0; i < args.length - 1; i++) {
@@ -24,18 +33,39 @@ function createCancellationToken(args) {
2433
}
2534
}
2635
if (!cancellationPipeName) {
27-
return { isCancellationRequested: function () { return false; } };
36+
return {
37+
isCancellationRequested: function () { return false; },
38+
setRequest: function (_requestId) { return void 0; },
39+
resetRequest: function (_requestId) { return void 0; }
40+
};
2841
}
29-
return {
30-
isCancellationRequested: function () {
31-
try {
32-
fs.statSync(cancellationPipeName);
33-
return true;
34-
}
35-
catch (e) {
36-
return false;
37-
}
42+
if (cancellationPipeName.charAt(cancellationPipeName.length - 1) === "*") {
43+
var namePrefix_1 = cancellationPipeName.slice(0, -1);
44+
if (namePrefix_1.length === 0 || namePrefix_1.indexOf("*") >= 0) {
45+
throw new Error("Invalid name for template cancellation pipe: it should have length greater than 2 characters and contain only one '*'.");
3846
}
39-
};
47+
var perRequestPipeName_1;
48+
var currentRequestId_1;
49+
return {
50+
isCancellationRequested: function () { return perRequestPipeName_1 !== undefined && pipeExists(perRequestPipeName_1); },
51+
setRequest: function (requestId) {
52+
currentRequestId_1 = currentRequestId_1;
53+
perRequestPipeName_1 = namePrefix_1 + requestId;
54+
},
55+
resetRequest: function (requestId) {
56+
if (currentRequestId_1 !== requestId) {
57+
throw new Error("Mismatched request id, expected " + currentRequestId_1 + ", actual " + requestId);
58+
}
59+
perRequestPipeName_1 = undefined;
60+
}
61+
};
62+
}
63+
else {
64+
return {
65+
isCancellationRequested: function () { return pipeExists(cancellationPipeName); },
66+
setRequest: function (_requestId) { return void 0; },
67+
resetRequest: function (_requestId) { return void 0; }
68+
};
69+
}
4070
}
4171
module.exports = createCancellationToken;

0 commit comments

Comments
 (0)