summaryrefslogtreecommitdiff
path: root/std/node/fs.ts
diff options
context:
space:
mode:
authorChris Knight <cknight1234@gmail.com>2020-03-15 15:48:46 +0000
committerGitHub <noreply@github.com>2020-03-15 11:48:46 -0400
commit620dd9724d4f8568efebb1642b49c653de9424cd (patch)
treee57827e536c264189f151ffebffe7e9faaae0c46 /std/node/fs.ts
parentdc6e0c3591709d6f8887bb672af1de54dfc8a974 (diff)
refactor: move existing fs implementation to internal _fs directory (#4381)
Diffstat (limited to 'std/node/fs.ts')
-rwxr-xr-xstd/node/fs.ts174
1 files changed, 23 insertions, 151 deletions
diff --git a/std/node/fs.ts b/std/node/fs.ts
index f86fc2391..9135441bb 100755
--- a/std/node/fs.ts
+++ b/std/node/fs.ts
@@ -1,156 +1,28 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import {
- notImplemented,
- intoCallbackAPIWithIntercept,
- MaybeEmpty
-} from "./_utils.ts";
+import { access, accessSync } from "./_fs/_fs_access.ts";
import { appendFile, appendFileSync } from "./_fs/_fs_appendFile.ts";
-export { appendFile, appendFileSync };
-
import { chmod, chmodSync } from "./_fs/_fs_chmod.ts";
-export { chmod, chmodSync };
-
+import { chown, chownSync } from "./_fs/_fs_chown.ts";
+import { close, closeSync } from "./_fs/_fs_close.ts";
import * as constants from "./_fs/_fs_constants.ts";
-export { constants };
-
-const {
- readFile: denoReadFile,
- readFileSync: denoReadFileSync,
- readlink: denoReadlink,
- readlinkSync: denoReadlinkSync
-} = Deno;
-
-type ReadFileCallback = (
- err: MaybeEmpty<Error>,
- data: MaybeEmpty<string | Uint8Array>
-) => void;
-
-interface ReadFileOptions {
- encoding?: string | null;
- flag?: string;
-}
-
-type ReadlinkCallback = (
- err: MaybeEmpty<Error>,
- linkString: MaybeEmpty<string | Uint8Array>
-) => void;
-
-interface ReadlinkOptions {
- encoding?: string | null;
-}
-
-function getEncoding(
- optOrCallback?: ReadFileOptions | ReadFileCallback
-): string | null {
- if (!optOrCallback || typeof optOrCallback === "function") {
- return null;
- } else {
- if (optOrCallback.encoding) {
- if (
- optOrCallback.encoding === "utf8" ||
- optOrCallback.encoding === "utf-8"
- ) {
- return "utf8";
- } else if (optOrCallback.encoding === "buffer") {
- return "buffer";
- } else {
- notImplemented();
- }
- }
- return null;
- }
-}
-
-function maybeDecode(
- data: Uint8Array,
- encoding: string | null
-): string | Uint8Array {
- if (encoding === "utf8") {
- return new TextDecoder().decode(data);
- }
- return data;
-}
-
-function maybeEncode(
- data: string,
- encoding: string | null
-): string | Uint8Array {
- if (encoding === "buffer") {
- return new TextEncoder().encode(data);
- }
- return data;
-}
-
-export function readFile(
- path: string,
- optOrCallback: ReadFileCallback | ReadFileOptions,
- callback?: ReadFileCallback
-): void {
- let cb: ReadFileCallback | undefined;
- if (typeof optOrCallback === "function") {
- cb = optOrCallback;
- } else {
- cb = callback;
- }
-
- const encoding = getEncoding(optOrCallback);
-
- intoCallbackAPIWithIntercept<Uint8Array, string | Uint8Array>(
- denoReadFile,
- (data: Uint8Array): string | Uint8Array => maybeDecode(data, encoding),
- cb,
- path
- );
-}
-
-export function readFileSync(
- path: string,
- opt?: ReadFileOptions
-): string | Uint8Array {
- return maybeDecode(denoReadFileSync(path), getEncoding(opt));
-}
-
-export function readlink(
- path: string,
- optOrCallback: ReadlinkCallback | ReadlinkOptions,
- callback?: ReadlinkCallback
-): void {
- let cb: ReadlinkCallback | undefined;
- if (typeof optOrCallback === "function") {
- cb = optOrCallback;
- } else {
- cb = callback;
- }
-
- const encoding = getEncoding(optOrCallback);
-
- intoCallbackAPIWithIntercept<string, Uint8Array | string>(
- denoReadlink,
- (data: string): string | Uint8Array => maybeEncode(data, encoding),
- cb,
- path
- );
-}
-
-export function readlinkSync(
- path: string,
- opt?: ReadlinkOptions
-): string | Uint8Array {
- return maybeEncode(denoReadlinkSync(path), getEncoding(opt));
-}
-
-/** Revist once https://github.com/denoland/deno/issues/4017 lands */
-export function access(
- path: string, // eslint-disable-line @typescript-eslint/no-unused-vars
- modeOrCallback: number | Function, // eslint-disable-line @typescript-eslint/no-unused-vars
- callback?: Function // eslint-disable-line @typescript-eslint/no-unused-vars
-): void {
- notImplemented("Not yet available");
-}
-
-/** Revist once https://github.com/denoland/deno/issues/4017 lands */
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-export function accessSync(path: string, mode?: number): undefined {
- notImplemented("Not yet available");
-}
+import { readFile, readFileSync } from "./_fs/_fs_readFile.ts";
+import { readlink, readlinkSync } from "./_fs/_fs_readlink.ts";
+
+export {
+ access,
+ accessSync,
+ appendFile,
+ appendFileSync,
+ chmod,
+ chmodSync,
+ chown,
+ chownSync,
+ close,
+ closeSync,
+ constants,
+ readFile,
+ readFileSync,
+ readlink,
+ readlinkSync
+};