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

Function tryAddingExtensions

test/fixtures/snapshot/typescript.js:43553–43618  ·  view source on GitHub ↗

Try to return an existing file that adds one of the `extensions` to `candidate`.

(candidate, extensions, originalExtension, onlyRecordFailures, state)

Source from the content-addressed store, hash-verified

43551 }
43552 /** Try to return an existing file that adds one of the `extensions` to `candidate`. */
43553 function tryAddingExtensions(candidate, extensions, originalExtension, onlyRecordFailures, state) {
43554 if (!onlyRecordFailures) {
43555 // check if containing folder exists - if it doesn't then just record failures for all supported extensions without disk probing
43556 var directory = ts.getDirectoryPath(candidate);
43557 if (directory) {
43558 onlyRecordFailures = !ts.directoryProbablyExists(directory, state.host);
43559 }
43560 }
43561 switch (extensions) {
43562 case Extensions.DtsOnly:
43563 switch (originalExtension) {
43564 case ".mjs" /* Extension.Mjs */:
43565 case ".mts" /* Extension.Mts */:
43566 case ".d.mts" /* Extension.Dmts */:
43567 return tryExtension(".d.mts" /* Extension.Dmts */);
43568 case ".cjs" /* Extension.Cjs */:
43569 case ".cts" /* Extension.Cts */:
43570 case ".d.cts" /* Extension.Dcts */:
43571 return tryExtension(".d.cts" /* Extension.Dcts */);
43572 case ".json" /* Extension.Json */:
43573 candidate += ".json" /* Extension.Json */;
43574 return tryExtension(".d.ts" /* Extension.Dts */);
43575 default: return tryExtension(".d.ts" /* Extension.Dts */);
43576 }
43577 case Extensions.TypeScript:
43578 case Extensions.TsOnly:
43579 var useDts = extensions === Extensions.TypeScript;
43580 switch (originalExtension) {
43581 case ".mjs" /* Extension.Mjs */:
43582 case ".mts" /* Extension.Mts */:
43583 case ".d.mts" /* Extension.Dmts */:
43584 return tryExtension(".mts" /* Extension.Mts */) || (useDts ? tryExtension(".d.mts" /* Extension.Dmts */) : undefined);
43585 case ".cjs" /* Extension.Cjs */:
43586 case ".cts" /* Extension.Cts */:
43587 case ".d.cts" /* Extension.Dcts */:
43588 return tryExtension(".cts" /* Extension.Cts */) || (useDts ? tryExtension(".d.cts" /* Extension.Dcts */) : undefined);
43589 case ".json" /* Extension.Json */:
43590 candidate += ".json" /* Extension.Json */;
43591 return useDts ? tryExtension(".d.ts" /* Extension.Dts */) : undefined;
43592 default:
43593 return tryExtension(".ts" /* Extension.Ts */) || tryExtension(".tsx" /* Extension.Tsx */) || (useDts ? tryExtension(".d.ts" /* Extension.Dts */) : undefined);
43594 }
43595 case Extensions.JavaScript:
43596 switch (originalExtension) {
43597 case ".mjs" /* Extension.Mjs */:
43598 case ".mts" /* Extension.Mts */:
43599 case ".d.mts" /* Extension.Dmts */:
43600 return tryExtension(".mjs" /* Extension.Mjs */);
43601 case ".cjs" /* Extension.Cjs */:
43602 case ".cts" /* Extension.Cts */:
43603 case ".d.cts" /* Extension.Dcts */:
43604 return tryExtension(".cjs" /* Extension.Cjs */);
43605 case ".json" /* Extension.Json */:
43606 return tryExtension(".json" /* Extension.Json */);
43607 default:
43608 return tryExtension(".js" /* Extension.Js */) || tryExtension(".jsx" /* Extension.Jsx */);
43609 }
43610 case Extensions.TSConfig:

Callers 2

loadModuleFromFileFunction · 0.85

Calls 1

tryExtensionFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…