aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/ecosystem/nodejs.md2
-rw-r--r--packages/bun-types/fs/promises.d.ts2
-rw-r--r--src/bun.js/fs.exports.js2
-rw-r--r--src/bun.js/fs_promises.exports.js1
-rw-r--r--src/bun.js/module_loader.zig8
-rw-r--r--test/js/node/fs/fs.test.ts5
6 files changed, 14 insertions, 6 deletions
diff --git a/docs/ecosystem/nodejs.md b/docs/ecosystem/nodejs.md
index d74acc8ca..c821d3d9a 100644
--- a/docs/ecosystem/nodejs.md
+++ b/docs/ecosystem/nodejs.md
@@ -87,7 +87,7 @@ This page is updated regularly to reflect compatibility status of the latest ver
- {% anchor id="node_fs" %} [`node:fs`](https://nodejs.org/api/fs.html) {% /anchor %}
- 🟡
-- Missing `fs.constants` `fs.fdatasync{Sync}` `fs.opendir{Sync}` `fs.readv{Sync}` `fs.{watch|watchFile|unwatchFile}` `fs.writev{Sync}`.
+- Missing `fs.fdatasync{Sync}` `fs.opendir{Sync}` `fs.readv{Sync}` `fs.{watch|watchFile|unwatchFile}` `fs.writev{Sync}`.
---
diff --git a/packages/bun-types/fs/promises.d.ts b/packages/bun-types/fs/promises.d.ts
index 71465c8f8..0d71464b9 100644
--- a/packages/bun-types/fs/promises.d.ts
+++ b/packages/bun-types/fs/promises.d.ts
@@ -28,6 +28,8 @@ declare module "fs/promises" {
RmDirOptions,
} from "node:fs";
+ const constants: typeof import("node:fs")["constants"];
+
interface FlagAndOpenMode {
mode?: Mode | undefined;
flag?: OpenMode | undefined;
diff --git a/src/bun.js/fs.exports.js b/src/bun.js/fs.exports.js
index 9036e14a2..dfb1947e7 100644
--- a/src/bun.js/fs.exports.js
+++ b/src/bun.js/fs.exports.js
@@ -925,7 +925,7 @@ export default {
chownSync,
close,
closeSync,
- constants,
+ constants: promises.constants,
copyFile,
copyFileSync,
createReadStream,
diff --git a/src/bun.js/fs_promises.exports.js b/src/bun.js/fs_promises.exports.js
index fbf7cf641..f1026b5d0 100644
--- a/src/bun.js/fs_promises.exports.js
+++ b/src/bun.js/fs_promises.exports.js
@@ -110,5 +110,6 @@ export default {
lutimes,
rm,
rmdir,
+ constants,
[Symbol.for("CommonJS")]: 0,
};
diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig
index 71990a7ac..4f57d8c67 100644
--- a/src/bun.js/module_loader.zig
+++ b/src/bun.js/module_loader.zig
@@ -1672,7 +1672,7 @@ pub const ModuleLoader = struct {
if (comptime Environment.isDebug) {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init(strings.append(bun.default_allocator, JSC.Node.fs.constants_string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "fs.exports.js")) catch unreachable),
+ .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "fs.exports.js")),
.specifier = ZigString.init("node:fs"),
.source_url = ZigString.init("node:fs"),
.hash = 0,
@@ -1680,7 +1680,7 @@ pub const ModuleLoader = struct {
} else if (jsc_vm.load_builtins_from_path.len != 0) {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init(strings.append(bun.default_allocator, JSC.Node.fs.constants_string, jsModuleFromFile(jsc_vm.load_builtins_from_path, "fs.exports.js")) catch unreachable),
+ .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "fs.exports.js")),
.specifier = ZigString.init("node:fs"),
.source_url = ZigString.init("node:fs"),
.hash = 0,
@@ -1689,7 +1689,7 @@ pub const ModuleLoader = struct {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init(JSC.Node.fs.constants_string ++ @embedFile("fs.exports.js")),
+ .source_code = ZigString.init(@embedFile("fs.exports.js")),
.specifier = ZigString.init("node:fs"),
.source_url = ZigString.init("node:fs"),
.hash = 0,
@@ -1733,7 +1733,7 @@ pub const ModuleLoader = struct {
.@"node:fs/promises" => {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init(@embedFile("fs_promises.exports.js") ++ JSC.Node.fs.constants_string),
+ .source_code = ZigString.init(JSC.Node.fs.constants_string ++ @embedFile("fs_promises.exports.js")),
.specifier = ZigString.init("node:fs/promises"),
.source_url = ZigString.init("node:fs/promises"),
.hash = 0,
diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts
index f7b343539..83739837c 100644
--- a/test/js/node/fs/fs.test.ts
+++ b/test/js/node/fs/fs.test.ts
@@ -1093,6 +1093,11 @@ it("fs.constants", () => {
expect(constants.S_IWOTH).toBeDefined();
});
+it("fs.promises.constants", () => {
+ expect(promises.constants).toBeDefined();
+ expect(promises.constants).toBe(fs.constants);
+});
+
it("fs.Dirent", () => {
expect(Dirent).toBeDefined();
});