summaryrefslogtreecommitdiff
path: root/runtime/js/40_read_file.js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js/40_read_file.js')
-rw-r--r--runtime/js/40_read_file.js114
1 files changed, 53 insertions, 61 deletions
diff --git a/runtime/js/40_read_file.js b/runtime/js/40_read_file.js
index 7c2898903..b7f0a7012 100644
--- a/runtime/js/40_read_file.js
+++ b/runtime/js/40_read_file.js
@@ -1,78 +1,70 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-"use strict";
-((window) => {
- const core = window.Deno.core;
- const ops = core.ops;
- const { pathFromURL } = window.__bootstrap.util;
- const { abortSignal } = window.__bootstrap;
+const core = globalThis.Deno.core;
+const ops = core.ops;
+import { pathFromURL } from "internal:runtime/js/06_util.js";
+import * as abortSignal from "internal:ext/web/03_abort_signal.js";
- function readFileSync(path) {
- return ops.op_readfile_sync(pathFromURL(path));
+function readFileSync(path) {
+ return ops.op_readfile_sync(pathFromURL(path));
+}
+
+async function readFile(path, 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);
}
- async function readFile(path, options) {
- let cancelRid;
- let abortHandler;
+ try {
+ const read = await core.opAsync(
+ "op_readfile_async",
+ pathFromURL(path),
+ cancelRid,
+ );
+ return read;
+ } finally {
if (options?.signal) {
- options.signal.throwIfAborted();
- cancelRid = ops.op_cancel_handle();
- abortHandler = () => core.tryClose(cancelRid);
- options.signal[abortSignal.add](abortHandler);
- }
+ options.signal[abortSignal.remove](abortHandler);
- try {
- const read = await core.opAsync(
- "op_readfile_async",
- pathFromURL(path),
- cancelRid,
- );
- return read;
- } finally {
- if (options?.signal) {
- options.signal[abortSignal.remove](abortHandler);
-
- // always throw the abort error when aborted
- options.signal.throwIfAborted();
- }
+ // always throw the abort error when aborted
+ options.signal.throwIfAborted();
}
}
+}
- function readTextFileSync(path) {
- return ops.op_readfile_text_sync(pathFromURL(path));
+function readTextFileSync(path) {
+ return ops.op_readfile_text_sync(pathFromURL(path));
+}
+
+async function readTextFile(path, 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);
}
- async function readTextFile(path, options) {
- let cancelRid;
- let abortHandler;
+ try {
+ const read = await core.opAsync(
+ "op_readfile_text_async",
+ pathFromURL(path),
+ cancelRid,
+ );
+ return read;
+ } finally {
if (options?.signal) {
- options.signal.throwIfAborted();
- cancelRid = ops.op_cancel_handle();
- abortHandler = () => core.tryClose(cancelRid);
- options.signal[abortSignal.add](abortHandler);
- }
+ options.signal[abortSignal.remove](abortHandler);
- try {
- const read = await core.opAsync(
- "op_readfile_text_async",
- pathFromURL(path),
- cancelRid,
- );
- return read;
- } finally {
- if (options?.signal) {
- options.signal[abortSignal.remove](abortHandler);
-
- // always throw the abort error when aborted
- options.signal.throwIfAborted();
- }
+ // always throw the abort error when aborted
+ options.signal.throwIfAborted();
}
}
+}
- window.__bootstrap.readFile = {
- readFile,
- readFileSync,
- readTextFileSync,
- readTextFile,
- };
-})(this);
+export { readFile, readFileSync, readTextFile, readTextFileSync };