summaryrefslogtreecommitdiff
path: root/cli/js/read_file.ts
blob: 31b0348e6c29272196e8c2b37bb48d5cf5f6e3f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { open, openSync } from "./files.ts";
import { readAll, readAllSync } from "./buffer.ts";

/** Reads and returns the entire contents of a file.
 *
 *       const decoder = new TextDecoder("utf-8");
 *       const data = Deno.readFileSync("hello.txt");
 *       console.log(decoder.decode(data));
 *
 * Requires `allow-read` permission. */
export function readFileSync(filename: string): Uint8Array {
  const file = openSync(filename);
  const contents = readAllSync(file);
  file.close();
  return contents;
}

/** Reads and resolves to the entire contents of a file.
 *
 *       const decoder = new TextDecoder("utf-8");
 *       const data = await Deno.readFile("hello.txt");
 *       console.log(decoder.decode(data));
 *
 * Requires `allow-read` permission. */
export async function readFile(filename: string): Promise<Uint8Array> {
  const file = await open(filename);
  const contents = await readAll(file);
  file.close();
  return contents;
}