UNPKG

4.61 kBJavaScriptView Raw
1"use strict";
2var __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};
10Object.defineProperty(exports, "__esModule", { value: true });
11const process = require("process");
12const IncrementalChecker_1 = require("./IncrementalChecker");
13const CancellationToken_1 = require("./CancellationToken");
14const ApiIncrementalChecker_1 = require("./ApiIncrementalChecker");
15const NormalizedMessageFactories_1 = require("./NormalizedMessageFactories");
16const worker_rpc_1 = require("worker-rpc");
17const RpcTypes_1 = require("./RpcTypes");
18const patchTypescript_1 = require("./patchTypescript");
19const rpc = new worker_rpc_1.RpcProvider(message => {
20 try {
21 process.send(message);
22 }
23 catch (e) {
24 // channel closed...
25 process.exit();
26 }
27});
28process.on('message', message => rpc.dispatch(message));
29const typescript = require(process.env.TYPESCRIPT_PATH);
30const patchConfig = {
31 skipGetSyntacticDiagnostics: process.env.USE_INCREMENTAL_API === 'true' &&
32 process.env.CHECK_SYNTACTIC_ERRORS !== 'true'
33};
34patchTypescript_1.patchTypescript(typescript, patchConfig);
35// message factories
36exports.createNormalizedMessageFromDiagnostic = NormalizedMessageFactories_1.makeCreateNormalizedMessageFromDiagnostic(typescript);
37exports.createNormalizedMessageFromRuleFailure = NormalizedMessageFactories_1.makeCreateNormalizedMessageFromRuleFailure();
38exports.createNormalizedMessageFromInternalError = NormalizedMessageFactories_1.makeCreateNormalizedMessageFromInternalError();
39const resolveModuleName = process.env.RESOLVE_MODULE_NAME
40 ? require(process.env.RESOLVE_MODULE_NAME).resolveModuleName
41 : undefined;
42const resolveTypeReferenceDirective = process.env
43 .RESOLVE_TYPE_REFERENCE_DIRECTIVE
44 ? require(process.env.RESOLVE_TYPE_REFERENCE_DIRECTIVE)
45 .resolveTypeReferenceDirective
46 : undefined;
47const checker = process.env.USE_INCREMENTAL_API === 'true'
48 ? new ApiIncrementalChecker_1.ApiIncrementalChecker(typescript, exports.createNormalizedMessageFromDiagnostic, exports.createNormalizedMessageFromRuleFailure, process.env.TSCONFIG, JSON.parse(process.env.COMPILER_OPTIONS), process.env.CONTEXT, process.env.TSLINT === 'true' ? true : process.env.TSLINT || false, process.env.TSLINTAUTOFIX === 'true', process.env.CHECK_SYNTACTIC_ERRORS === 'true', resolveModuleName, resolveTypeReferenceDirective)
49 : new IncrementalChecker_1.IncrementalChecker(typescript, exports.createNormalizedMessageFromDiagnostic, exports.createNormalizedMessageFromRuleFailure, process.env.TSCONFIG, JSON.parse(process.env.COMPILER_OPTIONS), process.env.CONTEXT, process.env.TSLINT === 'true' ? true : process.env.TSLINT || false, process.env.TSLINTAUTOFIX === 'true', process.env.WATCH === '' ? [] : process.env.WATCH.split('|'), parseInt(process.env.WORK_NUMBER, 10) || 0, parseInt(process.env.WORK_DIVISION, 10) || 1, process.env.CHECK_SYNTACTIC_ERRORS === 'true', process.env.VUE === 'true', resolveModuleName, resolveTypeReferenceDirective);
50function run(cancellationToken) {
51 return __awaiter(this, void 0, void 0, function* () {
52 let diagnostics = [];
53 let lints = [];
54 try {
55 checker.nextIteration();
56 diagnostics = yield checker.getDiagnostics(cancellationToken);
57 if (checker.hasLinter()) {
58 lints = checker.getLints(cancellationToken);
59 }
60 }
61 catch (error) {
62 if (error instanceof typescript.OperationCanceledException) {
63 return undefined;
64 }
65 diagnostics.push(exports.createNormalizedMessageFromInternalError(error));
66 }
67 if (cancellationToken.isCancellationRequested()) {
68 return undefined;
69 }
70 return {
71 diagnostics,
72 lints
73 };
74 });
75}
76rpc.registerRpcHandler(RpcTypes_1.RUN, message => typeof message !== 'undefined'
77 ? run(CancellationToken_1.CancellationToken.createFromJSON(typescript, message))
78 : undefined);
79process.on('SIGINT', () => {
80 process.exit();
81});
82//# sourceMappingURL=service.js.map
\No newline at end of file