From 692738232b0668c35fcc572cb651fe543a8b87f9 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Sun, 21 Jan 2024 21:48:48 +0100 Subject: [PATCH] fix(node/fs): promises not exporting fs constants (#21997) We were missing the `constants` export in the promise `fs` API which is available in node. ```ts import { constants, promises } from "node:fs"; import { constants as fsPromiseConstants } from "node:fs/promises"; console.log(constants === promises.constants); // logs: true console.log(constants === fsPromiseConstants); // logs: true ``` Fixes https://github.com/denoland/deno/issues/21994 --- cli/tests/unit_node/fs_test.ts | 24 ++++++++++++++++++++++-- ext/node/polyfills/fs.ts | 1 + ext/node/polyfills/fs/promises.ts | 1 + 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/cli/tests/unit_node/fs_test.ts b/cli/tests/unit_node/fs_test.ts index 67f4c2378c..11114823f2 100644 --- a/cli/tests/unit_node/fs_test.ts +++ b/cli/tests/unit_node/fs_test.ts @@ -1,9 +1,21 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { assert, assertThrows } from "../../../test_util/std/assert/mod.ts"; +import { + assert, + assertEquals, + assertThrows, +} from "../../../test_util/std/assert/mod.ts"; import { join } from "node:path"; import { tmpdir } from "node:os"; -import { existsSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs"; +import { + constants, + existsSync, + mkdtempSync, + promises, + readFileSync, + writeFileSync, +} from "node:fs"; +import { constants as fsPromiseConstants } from "node:fs/promises"; import { pathToAbsoluteFileUrl } from "../unit/test_util.ts"; Deno.test( @@ -80,3 +92,11 @@ Deno.test( assert(!existsSync("bad_filename")); }, ); + +Deno.test( + "[node/fs/promises constants] is the same as from node:fs", + () => { + assertEquals(constants, fsPromiseConstants); + assertEquals(constants, promises.constants); + }, +); diff --git a/ext/node/polyfills/fs.ts b/ext/node/polyfills/fs.ts index 01ac9912e4..38a7a2bfb6 100644 --- a/ext/node/polyfills/fs.ts +++ b/ext/node/polyfills/fs.ts @@ -137,6 +137,7 @@ const { const promises = { access: accessPromise, + constants, copyFile: copyFilePromise, cp: cpPromise, open: openPromise, diff --git a/ext/node/polyfills/fs/promises.ts b/ext/node/polyfills/fs/promises.ts index 15f2381948..ffdb862d8c 100644 --- a/ext/node/polyfills/fs/promises.ts +++ b/ext/node/polyfills/fs/promises.ts @@ -2,6 +2,7 @@ import { promises as fsPromises } from "node:fs"; export const access = fsPromises.access; +export const constants = fsPromises.constants; export const copyFile = fsPromises.copyFile; export const open = fsPromises.open; export const opendir = fsPromises.opendir;