Skip to content

Commit d130ef6

Browse files
authored
feat(node): fs/promises implementation (#1083)
1 parent e32fa45 commit d130ef6

File tree

7 files changed

+68
-60
lines changed

7 files changed

+68
-60
lines changed

node/_fs/promises/_fs_readFile.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

node/_fs/promises/_fs_writeFile.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.

node/_fs/promises/mod.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

node/fs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import { utimes, utimesSync } from "./_fs/_fs_utimes.ts";
3333
import { watch } from "./_fs/_fs_watch.ts";
3434
import { writeFile, writeFileSync } from "./_fs/_fs_writeFile.ts";
3535

36-
import * as promises from "./_fs/promises/mod.ts";
36+
import * as promises from "./fs/promises.ts";
3737

3838
export default {
3939
access,

node/_fs/promises/_fs_readFile_test.ts renamed to node/fs/_fs_readFile_test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
2-
import { readFile } from "./_fs_readFile.ts";
3-
import * as path from "../../../path/mod.ts";
4-
import { assert, assertEquals } from "../../../testing/asserts.ts";
2+
import { readFile } from "./promises.ts";
3+
import * as path from "../../path/mod.ts";
4+
import { assert, assertEquals } from "../../testing/asserts.ts";
55

66
const moduleDir = path.dirname(path.fromFileUrl(import.meta.url));
7-
const testData = path.resolve(moduleDir, "..", "testdata", "hello.txt");
7+
const testData = path.resolve(moduleDir, "..", "_fs", "testdata", "hello.txt");
88

99
Deno.test("readFileSuccess", async function () {
1010
const data: Uint8Array = await readFile(testData);

node/_fs/promises/_fs_writeFile_test.ts renamed to node/fs/_fs_writeFile_test.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@ import {
44
assertEquals,
55
assertNotEquals,
66
assertThrowsAsync,
7-
} from "../../../testing/asserts.ts";
8-
import { writeFile } from "./_fs_writeFile.ts";
9-
import type { TextEncodings } from "../../_utils.ts";
7+
} from "../../testing/asserts.ts";
8+
import { writeFile } from "./promises.ts";
9+
import type { TextEncodings } from "../_utils.ts";
1010

1111
const decoder = new TextDecoder("utf-8");
1212

1313
Deno.test("Invalid encoding results in error()", function testEncodingErrors() {
1414
assertThrowsAsync(
1515
async () => {
16-
// @ts-expect-error Type '"made-up-encoding"' is not assignable to type
1716
await writeFile("some/path", "some data", "made-up-encoding");
1817
},
1918
Error,
@@ -22,7 +21,6 @@ Deno.test("Invalid encoding results in error()", function testEncodingErrors() {
2221
assertThrowsAsync(
2322
async () => {
2423
await writeFile("some/path", "some data", {
25-
// @ts-expect-error Type '"made-up-encoding"' is not assignable to type
2624
encoding: "made-up-encoding",
2725
});
2826
},

node/fs/promises.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { promisify } from "../util.ts";
2+
import * as fs from "../fs.ts";
3+
4+
export const access = promisify(fs.access);
5+
export const copyFile = promisify(fs.copyFile);
6+
export const open = promisify(fs.open);
7+
// export const opendir = promisify(fs.opendir);
8+
export const rename = promisify(fs.rename);
9+
export const truncate = promisify(fs.truncate);
10+
// export const rm = promisify(fs.rm);
11+
export const rmdir = promisify(fs.rmdir);
12+
export const mkdir = promisify(fs.mkdir);
13+
export const readdir = promisify(fs.readdir);
14+
export const readlink = promisify(fs.readlink);
15+
export const symlink = promisify(fs.symlink);
16+
export const lstat = promisify(fs.lstat);
17+
export const stat = promisify(fs.stat);
18+
export const link = promisify(fs.link);
19+
export const unlink = promisify(fs.unlink);
20+
export const chmod = promisify(fs.chmod);
21+
// export const lchmod = promisify(fs.lchmod);
22+
// export const lchown = promisify(fs.lchown);
23+
export const chown = promisify(fs.chown);
24+
export const utimes = promisify(fs.utimes);
25+
// export const lutimes = promisify(fs.lutimes);
26+
export const realpath = promisify(fs.realpath);
27+
export const mkdtemp = promisify(fs.mkdtemp);
28+
export const writeFile = promisify(fs.writeFile);
29+
export const appendFile = promisify(fs.appendFile);
30+
export const readFile = promisify(fs.readFile);
31+
export const watch = promisify(fs.watch);
32+
33+
export default {
34+
open,
35+
// opendir,
36+
rename,
37+
truncate,
38+
// rm,
39+
rmdir,
40+
mkdir,
41+
readdir,
42+
readlink,
43+
symlink,
44+
lstat,
45+
stat,
46+
link,
47+
unlink,
48+
chmod,
49+
// lchmod,
50+
// lchown,
51+
chown,
52+
utimes,
53+
// lutimes,
54+
realpath,
55+
mkdtemp,
56+
writeFile,
57+
appendFile,
58+
readFile,
59+
watch,
60+
};

0 commit comments

Comments
 (0)