Skip to content

Commit

Permalink
Added read file str (#276)
Browse files Browse the repository at this point in the history
  • Loading branch information
zekth authored and ry committed Apr 13, 2019
1 parent bb92c44 commit b462ad2
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 0 deletions.
33 changes: 33 additions & 0 deletions fs/read_file_str.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));
}
20 changes: 20 additions & 0 deletions fs/read_file_str_test.ts
@@ -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);
});
1 change: 1 addition & 0 deletions fs/test.ts
Expand Up @@ -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.