Skip to content
Permalink
Browse files

Added read file str (#276)

  • Loading branch information...
zekth authored and ry committed Apr 13, 2019
1 parent bb92c44 commit b462ad253042c13c95d9b9b205920a17a12dae28
Showing with 54 additions and 0 deletions.
  1. +33 −0 fs/read_file_str.ts
  2. +20 −0 fs/read_file_str_test.ts
  3. +1 −0 fs/test.ts
@@ -0,0 +1,33 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.

export interface ReadOptions {
encoding?: string;
}

/**
* Read file synchronously and output it as a string.
*
* @param filename File to read
* @param opts Read options
*/
export function readFileStrSync(
filename: string,
opts: ReadOptions = {}
): string {
const decoder = new TextDecoder(opts.encoding);
return decoder.decode(Deno.readFileSync(filename));
}

/**
* Read file and output it as a string.
*
* @param filename File to read
* @param opts Read options
*/
export async function readFileStr(
filename: string,
opts: ReadOptions = {}
): Promise<string> {
const decoder = new TextDecoder(opts.encoding);
return decoder.decode(await Deno.readFile(filename));
}
@@ -0,0 +1,20 @@
import { test } from "../testing/mod.ts";
import { assert } from "../testing/asserts.ts";
import { readFileStrSync, readFileStr } from "./read_file_str.ts";
import * as path from "./path/mod.ts";

const testdataDir = path.resolve("fs", "testdata");

test(function testReadFileSync() {
const jsonFile = path.join(testdataDir, "json_valid_obj.json");
const strFile = readFileStrSync(jsonFile);
assert(typeof strFile === "string");
assert(strFile.length > 0);
});

test(async function testReadFile() {
const jsonFile = path.join(testdataDir, "json_valid_obj.json");
const strFile = await readFileStr(jsonFile);
assert(typeof strFile === "string");
assert(strFile.length > 0);
});
@@ -10,5 +10,6 @@ import "./ensure_dir_test.ts";
import "./ensure_file_test.ts";
import "./move_test.ts";
import "./read_json_test.ts";
import "./read_file_str_test.ts";
import "./write_json_test.ts";
import "./utils_test.ts";

0 comments on commit b462ad2

Please sign in to comment.
You can’t perform that action at this time.