fix: export constants from fs/promises (#2567)

* fix: export `constants` from `fs/promises`

* fix type tests

* third time's the charm fixing the typedef

* run fmt

* remove injected constant from fs, re-exporting from fs/promises
This commit is contained in:
dave caruso
2023-04-06 18:55:23 -04:00
committed by GitHub
parent b8aca35b76
commit e4e81bc49e
6 changed files with 14 additions and 6 deletions

View File

@@ -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}`.
---

View File

@@ -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;

View File

@@ -925,7 +925,7 @@ export default {
chownSync,
close,
closeSync,
constants,
constants: promises.constants,
copyFile,
copyFileSync,
createReadStream,

View File

@@ -110,5 +110,6 @@ export default {
lutimes,
rm,
rmdir,
constants,
[Symbol.for("CommonJS")]: 0,
};

View File

@@ -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,

View File

@@ -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();
});