aboutsummaryrefslogtreecommitdiff
path: root/src/linker.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-10 01:40:36 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-10 01:40:36 -0800
commit27501a05767f76b2f5cee785e6a761d5bb99ae34 (patch)
treed3da3fc921495602fccf8cd3efe124c5f244dc52 /src/linker.zig
parent2e2521c6381104e7697b9c44918bf8fb313ccb3e (diff)
downloadbun-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.zig53
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 {