<p dir="auto">There are many different implementations of essentially the same module resolution algorithm in our system. They all do the same, but are used in different situations.</p>
<ol dir="auto">
<li>
<p dir="auto"><code class="notranslate">CliModuleLoader::resolve</code> <a href="https://github.com/denoland/deno/blob/923c5432e06aec6ec705304b818bba21c2b497d8/cli/module_loader.rs#L70-L95">link</a><br>
Used with <code class="notranslate">run --no-check</code> and probably also for pure JS.</p>
</li>
<li>
<p dir="auto"><code class="notranslate">deno::tsc::op_resolve</code> <a href="https://github.com/denoland/deno/blob/923c5432e06aec6ec705304b818bba21c2b497d8/cli/tsc.rs#L408-L474">link</a><br>
Used with type checking. Calls <code class="notranslate">deno::graph::Graph::resolve</code></p>
</li>
<li>
<p dir="auto"><code class="notranslate">deno::lsp::tsc::op_resolve</code> <a href="https://github.com/denoland/deno/blob/923c5432e06aec6ec705304b818bba21c2b497d8/cli/lsp/tsc.rs#L2273-L2364">link</a><br>
Special resolver for LSP. Does not call <code class="notranslate">deno::graph::Graph::resolve</code>.</p>
</li>
<li>
<p dir="auto"><code class="notranslate">deno_graph::source::Resolver::resolve</code> <a href="https://github.com/denoland/deno_graph/blob/865f03c8312c470d79059224081a98a7cf37438b/src/source.rs#L83-L93">link</a><br>
Trait for resolving modules, similar to <code class="notranslate">deno_core::ModuleLoader::resolve</code></p>
</li>
<li>
<p dir="auto"><code class="notranslate">eszip::resolve_import::resolve_import</code>   <a href="https://github.com/denoland/eszip/blob/a01f0932dadb08fd357594cce0687c279385a101/src/resolve_import.rs#L7-L54">link</a><br>
used just for eszip</p>
</li>
<li>
<p dir="auto"><code class="notranslate">deno_core::ModuleLoader::resolve</code> <a href="https://github.com/denoland/deno/blob/923c5432e06aec6ec705304b818bba21c2b497d8/core/modules.rs#L65-L78">link</a></p>
</li>
</ol>
<p dir="auto">(Feel free to add to this list if you find more)</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MarkTiedemann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MarkTiedemann">@MarkTiedemann</a> I was wondering if the jsdom port is still happening? I see it was never merged: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="470718682" data-permission-text="Title is private" data-url="https://github.com/denoland/deno_std/issues/542" data-hovercard-type="pull_request" data-hovercard-url="/denoland/deno_std/pull/542/hovercard" href="https://github.com/denoland/deno_std/pull/542">denoland/deno_std#542</a></p>
<p dir="auto">It would be amazing to be able to test code for the browser in Deno 1.0. Thanks!</p>