aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ImportMetaObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/ImportMetaObject.cpp')
-rw-r--r--src/bun.js/bindings/ImportMetaObject.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bun.js/bindings/ImportMetaObject.cpp b/src/bun.js/bindings/ImportMetaObject.cpp
index 328b9f940..c53235824 100644
--- a/src/bun.js/bindings/ImportMetaObject.cpp
+++ b/src/bun.js/bindings/ImportMetaObject.cpp
@@ -239,6 +239,20 @@ extern "C" EncodedJSValue functionImportMeta__resolveSyncPrivate(JSC::JSGlobalOb
RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::JSValue {}));
+ if (!isESM) {
+ auto* global = jsDynamicCast<Zig::GlobalObject*>(globalObject);
+ if (LIKELY(global)) {
+ auto overrideHandler = global->m_nodeModuleOverriddenResolveFilename.get();
+ if (UNLIKELY(overrideHandler)) {
+ ASSERT(overrideHandler.isCallable(globalObject));
+ MarkedArgumentBuffer args;
+ args.append(moduleName);
+ args.append(from);
+ return JSValue::encode(JSC::call(globalObject, overrideHandler, JSC::getCallData(overrideHandler), JSC::jsUndefined(), args));
+ }
+ }
+ }
+
auto result = Bun__resolveSync(globalObject, JSC::JSValue::encode(moduleName), JSValue::encode(from), isESM);
if (!JSC::JSValue::decode(result).isString()) {