MCPcopy Index your code
hub / github.com/nodejs/node / createCompilerHostWorker

Function createCompilerHostWorker

test/fixtures/snapshot/typescript.js:115778–115880  ·  view source on GitHub ↗
(options, setParentNodes, system)

Source from the content-addressed store, hash-verified

115776 /*@internal*/
115777 // TODO(shkamat): update this after reworking ts build API
115778 function createCompilerHostWorker(options, setParentNodes, system) {
115779 if (system === void 0) { system = ts.sys; }
115780 var existingDirectories = new ts.Map();
115781 var getCanonicalFileName = ts.createGetCanonicalFileName(system.useCaseSensitiveFileNames);
115782 var computeHash = ts.maybeBind(system, system.createHash) || ts.generateDjb2Hash;
115783 function getSourceFile(fileName, languageVersionOrOptions, onError) {
115784 var text;
115785 try {
115786 ts.performance.mark("beforeIORead");
115787 text = compilerHost.readFile(fileName);
115788 ts.performance.mark("afterIORead");
115789 ts.performance.measure("I/O Read", "beforeIORead", "afterIORead");
115790 }
115791 catch (e) {
115792 if (onError) {
115793 onError(e.message);
115794 }
115795 text = "";
115796 }
115797 return text !== undefined ? ts.createSourceFile(fileName, text, languageVersionOrOptions, setParentNodes) : undefined;
115798 }
115799 function directoryExists(directoryPath) {
115800 if (existingDirectories.has(directoryPath)) {
115801 return true;
115802 }
115803 if ((compilerHost.directoryExists || system.directoryExists)(directoryPath)) {
115804 existingDirectories.set(directoryPath, true);
115805 return true;
115806 }
115807 return false;
115808 }
115809 function writeFile(fileName, data, writeByteOrderMark, onError) {
115810 try {
115811 ts.performance.mark("beforeIOWrite");
115812 // NOTE: If patchWriteFileEnsuringDirectory has been called,
115813 // the system.writeFile will do its own directory creation and
115814 // the ensureDirectoriesExist call will always be redundant.
115815 ts.writeFileEnsuringDirectories(fileName, data, writeByteOrderMark, function (path, data, writeByteOrderMark) { return writeFileWorker(path, data, writeByteOrderMark); }, function (path) { return (compilerHost.createDirectory || system.createDirectory)(path); }, function (path) { return directoryExists(path); });
115816 ts.performance.mark("afterIOWrite");
115817 ts.performance.measure("I/O Write", "beforeIOWrite", "afterIOWrite");
115818 }
115819 catch (e) {
115820 if (onError) {
115821 onError(e.message);
115822 }
115823 }
115824 }
115825 var outputFingerprints;
115826 function writeFileWorker(fileName, data, writeByteOrderMark) {
115827 if (!ts.isWatchSet(options) || !system.getModifiedTime) {
115828 system.writeFile(fileName, data, writeByteOrderMark);
115829 return;
115830 }
115831 if (!outputFingerprints) {
115832 outputFingerprints = new ts.Map();
115833 }
115834 var hash = computeHash(data);
115835 var mtimeBefore = system.getModifiedTime(fileName);

Callers 1

createCompilerHostFunction · 0.85

Calls 4

getDefaultLibLocationFunction · 0.85
realpathMethod · 0.45
readFileMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…