Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 28x 28x 28x 50x 50x 12x 28x 18x 18x 2x 28x 6x 2x 4x 28x 23x 2x 21x 28x 19x 18x 18x 19x | import fs from 'fs';
import Path from 'path';
/**
* Check if a path exists and is a file
* @param path Path to check
* @returns True if path points to file, false otherwise
*/
export async function pathIsFile(path: string): Promise<boolean> {
try {
return (await fs.promises.stat(path)).isFile();
} catch {
return false;
}
}
/**
* Check if a directory exists and is a file
* @param path Path to check
* @returns True if path points to directory, false otherwise
*/
export async function pathIsDirectory(path: string): Promise<boolean> {
try {
return (await fs.promises.stat(path)).isDirectory();
} catch {
return false;
}
}
/**
* List the files in a directory.
* Throws an exception if path is not a directory.
*
* @param path Path to directory
* @returns Returns an array of filenames of all files in a directory
* @throws Throws if path does not point to a directory or if an IO error occurs
*/
export async function getDirectoryContents(path: string): Promise<string[]> {
if (!(await pathIsDirectory(path))) {
throw new Error(`Attempting to list files in directory that does not exist or is not a directory: "${ path }"`);
}
return fs.promises.readdir(path);
}
/**
* Reads the contents of a file as a string.
* Throws an exception if path is not a file.
*
* @param path Path to file
* @param encoding File encoding. Defaults to UTF 8.
* @returns Contents of file as a string
* @throws Throws if path does not point to a file
*/
export async function readFile(path: string, encoding: BufferEncoding = 'utf-8'): Promise<string> {
if (!(await pathIsFile(path))) {
throw new Error(`Attempting to read file that does not exist or is not a file: "${ path }"`);
}
return fs.promises.readFile(path, encoding);
}
/**
* Writes a file as UTF-8.
* Throws an exception if path is not a file.
*
* @param path Path to file
* @param content File contents
* @param createPaths If true, directory tree will be created up to the file
* @param encoding File encoding. Defaults to UTF 8.
*/
export async function writeFile(path: string, content: string, createPaths?: boolean, encoding: BufferEncoding = 'utf-8'): Promise<void> {
if (createPaths) {
const directory: string = Path.dirname(path);
await fs.promises.mkdir(directory, { recursive: true });
}
return fs.promises.writeFile(path, content, encoding);
}
|