diff options
Diffstat (limited to 'src/node_fallbacks.zig')
-rw-r--r-- | src/node_fallbacks.zig | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/node_fallbacks.zig b/src/node_fallbacks.zig index def1d6126..63a005c27 100644 --- a/src/node_fallbacks.zig +++ b/src/node_fallbacks.zig @@ -479,3 +479,21 @@ pub const Map = std.ComptimeStringMap(FallbackModule, .{ &.{ "isomorphic-fetch", FallbackModule.@"isomorphic-fetch" }, &.{ "@vercel/fetch", FallbackModule.@"@vercel/fetch" }, }); + +pub fn contentsFromPath(path: string) ?string { + var module_name = path["/bun-vfs/node_modules/".len..]; + + if (module_name[0] == '@') { + var end = std.mem.indexOfScalar(u8, module_name, '/').? + 1; + end += std.mem.indexOfScalar(u8, module_name[end..], '/').?; + + module_name = module_name[0..end]; + } else { + module_name = module_name[0..std.mem.indexOfScalar(u8, module_name, '/').?]; + } + + if (Map.get(module_name)) |mod| { + return mod.code.*; + } + return null; +} |