diff options
author | 2022-02-10 01:40:36 -0800 | |
---|---|---|
committer | 2022-02-10 01:40:36 -0800 | |
commit | 27501a05767f76b2f5cee785e6a761d5bb99ae34 (patch) | |
tree | d3da3fc921495602fccf8cd3efe124c5f244dc52 /src/linker.zig | |
parent | 2e2521c6381104e7697b9c44918bf8fb313ccb3e (diff) | |
download | bun-27501a05767f76b2f5cee785e6a761d5bb99ae34.tar.gz bun-27501a05767f76b2f5cee785e6a761d5bb99ae34.tar.zst bun-27501a05767f76b2f5cee785e6a761d5bb99ae34.zip |
[bun dev][css] Fix loading external assets
Diffstat (limited to '')
-rw-r--r-- | src/linker.zig | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/src/linker.zig b/src/linker.zig index 1ddcc1eef..6f565f0fb 100644 --- a/src/linker.zig +++ b/src/linker.zig @@ -141,48 +141,29 @@ pub const Linker = struct { comptime resolve_only: bool, ) !string { const dir = path.name.dirWithTrailingSlash(); + if (strings.hasPrefix(url, "/")) { + if (comptime import_path_format == .absolute_url) { + return try origin.joinAlloc(this.allocator, "", url, "", "", url); + } - switch (kind) { - .at => { - var resolve_result = try this.resolver.resolve(dir, url, .at); - if (resolve_only or resolve_result.is_external) { - return resolve_result.path_pair.primary.text; - } - - var import_record = ImportRecord{ .range = range, .path = resolve_result.path_pair.primary, .kind = kind }; - - const loader = this.options.loaders.get(resolve_result.path_pair.primary.name.ext) orelse .file; + return url; + } - this.processImportRecord(loader, dir, &resolve_result, &import_record, origin, import_path_format) catch unreachable; - return import_record.path.text; - }, - .at_conditional => { - var resolve_result = try this.resolver.resolve(dir, url, .at_conditional); - if (resolve_only or resolve_result.is_external) { - return resolve_result.path_pair.primary.text; - } + var resolve_result = try this.resolver.resolve(dir, url, kind); - var import_record = ImportRecord{ .range = range, .path = resolve_result.path_pair.primary, .kind = kind }; - const loader = this.options.loaders.get(resolve_result.path_pair.primary.name.ext) orelse .file; + if (resolve_result.is_external) { + return url; + } - this.processImportRecord(loader, dir, &resolve_result, &import_record, origin, import_path_format) catch unreachable; - return import_record.path.text; - }, - .url => { - var resolve_result = try this.resolver.resolve(dir, url, .url); - if (resolve_only or resolve_result.is_external) { - return resolve_result.path_pair.primary.text; - } + if (resolve_only) { + return resolve_result.path_pair.primary.text; + } - var import_record = ImportRecord{ .range = range, .path = resolve_result.path_pair.primary, .kind = kind }; - const loader = this.options.loaders.get(resolve_result.path_pair.primary.name.ext) orelse .file; + var import_record = ImportRecord{ .range = range, .path = resolve_result.path_pair.primary, .kind = kind }; + const loader = this.options.loaders.get(resolve_result.path_pair.primary.name.ext) orelse .file; - this.processImportRecord(loader, dir, &resolve_result, &import_record, origin, import_path_format) catch unreachable; - return import_record.path.text; - }, - else => unreachable, - } - unreachable; + this.processImportRecord(loader, dir, &resolve_result, &import_record, origin, import_path_format) catch unreachable; + return import_record.path.text; } pub inline fn nodeModuleBundleImportPath(this: *const ThisLinker, origin: URL) string { |