diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-03-04 23:37:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-05 03:37:37 +0000 |
commit | 888ceac7fdc6e9b96d860f183dd2f31df3f3d601 (patch) | |
tree | d56e78c736ca50ebf6d091e2804c4e468326befb /runtime/js/40_write_file.js | |
parent | 17574f1ef7adf4aea91ba497759ac3e3fed50f1a (diff) |
refactor(runtime): remove 40_files.js, 40_write_file.js and 40_read_file.js (#18018)
JavaScript APIs from "runtime/js/40_files.js" combined abstractions
for stdio streams ("Stdout", "Stderr", "Stdin") and file system file
("File", "FsFile"). APIs from "runtime/js/40_read_file.js" and
"runtime/js/40_write_file.js" were implemented using ops from
"runtime/ops/fs.rs".
This file was removed and relevant APIs were moved to "deno_io/12_io.js"
and "runtime/js/30_fs.js".
This work is meant to enable factoring out "deno_fs" crate.
Diffstat (limited to 'runtime/js/40_write_file.js')
-rw-r--r-- | runtime/js/40_write_file.js | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/runtime/js/40_write_file.js b/runtime/js/40_write_file.js deleted file mode 100644 index 89d670a65..000000000 --- a/runtime/js/40_write_file.js +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. -const core = globalThis.Deno.core; -const ops = core.ops; -const primordials = globalThis.__bootstrap.primordials; -import * as abortSignal from "internal:deno_web/03_abort_signal.js"; -import { pathFromURL } from "internal:runtime/06_util.js"; -import { open } from "internal:runtime/40_files.js"; -import { ReadableStreamPrototype } from "internal:deno_web/06_streams.js"; -const { ObjectPrototypeIsPrototypeOf } = primordials; - -function writeFileSync( - path, - data, - options = {}, -) { - options.signal?.throwIfAborted(); - ops.op_write_file_sync( - pathFromURL(path), - options.mode, - options.append ?? false, - options.create ?? true, - options.createNew ?? false, - data, - ); -} - -async function writeFile( - path, - data, - options = {}, -) { - let cancelRid; - let abortHandler; - if (options.signal) { - options.signal.throwIfAborted(); - cancelRid = ops.op_cancel_handle(); - abortHandler = () => core.tryClose(cancelRid); - options.signal[abortSignal.add](abortHandler); - } - try { - if (ObjectPrototypeIsPrototypeOf(ReadableStreamPrototype, data)) { - const file = await open(path, { - mode: options.mode, - append: options.append ?? false, - create: options.create ?? true, - createNew: options.createNew ?? false, - write: true, - }); - await data.pipeTo(file.writable, { - signal: options.signal, - }); - } else { - await core.opAsync( - "op_write_file_async", - pathFromURL(path), - options.mode, - options.append ?? false, - options.create ?? true, - options.createNew ?? false, - data, - cancelRid, - ); - } - } finally { - if (options.signal) { - options.signal[abortSignal.remove](abortHandler); - - // always throw the abort error when aborted - options.signal.throwIfAborted(); - } - } -} - -function writeTextFileSync( - path, - data, - options = {}, -) { - const encoder = new TextEncoder(); - return writeFileSync(path, encoder.encode(data), options); -} - -function writeTextFile( - path, - data, - options = {}, -) { - if (ObjectPrototypeIsPrototypeOf(ReadableStreamPrototype, data)) { - return writeFile( - path, - data.pipeThrough(new TextEncoderStream()), - options, - ); - } else { - const encoder = new TextEncoder(); - return writeFile(path, encoder.encode(data), options); - } -} - -export { writeFile, writeFileSync, writeTextFile, writeTextFileSync }; |