implement _nodeModulePaths and require.main.paths (#3411)

* tests in progress

* add `require.main.paths`, add every dir up to root

* remove imports
This commit is contained in:
Dylan Conway
2023-06-26 08:12:37 -07:00
committed by GitHub
parent 76626ac54b
commit ec3ed67bc9
5 changed files with 150 additions and 11 deletions

View File

@@ -26,15 +26,8 @@ JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModuleCreateRequire,
scope, JSValue::encode(Zig::ImportMetaObject::createRequireFunction(
vm, globalObject, val)));
}
JSC_DEFINE_HOST_FUNCTION(jsFunctionNodeModulePaths,
(JSC::JSGlobalObject * globalObject,
JSC::CallFrame *callFrame)) {
return JSC::JSValue::encode(JSC::JSArray::create(
globalObject->vm(),
globalObject->arrayStructureForIndexingTypeDuringAllocation(
ArrayWithContiguous),
0));
}
extern "C" EncodedJSValue Resolver__nodeModulePathsForJS(JSGlobalObject *,
CallFrame *);
JSC_DEFINE_HOST_FUNCTION(jsFunctionFindSourceMap,
(JSGlobalObject * globalObject,
@@ -114,7 +107,7 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject,
vm, globalObject, 1, String("createRequire"_s),
jsFunctionNodeModuleCreateRequire, ImplementationVisibility::Public));
exportValues.append(JSFunction::create(vm, globalObject, 1, String("paths"_s),
jsFunctionNodeModulePaths,
Resolver__nodeModulePathsForJS,
ImplementationVisibility::Public));
exportValues.append(JSFunction::create(
vm, globalObject, 1, String("findSourceMap"_s), jsFunctionFindSourceMap,
@@ -143,7 +136,7 @@ void generateNodeModuleModule(JSC::JSGlobalObject *globalObject,
exportNames.append(JSC::Identifier::fromString(vm, "_nodeModulePaths"_s));
exportValues.append(JSFunction::create(
vm, globalObject, 0, String("_nodeModulePaths"_s),
jsFunctionNodeModulePaths, ImplementationVisibility::Public));
Resolver__nodeModulePathsForJS, ImplementationVisibility::Public));
exportNames.append(JSC::Identifier::fromString(vm, "_cache"_s));
exportValues.append(