UNPKG

e2ed

Version:

E2E testing framework over Playwright

41 lines (40 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compilePack = void 0; const typescript_1 = require("typescript"); const environment_1 = require("../environment"); const getDurationWithUnits_1 = require("../getDurationWithUnits"); const getCompilerOptions_1 = require("./getCompilerOptions"); const inNotUnderRootDir = "is not under 'rootDir'"; const unusedTsExceptErrorMessage = "Unused '@ts-expect-error' directive."; /** * Compiles pack file before running tests (or tasks). * @internal */ const compilePack = () => { const startTimeInMs = Date.now(); const { compilerOptions, parsingTsConfigError } = (0, getCompilerOptions_1.getCompilerOptions)(); const pathToPack = (0, environment_1.getPathToPack)(); const program = (0, typescript_1.createProgram)([pathToPack], compilerOptions); const { diagnostics } = program.emit(); const allDiagnostics = (0, typescript_1.getPreEmitDiagnostics)(program).concat(diagnostics); const compileErrors = []; if (parsingTsConfigError !== undefined) { compileErrors.push(parsingTsConfigError); } allDiagnostics.forEach((diagnostic) => { const message = (0, typescript_1.flattenDiagnosticMessageText)(diagnostic.messageText, '\n'); if (message === unusedTsExceptErrorMessage || message.includes(inNotUnderRootDir)) { return; } const logData = { message }; if (diagnostic.file) { const { line, character } = (0, typescript_1.getLineAndCharacterOfPosition)(diagnostic.file, diagnostic.start ?? 0); logData.file = `${diagnostic.file.fileName} (${line + 1},${character + 1})`; } compileErrors.push(logData); }); const configCompileTimeWithUnits = (0, getDurationWithUnits_1.getDurationWithUnits)(Date.now() - startTimeInMs); return { compileErrors, configCompileTimeWithUnits }; }; exports.compilePack = compilePack;