diff options
author | 2022-09-06 07:22:14 -0700 | |
---|---|---|
committer | 2022-09-06 07:22:14 -0700 | |
commit | 07cbc0193a7f7cb5bef3cfff49b0221719190ea6 (patch) | |
tree | 07f45cb3dd599e676f2af56a1bb496c22f323852 /src/bun.js/bindings/ModuleLoader.cpp | |
parent | 1c1346dfa9eca7309be0d0ea681386f5d7f55164 (diff) | |
download | bun-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.cpp | 12 |
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); |