Skip to main content
Module

std/node/_fs/_fs_appendFile.ts

Deno standard library
Go to Latest
File
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.import { CallbackWithError, isFd, maybeCallback, WriteFileOptions,} from "./_fs_common.ts";import { Encodings } from "../_utils.ts";import { copyObject, getOptions } from "../internal/fs/utils.mjs";import { writeFile, writeFileSync } from "./_fs_writeFile.ts";import { promisify } from "../internal/util.mjs";
/** * TODO: Also accept 'data' parameter as a Node polyfill Buffer type once these * are implemented. See https://github.com/denoland/deno/issues/3403 */export function appendFile( path: string | number | URL, data: string | Uint8Array, options: Encodings | WriteFileOptions | CallbackWithError, callback?: CallbackWithError,) { callback = maybeCallback(callback || options); options = getOptions(options, { encoding: "utf8", mode: 0o666, flag: "a" });
// Don't make changes directly on options object options = copyObject(options);
// Force append behavior when using a supplied file descriptor if (!options.flag || isFd(path)) { options.flag = "a"; }
writeFile(path, data, options, callback);}
/** * TODO: Also accept 'data' parameter as a Node polyfill Buffer type once these * are implemented. See https://github.com/denoland/deno/issues/3403 */export const appendFilePromise = promisify(appendFile) as ( path: string | number | URL, data: string | Uint8Array, options?: Encodings | WriteFileOptions,) => Promise<void>;
/** * TODO: Also accept 'data' parameter as a Node polyfill Buffer type once these * are implemented. See https://github.com/denoland/deno/issues/3403 */export function appendFileSync( path: string | number | URL, data: string | Uint8Array, options?: Encodings | WriteFileOptions,) { options = getOptions(options, { encoding: "utf8", mode: 0o666, flag: "a" });
// Don't make changes directly on options object options = copyObject(options);
// Force append behavior when using a supplied file descriptor if (!options.flag || isFd(path)) { options.flag = "a"; }
writeFileSync(path, data, options);}