aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-20 19:51:20 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-20 19:51:20 -0700
commitb473a0022dabb154e331217ab5f95313d5e5687e (patch)
tree6d343445754dd51bd2000f9dca84f7b51eddc49b
parent94cd68d7a69155fa55fd02a398e087e4e7eeaed0 (diff)
downloadbun-b473a0022dabb154e331217ab5f95313d5e5687e.tar.gz
bun-b473a0022dabb154e331217ab5f95313d5e5687e.tar.zst
bun-b473a0022dabb154e331217ab5f95313d5e5687e.zip
Fix whitespace edgecase with export * from
Diffstat (limited to '')
-rw-r--r--src/js_printer.zig16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/js_printer.zig b/src/js_printer.zig
index 2fc790c79..7ca4f7f79 100644
--- a/src/js_printer.zig
+++ b/src/js_printer.zig
@@ -142,6 +142,10 @@ pub fn bestQuoteCharForString(comptime Type: type, str: []const Type, allow_back
const Whitespacer = struct {
normal: []const u8,
minify: []const u8,
+
+ pub fn append(this: Whitespacer, comptime str: []const u8) Whitespacer {
+ return .{ .normal = this.normal ++ str, .minify = this.minify ++ str };
+ }
};
fn ws(comptime str: []const u8) Whitespacer {
@@ -1180,6 +1184,8 @@ fn NewPrinter(
p.printIdentifier(name);
}
pub fn printClauseAlias(p: *Printer, alias: string) void {
+ std.debug.assert(alias.len > 0);
+
if (!strings.containsNonBmpCodePoint(alias)) {
p.printSpaceBeforeIdentifier();
p.printIdentifier(alias);
@@ -3662,14 +3668,18 @@ fn NewPrinter(
}
p.printIndent();
p.printSpaceBeforeIdentifier();
- p.printWhitespacer(ws("export * "));
+
+ if (s.alias != null)
+ p.printWhitespacer(comptime ws("export *").append(" as "))
+ else
+ p.printWhitespacer(comptime ws("export * from "));
+
if (s.alias) |alias| {
- p.printWhitespacer(ws("as "));
p.printClauseAlias(alias.original_name);
p.print(" ");
+ p.printWhitespacer(ws("from "));
}
- p.printWhitespacer(ws("from "));
p.printImportRecordPath(p.importRecord(s.import_record_index));
p.printSemicolonAfterStatement();
},