123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- "use strict";
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- const pluginHooks_1 = require("./pluginHooks");
- const reporter_1 = require("../reporter");
- const OperationCanceledError_1 = require("../error/OperationCanceledError");
- const tapDoneToAsyncGetIssues_1 = require("./tapDoneToAsyncGetIssues");
- const tapAfterCompileToGetIssues_1 = require("./tapAfterCompileToGetIssues");
- const interceptDoneToGetWebpackDevServerTap_1 = require("./interceptDoneToGetWebpackDevServerTap");
- const ForkTsCheckerWebpackPlugin_1 = require("../ForkTsCheckerWebpackPlugin");
- function tapStartToConnectAndRunReporter(compiler, issuesReporter, dependenciesReporter, configuration, state) {
- const hooks = pluginHooks_1.getForkTsCheckerWebpackPluginHooks(compiler);
- compiler.hooks.run.tap('ForkTsCheckerWebpackPlugin', () => {
- if (!state.initialized) {
- state.initialized = true;
- state.watching = false;
- tapAfterCompileToGetIssues_1.tapAfterCompileToGetIssues(compiler, configuration, state);
- }
- });
- compiler.hooks.watchRun.tap('ForkTsCheckerWebpackPlugin', () => __awaiter(this, void 0, void 0, function* () {
- if (!state.initialized) {
- state.initialized = true;
- state.watching = true;
- if (configuration.async) {
- tapDoneToAsyncGetIssues_1.tapDoneToAsyncGetIssues(compiler, configuration, state);
- interceptDoneToGetWebpackDevServerTap_1.interceptDoneToGetWebpackDevServerTap(compiler, configuration, state);
- }
- else {
- tapAfterCompileToGetIssues_1.tapAfterCompileToGetIssues(compiler, configuration, state);
- }
- }
- }));
- compiler.hooks.compilation.tap('ForkTsCheckerWebpackPlugin', (compilation) => __awaiter(this, void 0, void 0, function* () {
- if (compilation.compiler !== compiler) {
- // run only for the compiler that the plugin was registered for
- return;
- }
- let change = {};
- if (state.watching) {
- change = reporter_1.getFilesChange(compiler);
- configuration.logger.infrastructure.info([
- 'Calling reporter service for incremental check.',
- ` Changed files: ${JSON.stringify(change.changedFiles)}`,
- ` Deleted files: ${JSON.stringify(change.deletedFiles)}`,
- ].join('\n'));
- }
- else {
- configuration.logger.infrastructure.info('Calling reporter service for single check.');
- }
- let resolveDependencies;
- let rejectDependencies;
- let resolveIssues;
- let rejectIssues;
- state.dependenciesPromise = new Promise((resolve, reject) => {
- resolveDependencies = resolve;
- rejectDependencies = reject;
- });
- state.issuesPromise = new Promise((resolve, reject) => {
- resolveIssues = resolve;
- rejectIssues = reject;
- });
- const previousIssuesReportPromise = state.issuesReportPromise;
- const previousDependenciesReportPromise = state.dependenciesReportPromise;
- change = yield hooks.start.promise(change, compilation);
- state.issuesReportPromise = ForkTsCheckerWebpackPlugin_1.ForkTsCheckerWebpackPlugin.issuesPool.submit((done) => new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
- try {
- yield issuesReporter.connect();
- const previousReport = yield previousIssuesReportPromise;
- if (previousReport) {
- yield previousReport.close();
- }
- const report = yield issuesReporter.getReport(change);
- resolve(report);
- report.getIssues().then(resolveIssues).catch(rejectIssues).finally(done);
- }
- catch (error) {
- if (error instanceof OperationCanceledError_1.OperationCanceledError) {
- hooks.canceled.call(compilation);
- }
- else {
- hooks.error.call(error, compilation);
- }
- resolve(undefined);
- resolveIssues(undefined);
- done();
- }
- })));
- state.dependenciesReportPromise = ForkTsCheckerWebpackPlugin_1.ForkTsCheckerWebpackPlugin.dependenciesPool.submit((done) => new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
- try {
- yield dependenciesReporter.connect();
- const previousReport = yield previousDependenciesReportPromise;
- if (previousReport) {
- yield previousReport.close();
- }
- const report = yield dependenciesReporter.getReport(change);
- resolve(report);
- report
- .getDependencies()
- .then(resolveDependencies)
- .catch(rejectDependencies)
- .finally(done);
- }
- catch (error) {
- if (error instanceof OperationCanceledError_1.OperationCanceledError) {
- hooks.canceled.call(compilation);
- }
- else {
- hooks.error.call(error, compilation);
- }
- resolve(undefined);
- resolveDependencies(undefined);
- done();
- }
- })));
- }));
- }
- exports.tapStartToConnectAndRunReporter = tapStartToConnectAndRunReporter;
|