aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/modules/NodeModuleModule.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-11 14:22:31 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-11 14:22:31 -0800
commit4a1470d26c9d303ad9de93185e1e877d144d5592 (patch)
tree4af13d70fb642b9f987c11b654cbeaa31bf8ae2d /src/bun.js/modules/NodeModuleModule.cpp
parent5a3b6349821a2fd9756de600c0896a76daf7bc8d (diff)
downloadbun-4a1470d26c9d303ad9de93185e1e877d144d5592.tar.gz
bun-4a1470d26c9d303ad9de93185e1e877d144d5592.tar.zst
bun-4a1470d26c9d303ad9de93185e1e877d144d5592.zip
`require.resolve` in the runtime should use CommonJS export conditions
Diffstat (limited to 'src/bun.js/modules/NodeModuleModule.cpp')
-rw-r--r--src/bun.js/modules/NodeModuleModule.cpp44
1 files changed, 16 insertions, 28 deletions
diff --git a/src/bun.js/modules/NodeModuleModule.cpp b/src/bun.js/modules/NodeModuleModule.cpp
index 02e4e3849..01e061499 100644
--- a/src/bun.js/modules/NodeModuleModule.cpp
+++ b/src/bun.js/modules/NodeModuleModule.cpp
@@ -19,36 +19,24 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModuleCreateRequire,
return JSC::JSValue::encode(JSC::jsUndefined());
}
- Zig::ImportMetaObject *importMetaObject = Zig::ImportMetaObject::create(
- globalObject, callFrame->uncheckedArgument(0));
+ auto str = callFrame->uncheckedArgument(0).toStringOrNull(globalObject);
+ RETURN_IF_EXCEPTION(scope, JSC::JSValue::encode(JSC::jsUndefined()));
+ WTF::String val = str->value(globalObject);
+ auto *meta = Zig::ImportMetaObject::create(globalObject, str);
auto clientData = WebCore::clientData(vm);
-
- RETURN_IF_EXCEPTION(scope, {});
-
- if (!importMetaObject) {
- throwTypeError(globalObject, scope, "Invalid path"_s);
- return JSC::JSValue::encode(JSC::jsUndefined());
- }
-
- auto requireFunctionValue = importMetaObject->get(
- globalObject, clientData->builtinNames().requirePublicName());
- RETURN_IF_EXCEPTION(scope, {});
-
- JSC::JSBoundFunction *boundRequireFunction = JSC::JSBoundFunction::create(
- vm, globalObject, requireFunctionValue.getObject(), importMetaObject,
- nullptr, 1, jsString(vm, String("require"_s)));
- RETURN_IF_EXCEPTION(scope, {});
- auto resolveFunction = importMetaObject->get(
- globalObject, clientData->builtinNames().resolveSyncPublicName());
-
- JSC::JSBoundFunction *boundResolveFunction = JSC::JSBoundFunction::create(
- vm, globalObject, resolveFunction.getObject(), importMetaObject, nullptr,
- 1, jsString(vm, String("resolve"_s)));
+ auto requireFunction =
+ Zig::ImportMetaObject::createRequireFunction(vm, globalObject, val);
+ auto nameStr = jsCast<JSFunction *>(requireFunction)->name(vm);
+ JSC::JSBoundFunction *boundRequireFunction =
+ JSC::JSBoundFunction::create(vm, globalObject, requireFunction, meta,
+ nullptr, 0, jsString(vm, nameStr));
boundRequireFunction->putDirect(
- vm, clientData->builtinNames().resolvePublicName(), boundResolveFunction,
- JSC::PropertyAttribute::Function | 0);
+ vm, clientData->builtinNames().resolvePublicName(),
+ requireFunction->getDirect(
+ vm, clientData->builtinNames().resolvePublicName()),
+ 0);
- RELEASE_AND_RETURN(scope, JSC::JSValue::encode(boundRequireFunction));
+ RELEASE_AND_RETURN(scope, JSValue::encode(boundRequireFunction));
}
JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModulePaths,
(JSC::JSGlobalObject * globalObject,
@@ -113,7 +101,7 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionResolveFileName,
auto result =
Bun__resolveSync(globalObject, JSC::JSValue::encode(moduleName),
- JSValue::encode(callFrame->argument(1)));
+ JSValue::encode(callFrame->argument(1)), false);
auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
if (!JSC::JSValue::decode(result).isString()) {
+63 * fix(node:http/https): fix passing `URL` objs to `http.request`(#2253) * fix(node:http): hoist debug env var * fix(node:http): make body `undefined` when falsy 2023-03-01Revert "Update clap (#2238)"Gravatar Jarred Sumner 16-290/+1840 This reverts commit 7b9a17f9d7106ffd8e553a5192aba60d14ea5e9c. 2023-03-01Revert "Add `-D`, `--dev` flags for bun install (#2240)"Gravatar Jarred Sumner 1-9/+9 This reverts commit ec20fae57f96a835562b154730957ecc4015ba31. 2023-03-01Use GitHub action ID instead of SHA for test workflowGravatar Ashcon Partovi 1-1/+1 2023-03-01avoids segfault after aborted onReject in Bun.serve streams (#2256)Gravatar Ciro Spaciari 1-7/+8 * avoids segfault after aborted on reject * silence err on handleRejectStream after aborted 2023-03-01Run tests in CI for bun-linux-aarch64Gravatar Ashcon Partovi 2-1/+30 2023-03-01Revert spawnSync changeGravatar Jarred Sumner 1-1/+2 cc @FireTheFox 2023-03-01Update bindings.zigGravatar Jarred Sumner 1-1/+3 2023-03-01fix deinit behavior when connection is aborted using ResponseStream and ↵Gravatar Ciro Spaciari 3-34/+174 abort event behavior (#2252) * fix deinit behavior when connection is aborted using ResponseStream * fix abort handling on stream, and get better tests * avoid segfault by trying to deinit 2x when aborted * make tests more reliable * more reliable onResolveStream after aborted * add test case for not firing the abort signal 2023-03-01fix Bun.file.arrayBuffer() segmentation fault on empty file #2248 (#2249)Gravatar Ciro Spaciari 3-7/+23 * fix Bun.file.arrayBuffer() segmentation fault on empty file #2248 * cleanner this.iotask check 2023-03-01Fix async in sqliteGravatar Colin McDonnell 1-2/+2 2023-02-28Forces a specific libdir for c-ares (#2241)Gravatar Justin Whear 1-1/+5 The c-ares build expects lib/libcares.a to exist after cmake, but on my system it was being generated in lib64. This simply sets the cmake variable so that the target ends up where we expect. 2023-02-28Make Bun.gc(true) more aggressiveGravatar Jarred Sumner 1-0/+3 2023-02-28Expose JSC::Options via `BUN_JSC_` prefixGravatar Jarred Sumner 6-8/+47 Example usage: BUN_JSC_logGC=1 bun file.js 2023-02-28fixupGravatar Jarred Sumner 1-1/+1 2023-02-28Fix typecheckGravatar Colin McDonnell 2-1/+4 2023-02-28Fix incorrect Bun version in docs (#2236)Gravatar Derrick Farris 1-1/+1 2023-02-28just some comments fix (#2237)Gravatar Ciro Spaciari 1-4/+2 2023-02-28Add `-D`, `--dev` flags for bun install (#2240)Gravatar Justin Whear 1-9/+9 * remove vendored clap * Update to latest zig-clap Major changes: * Instead of vendoring zig-clap and adding changes, this uses Hejsil/zig-clap directly as a submodule * `cli.zig` and related files have been updated to use new API (no more `flag()` or `option()`) * A workaround for the Run and Auto commands has been implemented that allows us to use the official upstream Minor change: * `-i` now has the long option `--install-fallback`; I didn't spend much time thinking about this name, so suggestions weclome. * add --development and --optional to bun install * Add support for `-D`, `--dev` in bun install, fix `--save` 2023-02-28Document punningGravatar Colin McDonnell 1-1/+18