aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ModuleLoader.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-06 07:22:14 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-06 07:22:14 -0700
commit07cbc0193a7f7cb5bef3cfff49b0221719190ea6 (patch)
tree07f45cb3dd599e676f2af56a1bb496c22f323852 /src/bun.js/bindings/ModuleLoader.cpp
parent1c1346dfa9eca7309be0d0ea681386f5d7f55164 (diff)
downloadbun-07cbc0193a7f7cb5bef3cfff49b0221719190ea6.tar.gz
bun-07cbc0193a7f7cb5bef3cfff49b0221719190ea6.tar.zst
bun-07cbc0193a7f7cb5bef3cfff49b0221719190ea6.zip
Set a default Loader based on filename
Diffstat (limited to 'src/bun.js/bindings/ModuleLoader.cpp')
-rw-r--r--src/bun.js/bindings/ModuleLoader.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/bun.js/bindings/ModuleLoader.cpp b/src/bun.js/bindings/ModuleLoader.cpp
index 19f4ad278..bff4eb7cc 100644
--- a/src/bun.js/bindings/ModuleLoader.cpp
+++ b/src/bun.js/bindings/ModuleLoader.cpp
@@ -38,6 +38,8 @@ namespace Bun {
using namespace Zig;
using namespace WebCore;
+extern "C" BunLoaderType Bun__getDefaultLoader(JSC::JSGlobalObject*, ZigString* specifier);
+
static JSC::JSInternalPromise* rejectedInternalPromise(JSC::JSGlobalObject* globalObject, JSC::JSValue value)
{
JSC::VM& vm = globalObject->vm();
@@ -126,14 +128,14 @@ PendingVirtualModuleResult* PendingVirtualModuleResult::create(JSC::JSGlobalObje
return virtualModule;
}
-OnLoadResult handleOnLoadResultNotPromise(Zig::GlobalObject* globalObject, JSC::JSValue objectValue)
+OnLoadResult handleOnLoadResultNotPromise(Zig::GlobalObject* globalObject, JSC::JSValue objectValue, ZigString* specifier)
{
OnLoadResult result = {};
result.type = OnLoadResultTypeError;
JSC::VM& vm = globalObject->vm();
result.value.error = JSC::jsUndefined();
auto scope = DECLARE_THROW_SCOPE(vm);
- BunLoaderType loader = BunLoaderTypeNone;
+ BunLoaderType loader = Bun__getDefaultLoader(globalObject, specifier);
if (JSC::Exception* exception = JSC::jsDynamicCast<JSC::Exception*>(objectValue)) {
result.value.error = exception->value();
@@ -204,7 +206,7 @@ OnLoadResult handleOnLoadResultNotPromise(Zig::GlobalObject* globalObject, JSC::
return result;
}
-static OnLoadResult handleOnLoadResult(Zig::GlobalObject* globalObject, JSC::JSValue objectValue)
+static OnLoadResult handleOnLoadResult(Zig::GlobalObject* globalObject, JSC::JSValue objectValue, ZigString* specifier)
{
if (JSC::JSPromise* promise = JSC::jsDynamicCast<JSC::JSPromise*>(objectValue)) {
OnLoadResult result = {};
@@ -213,7 +215,7 @@ static OnLoadResult handleOnLoadResult(Zig::GlobalObject* globalObject, JSC::JSV
return result;
}
- return handleOnLoadResultNotPromise(globalObject, objectValue);
+ return handleOnLoadResultNotPromise(globalObject, objectValue, specifier);
}
template<bool allowPromise>
@@ -224,7 +226,7 @@ static JSValue handleVirtualModuleResult(
ZigString* specifier,
ZigString* referrer)
{
- auto onLoadResult = handleOnLoadResult(globalObject, virtualModuleResult);
+ auto onLoadResult = handleOnLoadResult(globalObject, virtualModuleResult, specifier);
JSC::VM& vm = globalObject->vm();
auto scope = DECLARE_THROW_SCOPE(vm);