summaryrefslogtreecommitdiff
path: root/std/node
diff options
context:
space:
mode:
Diffstat (limited to 'std/node')
-rw-r--r--std/node/module.ts11
-rw-r--r--std/node/module_test.ts5
l---------std/node/tests/cjs/dir1
-rw-r--r--std/node/tests/cjs/subdir/dir/index.js4
4 files changed, 11 insertions, 10 deletions
diff --git a/std/node/module.ts b/std/node/module.ts
index f10fc2ca7..a7052668a 100644
--- a/std/node/module.ts
+++ b/std/node/module.ts
@@ -764,16 +764,7 @@ function tryFile(requestPath: string, _isMain: boolean): string | false {
}
function toRealPath(requestPath: string): string {
- // Deno does not have realpath implemented yet.
- let fullPath = requestPath;
- while (true) {
- try {
- fullPath = Deno.readLinkSync(fullPath);
- } catch {
- break;
- }
- }
- return path.resolve(requestPath);
+ return Deno.realPathSync(requestPath);
}
// Given a path, check if the file exists with any of the set extensions
diff --git a/std/node/module_test.ts b/std/node/module_test.ts
index 2faaff575..86fb1d386 100644
--- a/std/node/module_test.ts
+++ b/std/node/module_test.ts
@@ -69,3 +69,8 @@ Deno.test("requireStack", function () {
assertStringIncludes(e.stack, "/tests/cjs/cjs_throw.js");
}
});
+
+Deno.test("requireFileInSymlinkDir", () => {
+ const { C } = require("./tests/cjs/dir");
+ assertEquals(C, "C");
+});
diff --git a/std/node/tests/cjs/dir b/std/node/tests/cjs/dir
new file mode 120000
index 000000000..abec30059
--- /dev/null
+++ b/std/node/tests/cjs/dir
@@ -0,0 +1 @@
+./subdir/dir \ No newline at end of file
diff --git a/std/node/tests/cjs/subdir/dir/index.js b/std/node/tests/cjs/subdir/dir/index.js
new file mode 100644
index 000000000..0b4d11386
--- /dev/null
+++ b/std/node/tests/cjs/subdir/dir/index.js
@@ -0,0 +1,4 @@
+// deno-lint-ignore-file no-undef
+const C = require("../cjs_c");
+
+module.exports = { C };