aboutsummaryrefslogtreecommitdiff
path: root/src/node_fallbacks.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-12 00:39:57 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-12 00:39:57 -0700
commit350569655bcf4348d521f20cec4da7aee55ae102 (patch)
treeaa278040f04d477739a16aef25991ca1ce7cd4ed /src/node_fallbacks.zig
parent092f9ac766ff532cb34587b5d93c401070cc79cf (diff)
downloadbun-350569655bcf4348d521f20cec4da7aee55ae102.tar.gz
bun-350569655bcf4348d521f20cec4da7aee55ae102.tar.zst
bun-350569655bcf4348d521f20cec4da7aee55ae102.zip
Support bundling dynamically imported modules.
Diffstat (limited to 'src/node_fallbacks.zig')
-rw-r--r--src/node_fallbacks.zig18
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;
+}