summaryrefslogtreecommitdiff
path: root/cli/rt/12_io.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/rt/12_io.js')
-rw-r--r--cli/rt/12_io.js135
1 files changed, 0 insertions, 135 deletions
diff --git a/cli/rt/12_io.js b/cli/rt/12_io.js
deleted file mode 100644
index 006d51cdd..000000000
--- a/cli/rt/12_io.js
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-
-// Interfaces 100% copied from Go.
-// Documentation liberally lifted from them too.
-// Thank you! We love Go! <3
-
-((window) => {
- const DEFAULT_BUFFER_SIZE = 32 * 1024;
- const { sendSync, sendAsync } = window.__bootstrap.dispatchMinimal;
- // Seek whence values.
- // https://golang.org/pkg/io/#pkg-constants
- const SeekMode = {
- 0: "Start",
- 1: "Current",
- 2: "End",
-
- Start: 0,
- Current: 1,
- End: 2,
- };
-
- async function copy(
- src,
- dst,
- options,
- ) {
- let n = 0;
- const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE;
- const b = new Uint8Array(bufSize);
- let gotEOF = false;
- while (gotEOF === false) {
- const result = await src.read(b);
- if (result === null) {
- gotEOF = true;
- } else {
- let nwritten = 0;
- while (nwritten < result) {
- nwritten += await dst.write(b.subarray(nwritten, result));
- }
- n += nwritten;
- }
- }
- return n;
- }
-
- async function* iter(
- r,
- options,
- ) {
- const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE;
- const b = new Uint8Array(bufSize);
- while (true) {
- const result = await r.read(b);
- if (result === null) {
- break;
- }
-
- yield b.subarray(0, result);
- }
- }
-
- function* iterSync(
- r,
- options,
- ) {
- const bufSize = options?.bufSize ?? DEFAULT_BUFFER_SIZE;
- const b = new Uint8Array(bufSize);
- while (true) {
- const result = r.readSync(b);
- if (result === null) {
- break;
- }
-
- yield b.subarray(0, result);
- }
- }
-
- function readSync(rid, buffer) {
- if (buffer.length === 0) {
- return 0;
- }
-
- const nread = sendSync("op_read", rid, buffer);
- if (nread < 0) {
- throw new Error("read error");
- }
-
- return nread === 0 ? null : nread;
- }
-
- async function read(
- rid,
- buffer,
- ) {
- if (buffer.length === 0) {
- return 0;
- }
-
- const nread = await sendAsync("op_read", rid, buffer);
- if (nread < 0) {
- throw new Error("read error");
- }
-
- return nread === 0 ? null : nread;
- }
-
- function writeSync(rid, data) {
- const result = sendSync("op_write", rid, data);
- if (result < 0) {
- throw new Error("write error");
- }
-
- return result;
- }
-
- async function write(rid, data) {
- const result = await sendAsync("op_write", rid, data);
- if (result < 0) {
- throw new Error("write error");
- }
-
- return result;
- }
-
- window.__bootstrap.io = {
- iterSync,
- iter,
- copy,
- SeekMode,
- read,
- readSync,
- write,
- writeSync,
- };
-})(this);