48 lines
2.2 KiB
Plaintext
48 lines
2.2 KiB
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.decorateProgram = void 0;
|
|
const utils_1 = require("./utils");
|
|
const transform_1 = require("./transform");
|
|
function decorateProgram(files, program) {
|
|
const emit = program.emit;
|
|
// for tsc --noEmit
|
|
const getSyntacticDiagnostics = program.getSyntacticDiagnostics;
|
|
const getSemanticDiagnostics = program.getSemanticDiagnostics;
|
|
const getGlobalDiagnostics = program.getGlobalDiagnostics;
|
|
// for tsc --noEmit --watch
|
|
// @ts-ignore
|
|
const getBindAndCheckDiagnostics = program.getBindAndCheckDiagnostics;
|
|
program.emit = (targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) => {
|
|
const result = emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers);
|
|
return {
|
|
emitSkipped: result.emitSkipped,
|
|
emittedFiles: result.emittedFiles,
|
|
diagnostics: result.diagnostics
|
|
.map(d => (0, transform_1.transformDiagnostic)(files, d))
|
|
.filter(utils_1.notEmpty),
|
|
};
|
|
};
|
|
program.getSyntacticDiagnostics = (sourceFile, cancellationToken) => {
|
|
return getSyntacticDiagnostics(sourceFile, cancellationToken)
|
|
.map(d => (0, transform_1.transformDiagnostic)(files, d))
|
|
.filter(utils_1.notEmpty);
|
|
};
|
|
program.getSemanticDiagnostics = (sourceFile, cancellationToken) => {
|
|
return getSemanticDiagnostics(sourceFile, cancellationToken)
|
|
.map(d => (0, transform_1.transformDiagnostic)(files, d))
|
|
.filter(utils_1.notEmpty);
|
|
};
|
|
program.getGlobalDiagnostics = cancellationToken => {
|
|
return getGlobalDiagnostics(cancellationToken)
|
|
.map(d => (0, transform_1.transformDiagnostic)(files, d))
|
|
.filter(utils_1.notEmpty);
|
|
};
|
|
// @ts-ignore
|
|
program.getBindAndCheckDiagnostics = (sourceFile, cancellationToken) => {
|
|
return getBindAndCheckDiagnostics(sourceFile, cancellationToken)
|
|
.map(d => (0, transform_1.transformDiagnostic)(files, d))
|
|
.filter(utils_1.notEmpty);
|
|
};
|
|
}
|
|
exports.decorateProgram = decorateProgram;
|
|
//# sourceMappingURL=decorateProgram.js.map |