e2ed
Version:
E2E testing framework over Playwright
57 lines (56 loc) • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCompilerOptions = void 0;
const node_path_1 = require("node:path");
const typescript_1 = require("typescript");
const internal_1 = require("../../constants/internal");
const asserts_1 = require("../asserts");
const clone_1 = require("../clone");
const frozenCompilerOptions = {
allowSyntheticDefaultImports: true,
declaration: false,
esModuleInterop: true,
module: typescript_1.ModuleKind.CommonJS,
outDir: internal_1.COMPILED_USERLAND_CONFIG_DIRECTORY,
paths: {
[internal_1.AUTOTESTS_DIRECTORY_PATH]: [`./${internal_1.AUTOTESTS_DIRECTORY_PATH}/index.ts`],
[`${internal_1.AUTOTESTS_DIRECTORY_PATH}/*`]: [`./${internal_1.AUTOTESTS_DIRECTORY_PATH}/*`],
},
resolveJsonModule: true,
rootDir: '.',
skipLibCheck: true,
target: typescript_1.ScriptTarget.ES2024,
types: ['node'],
};
/**
* Get TypeScript compiler options for pack config compilation.
* @internal
*/
const getCompilerOptions = () => {
let parsingTsConfigError;
let tsConfigOfProject = { compilerOptions: {} };
const pathToTsConfigOfProjectFromRoot = internal_1.e2edEnvironment.E2ED_PATH_TO_TS_CONFIG_OF_PROJECT_FROM_ROOT;
try {
(0, asserts_1.assertValueIsDefined)(pathToTsConfigOfProjectFromRoot, 'pathToTsConfigOfProjectFromRoot is defined');
const absoluteTsConfigPath = (0, node_path_1.join)(internal_1.ABSOLUTE_PATH_TO_PROJECT_ROOT_DIRECTORY, pathToTsConfigOfProjectFromRoot);
// eslint-disable-next-line global-require, import/no-dynamic-require
tsConfigOfProject = require(absoluteTsConfigPath);
}
catch (error) {
parsingTsConfigError = {
error: String(error),
message: 'Caught an error on parsing TypeScript config of project',
};
if (error instanceof Error) {
Object.assign(parsingTsConfigError, { stack: error.stack });
}
}
const compilerOptions = { ...frozenCompilerOptions };
const { baseUrl, lib, paths } = tsConfigOfProject.compilerOptions;
Object.assign(compilerOptions, (0, clone_1.cloneWithoutUndefinedProperties)({ baseUrl, paths }));
if (lib) {
compilerOptions.lib = lib.map((name) => `lib.${name.toLowerCase()}.d.ts`);
}
return { compilerOptions, parsingTsConfigError };
};
exports.getCompilerOptions = getCompilerOptions;