summaryrefslogtreecommitdiff
path: root/runtime/js/40_write_file.js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js/40_write_file.js')
-rw-r--r--runtime/js/40_write_file.js100
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 };