UNPKG

@intlayer/chokidar

Version:

Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.

64 lines (62 loc) 2.26 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); let node_path = require("node:path"); let _intlayer_config_logger = require("@intlayer/config/logger"); //#region src/loadDictionaries/logTypeScriptErrors.ts const logTypeScriptErrors = async (filePaths, configuration) => { const appLogger = (0, _intlayer_config_logger.getAppLogger)(configuration); const filesToCheck = filePaths.filter((path) => { const ext = (0, node_path.extname)(path); return [ ".ts", ".tsx", ".js", ".jsx", ".cjs", ".mjs", ".json" ].includes(ext); }); if (filesToCheck.length === 0) return; let ts; try { ts = (await import("typescript")).default || await import("typescript"); } catch { return; } const configFileName = ts.findConfigFile(configuration.system?.baseDir ?? process.cwd(), ts.sys.fileExists, "tsconfig.json"); let compilerOptions = { noEmit: true, allowJs: true, resolveJsonModule: true }; if (configFileName) { const configFileText = ts.sys.readFile(configFileName); if (configFileText) { const configJson = ts.parseConfigFileTextToJson(configFileName, configFileText); if (!configJson.error) { const { incremental, tsBuildInfoFile, ...restOptions } = ts.parseJsonConfigFileContent(configJson.config, ts.sys, (0, node_path.dirname)(configFileName)).options; compilerOptions = { ...compilerOptions, ...restOptions, noEmit: true }; } } } const program = ts.createProgram(filesToCheck, compilerOptions); filesToCheck.forEach((filePath) => { const sourceFile = program.getSourceFile(filePath); if (!sourceFile) return; ts.getPreEmitDiagnostics(program, sourceFile).forEach((diagnostic) => { const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); if (diagnostic.file && diagnostic.start !== void 0) { const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); appLogger(`TS Error in ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`, { level: "warn" }); } }); }); }; //#endregion exports.logTypeScriptErrors = logTypeScriptErrors; //# sourceMappingURL=logTypeScriptErrors.cjs.map