service.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. "use strict";
  2. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var __generator = (this && this.__generator) || function (thisArg, body) {
  11. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  12. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  13. function verb(n) { return function (v) { return step([n, v]); }; }
  14. function step(op) {
  15. if (f) throw new TypeError("Generator is already executing.");
  16. while (_) try {
  17. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  18. if (y = 0, t) op = [op[0] & 2, t.value];
  19. switch (op[0]) {
  20. case 0: case 1: t = op; break;
  21. case 4: _.label++; return { value: op[1], done: false };
  22. case 5: _.label++; y = op[1]; op = [0]; continue;
  23. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  24. default:
  25. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  26. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  27. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  28. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  29. if (t[2]) _.ops.pop();
  30. _.trys.pop(); continue;
  31. }
  32. op = body.call(thisArg, _);
  33. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  34. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  35. }
  36. };
  37. Object.defineProperty(exports, "__esModule", { value: true });
  38. var IncrementalChecker_1 = require("./IncrementalChecker");
  39. var CancellationToken_1 = require("./CancellationToken");
  40. var ApiIncrementalChecker_1 = require("./ApiIncrementalChecker");
  41. var worker_rpc_1 = require("worker-rpc");
  42. var RpcTypes_1 = require("./RpcTypes");
  43. var patchTypescript_1 = require("./patchTypescript");
  44. var createEslinter_1 = require("./createEslinter");
  45. var issue_1 = require("./issue");
  46. var rpc = new worker_rpc_1.RpcProvider(function (message) {
  47. try {
  48. if (process.send) {
  49. process.send(message, undefined, undefined, function (error) {
  50. if (error) {
  51. process.exit();
  52. }
  53. });
  54. }
  55. }
  56. catch (e) {
  57. // channel closed...
  58. process.exit();
  59. }
  60. });
  61. process.on('message', function (message) { return rpc.dispatch(message); });
  62. // eslint-disable-next-line @typescript-eslint/no-var-requires
  63. var typescript = require(String(process.env.TYPESCRIPT_PATH));
  64. var patchConfig = {
  65. skipGetSyntacticDiagnostics: process.env.USE_INCREMENTAL_API === 'true' &&
  66. process.env.CHECK_SYNTACTIC_ERRORS !== 'true'
  67. };
  68. patchTypescript_1.patchTypescript(typescript, patchConfig);
  69. var resolveModuleName = process.env.RESOLVE_MODULE_NAME
  70. ? require(process.env.RESOLVE_MODULE_NAME).resolveModuleName
  71. : undefined;
  72. var resolveTypeReferenceDirective = process.env
  73. .RESOLVE_TYPE_REFERENCE_DIRECTIVE
  74. ? require(process.env.RESOLVE_TYPE_REFERENCE_DIRECTIVE)
  75. .resolveTypeReferenceDirective
  76. : undefined;
  77. var eslinter = process.env.ESLINT === 'true'
  78. ? createEslinter_1.createEslinter(JSON.parse(String(process.env.ESLINT_OPTIONS)))
  79. : undefined;
  80. function createChecker(useIncrementalApi) {
  81. var incrementalCheckerParams = {
  82. typescript: typescript,
  83. context: String(process.env.CONTEXT),
  84. programConfigFile: String(process.env.TSCONFIG),
  85. compilerOptions: JSON.parse(String(process.env.COMPILER_OPTIONS)),
  86. eslinter: eslinter,
  87. checkSyntacticErrors: process.env.CHECK_SYNTACTIC_ERRORS === 'true',
  88. resolveModuleName: resolveModuleName,
  89. resolveTypeReferenceDirective: resolveTypeReferenceDirective,
  90. vue: JSON.parse(String(process.env.VUE))
  91. };
  92. return useIncrementalApi
  93. ? new ApiIncrementalChecker_1.ApiIncrementalChecker(incrementalCheckerParams)
  94. : new IncrementalChecker_1.IncrementalChecker(incrementalCheckerParams);
  95. }
  96. var checker = createChecker(process.env.USE_INCREMENTAL_API === 'true');
  97. function run(cancellationToken) {
  98. return __awaiter(this, void 0, void 0, function () {
  99. var diagnostics, lints, _a, _b, _c, _d, _e, _f, error_1;
  100. return __generator(this, function (_g) {
  101. switch (_g.label) {
  102. case 0:
  103. diagnostics = [];
  104. lints = [];
  105. _g.label = 1;
  106. case 1:
  107. _g.trys.push([1, 5, , 6]);
  108. checker.nextIteration();
  109. _b = (_a = diagnostics.push).apply;
  110. _c = [diagnostics];
  111. return [4 /*yield*/, checker.getTypeScriptIssues(cancellationToken)];
  112. case 2:
  113. _b.apply(_a, _c.concat([(_g.sent())]));
  114. if (!checker.hasEsLinter()) return [3 /*break*/, 4];
  115. _e = (_d = lints.push).apply;
  116. _f = [lints];
  117. return [4 /*yield*/, checker.getEsLintIssues(cancellationToken)];
  118. case 3:
  119. _e.apply(_d, _f.concat([(_g.sent())]));
  120. _g.label = 4;
  121. case 4: return [3 /*break*/, 6];
  122. case 5:
  123. error_1 = _g.sent();
  124. if (error_1 instanceof typescript.OperationCanceledException) {
  125. return [2 /*return*/, undefined];
  126. }
  127. diagnostics.push(issue_1.createIssueFromInternalError(error_1));
  128. return [3 /*break*/, 6];
  129. case 6:
  130. if (cancellationToken.isCancellationRequested()) {
  131. return [2 /*return*/, undefined];
  132. }
  133. return [2 /*return*/, {
  134. diagnostics: diagnostics,
  135. lints: lints
  136. }];
  137. }
  138. });
  139. });
  140. }
  141. rpc.registerRpcHandler(RpcTypes_1.RUN, function (message) {
  142. return typeof message !== 'undefined'
  143. ? run(CancellationToken_1.CancellationToken.createFromJSON(typescript, message))
  144. : undefined;
  145. });
  146. process.on('SIGINT', function () {
  147. process.exit();
  148. });
  149. //# sourceMappingURL=service.js.map