aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-12-13 18:17:07 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-12-13 18:17:26 -0800
commit5bbaa7b400eee69669f0cd65d0ee5d26143c4910 (patch)
tree8b407e4d65029ac8214e48ba0cfa6a1e60c86621 /src
parentde8ace9fbee71bf767299c588dfbcbc4b504b3ed (diff)
downloadbun-5bbaa7b400eee69669f0cd65d0ee5d26143c4910.tar.gz
bun-5bbaa7b400eee69669f0cd65d0ee5d26143c4910.tar.zst
bun-5bbaa7b400eee69669f0cd65d0ee5d26143c4910.zip
Fix bug where importing a binary file throws a SyntaxError. Instead, return the public path for that file
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/module_loader.zig20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig
index 65b2a87bf..a9e2dca5e 100644
--- a/src/bun.js/module_loader.zig
+++ b/src/bun.js/module_loader.zig
@@ -1178,9 +1178,27 @@ pub const ModuleLoader = struct {
// };
// },
else => {
+ var stack_buf = std.heap.stackFallback(4096, jsc_vm.allocator);
+ var allocator = stack_buf.get();
+ var buf = MutableString.init2048(allocator) catch unreachable;
+ defer buf.deinit();
+ var writer = buf.writer();
+ if (!jsc_vm.origin.isEmpty()) {
+ writer.writeAll("export default `") catch unreachable;
+ // TODO: escape backtick char, though we might already do that
+ @import("./api/bun.zig").getPublicPath(specifier, jsc_vm.origin, @TypeOf(&writer), &writer);
+ writer.writeAll("`;\n") catch unreachable;
+ } else {
+ writer.writeAll("export default ") catch unreachable;
+ buf = js_printer.quoteForJSON(specifier, buf, true) catch @panic("out of memory");
+ writer = buf.writer();
+ writer.writeAll(";\n") catch unreachable;
+ }
+
+ const public_url = ZigString.fromUTF8(jsc_vm.allocator.dupe(u8, buf.toOwnedSliceLeaky()) catch @panic("out of memory"));
return ResolvedSource{
.allocator = &jsc_vm.allocator,
- .source_code = ZigString.init(try strings.quotedAlloc(jsc_vm.allocator, path.pretty)),
+ .source_code = public_url,
.specifier = ZigString.init(path.text),
.source_url = ZigString.init(path.text),
.hash = 0,