summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin Hagemeister <marvin@deno.com>2024-01-21 21:48:48 +0100
committerGitHub <noreply@github.com>2024-01-21 21:48:48 +0100
commit692738232b0668c35fcc572cb651fe543a8b87f9 (patch)
treec5762504e3f149febd66df405c3fa69479fb0966
parent28f64171cb4292cc1e8cf59525b0b9990eff160f (diff)
fix(node/fs): promises not exporting fs constants (#21997)
<!-- Before submitting a PR, please read https://deno.com/manual/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. --> 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
-rw-r--r--cli/tests/unit_node/fs_test.ts24
-rw-r--r--ext/node/polyfills/fs.ts1
-rw-r--r--ext/node/polyfills/fs/promises.ts1
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 67f4c2378..11114823f 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 01ac9912e..38a7a2bfb 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 15f238194..ffdb862d8 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;