diff options
author | Luca Casonato <hello@lcas.dev> | 2024-03-07 17:29:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-07 17:29:17 +0100 |
commit | 87a08fc3b2d0ed1e5a197628fa7091cb656c9058 (patch) | |
tree | f5c842c801848f091009a157a734e009a2af29ba | |
parent | f0ec4fe1b89215ce9e62ebf47d8907dd6336f35e (diff) |
fix(tools/publish): correctly handle importing from self in unfurling (#22774)
We emitted `import "./` rather than `import "./$NAME"`. This is now
fixed.
Also makes a cosmetic change so that `../` imports are now just imported
as `../`, not `./../`.
-rw-r--r-- | cli/tools/registry/unfurl.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/cli/tools/registry/unfurl.rs b/cli/tools/registry/unfurl.rs index ac270346c..2224d0870 100644 --- a/cli/tools/registry/unfurl.rs +++ b/cli/tools/registry/unfurl.rs @@ -280,7 +280,15 @@ fn relative_url( referrer: &ModuleSpecifier, ) -> String { if resolved.scheme() == "file" { - format!("./{}", referrer.make_relative(resolved).unwrap()) + let relative = referrer.make_relative(resolved).unwrap(); + if relative.is_empty() { + let last = resolved.path_segments().unwrap().last().unwrap(); + format!("./{last}") + } else if relative.starts_with("../") { + relative + } else { + format!("./{relative}") + } } else { resolved.to_string() } @@ -380,6 +388,7 @@ import chalk from "chalk"; import baz from "./baz"; import b from "./b.js"; import b2 from "./b"; +import "./mod.ts"; import url from "url"; // TODO: unfurl these to jsr // import "npm:@jsr/std__fs@1/file"; @@ -428,6 +437,7 @@ import chalk from "npm:chalk@5"; import baz from "./baz/index.js"; import b from "./b.ts"; import b2 from "./b.ts"; +import "./mod.ts"; import url from "node:url"; // TODO: unfurl these to jsr // import "npm:@jsr/std__fs@1/file"; |