1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00

chore(runtime): deprecate Deno.copy (#11369)

This commit is contained in:
Luca Casonato 2021-07-12 19:44:42 +02:00 committed by GitHub
parent 00484d24ba
commit 51e0bfda3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 29 additions and 15 deletions

View file

@ -90,7 +90,7 @@ jobs:
- name: Install Deno
if: matrix.kind == 'lint'
run: |
curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.7.2
curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.11.3
echo "$HOME/.deno/bin" >> $GITHUB_PATH
- name: Install Python

View file

@ -1,5 +1,7 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
// Used for benchmarking Deno's tcp proxy performance.
import { copy } from "../../test_util/std/io/util.ts";
const addr = Deno.args[0] || "127.0.0.1:4500";
const originAddr = Deno.args[1] || "127.0.0.1:4501";
@ -14,7 +16,7 @@ async function handle(conn: Deno.Conn): Promise<void> {
port: Number(originPort),
});
try {
await Promise.all([Deno.copy(conn, origin), Deno.copy(origin, conn)]);
await Promise.all([copy(conn, origin), copy(origin, conn)]);
} catch (e) {
if (
!(e instanceof Deno.errors.BrokenPipe) &&

View file

@ -421,7 +421,11 @@ declare namespace Deno {
seekSync(offset: number, whence: SeekMode): number;
}
/** Copies from `src` to `dst` until either EOF (`null`) is read from `src` or
/**
* @deprecated Use `copy` from https://deno.land/std/io/util.ts instead.
* `Deno.copy` will be removed in Deno 2.0.
*
* Copies from `src` to `dst` until either EOF (`null`) is read from `src` or
* an error occurs. It resolves to the number of bytes copied or rejects with
* the first error encountered while copying.
*

View file

@ -1,8 +1,9 @@
import { copy } from "../../test_util/std/io/util.ts";
async function main(): Promise<void> {
for (let i = 1; i < Deno.args.length; i++) {
const filename = Deno.args[i];
const file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
await copy(file, Deno.stdout);
}
}

View file

@ -1,10 +1,11 @@
import { copy } from "../../test_util/std/io/util.ts";
const addr = Deno.args[0] || "0.0.0.0:4544";
const [hostname, port] = addr.split(":");
const listener = Deno.listen({ hostname, port: Number(port) });
console.log("listening on", addr);
listener.accept().then(
async (conn): Promise<void> => {
console.log("received bytes:", await Deno.copy(conn, conn));
console.log("received bytes:", await copy(conn, conn));
conn.close();
listener.close();
},

View file

@ -8,6 +8,7 @@ import {
assertThrowsAsync,
unitTest,
} from "./test_util.ts";
import { copy } from "../../../test_util/std/io/util.ts";
unitTest(function filesStdioFileDescriptors(): void {
assertEquals(Deno.stdin.rid, 0);
@ -21,7 +22,7 @@ unitTest({ perms: { read: true } }, async function filesCopyToStdout(): Promise<
const filename = "cli/tests/fixture.json";
const file = await Deno.open(filename);
assert(file.rid > 2);
const bytesWritten = await Deno.copy(file, Deno.stdout);
const bytesWritten = await copy(file, Deno.stdout);
const fileSize = Deno.statSync(filename).size;
assertEquals(bytesWritten, fileSize);
file.close();

View file

@ -4,8 +4,9 @@
- Listening for TCP port connections with
[Deno.listen](https://doc.deno.land/builtin/stable#Deno.listen).
- Use [Deno.copy](https://doc.deno.land/builtin/stable#Deno.copy) to take
inbound data and redirect it to be outbound data.
- Use
[copy](https://doc.deno.land/https/deno.land/std@$STD_VERSION/io/util.ts#copy)
to take inbound data and redirect it to be outbound data.
## Example
@ -16,10 +17,11 @@ returns to the client anything it sends.
/**
* echo_server.ts
*/
import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts";
const listener = Deno.listen({ port: 8080 });
console.log("listening on 0.0.0.0:8080");
for await (const conn of listener) {
Deno.copy(conn, conn).finally(() => conn.close());
copy(conn, conn).finally(() => conn.close());
}
```

View file

@ -7,8 +7,8 @@
command line arguments.
- [Deno.open](https://doc.deno.land/builtin/stable#Deno.open) is used to get a
handle to a file.
- [Deno.copy](https://doc.deno.land/builtin/stable#Deno.copy) is used to
transfer data from the file to the output stream.
- [copy](https://doc.deno.land/https/deno.land/std@$STD_VERSION/io/util.ts#copy)
is used to transfer data from the file to the output stream.
- Files should be closed when you are finished with them
- Modules can be run directly from remote URLs.
@ -21,9 +21,10 @@ is opened, and printed to stdout (e.g. the console).
/**
* cat.ts
*/
import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts";
for (const filename of Deno.args) {
const file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
await copy(file, Deno.stdout);
file.close();
}
```

View file

@ -86,10 +86,11 @@ In this program each command-line argument is assumed to be a filename, the file
is opened, and printed to stdout.
```ts
import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts";
const filenames = Deno.args;
for (const filename of filenames) {
const file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
await copy(file, Deno.stdout);
file.close();
}
```
@ -111,12 +112,13 @@ This is an example of a server which accepts connections on port 8080, and
returns to the client anything it sends.
```ts
import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts";
const hostname = "0.0.0.0";
const port = 8080;
const listener = Deno.listen({ hostname, port });
console.log(`Listening on ${hostname}:${port}`);
for await (const conn of listener) {
Deno.copy(conn, conn);
copy(conn, conn);
}
```

@ -1 +1 @@
Subproject commit 8467929052737f634eb8842a960093c686ae3b9b
Subproject commit 81314bcab8b5dc2fef85ec65f8588cab17063378