diff options
Diffstat (limited to 'src/bun.js/module_loader.zig')
-rw-r--r-- | src/bun.js/module_loader.zig | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig index 635e0f4a9..4e121b71e 100644 --- a/src/bun.js/module_loader.zig +++ b/src/bun.js/module_loader.zig @@ -800,8 +800,13 @@ pub const ModuleLoader = struct { try dumpSource(specifier, &printer); } + var commonjs_exports = try bun.default_allocator.alloc(ZigString, parse_result.ast.commonjs_export_names.len); + for (parse_result.ast.commonjs_export_names, commonjs_exports) |name, *out| { + out.* = ZigString.fromUTF8(name); + } + if (jsc_vm.isWatcherEnabled()) { - const resolved_source = jsc_vm.refCountedResolvedSource(printer.ctx.written, specifier, path.text, null); + var resolved_source = jsc_vm.refCountedResolvedSource(printer.ctx.written, specifier, path.text, null); if (parse_result.input_fd) |fd_| { if (jsc_vm.bun_watcher != null and std.fs.path.isAbsolute(path.text) and !strings.contains(path.text, "node_modules")) { @@ -817,12 +822,18 @@ pub const ModuleLoader = struct { } } - return resolved_source; - } + resolved_source.commonjs_exports = if (commonjs_exports.len > 0) + commonjs_exports.ptr + else + null; + resolved_source.commonjs_exports_len = if (commonjs_exports.len > 0) + @truncate(u32, commonjs_exports.len) + else if (parse_result.ast.exports_kind == .cjs) + std.math.maxInt(u32) + else + 0; - var commonjs_exports = try bun.default_allocator.alloc(ZigString, parse_result.ast.commonjs_export_names.len); - for (parse_result.ast.commonjs_export_names, commonjs_exports) |name, *out| { - out.* = ZigString.fromUTF8(name); + return resolved_source; } return ResolvedSource{ @@ -1156,17 +1167,27 @@ pub const ModuleLoader = struct { try dumpSource(specifier, &printer); } - if (jsc_vm.isWatcherEnabled()) { - const resolved_source = jsc_vm.refCountedResolvedSource(printer.ctx.written, display_specifier, path.text, null); - - return resolved_source; - } - var commonjs_exports = try bun.default_allocator.alloc(ZigString, parse_result.ast.commonjs_export_names.len); for (parse_result.ast.commonjs_export_names, commonjs_exports) |name, *out| { out.* = ZigString.fromUTF8(name); } + if (jsc_vm.isWatcherEnabled()) { + var resolved_source = jsc_vm.refCountedResolvedSource(printer.ctx.written, display_specifier, path.text, null); + + resolved_source.commonjs_exports = if (commonjs_exports.len > 0) + commonjs_exports.ptr + else + null; + resolved_source.commonjs_exports_len = if (commonjs_exports.len > 0) + @truncate(u32, commonjs_exports.len) + else if (parse_result.ast.exports_kind == .cjs) + std.math.maxInt(u32) + else + 0; + return resolved_source; + } + return .{ .allocator = null, .source_code = ZigString.init(try default_allocator.dupe(u8, printer.ctx.getWritten())), |