177 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/// <reference types="node" resolution-mode="require"/>
 | 
						|
/**
 | 
						|
 * A class representing the Node.js implementation of Hfs.
 | 
						|
 * @implements {HfsImpl}
 | 
						|
 */
 | 
						|
export class NodeHfsImpl implements HfsImpl {
 | 
						|
    /**
 | 
						|
     * Creates a new instance.
 | 
						|
     * @param {object} [options] The options for the instance.
 | 
						|
     * @param {Fsp} [options.fsp] The file system module to use.
 | 
						|
     */
 | 
						|
    constructor({ fsp }?: {
 | 
						|
        fsp?: Fsp;
 | 
						|
    });
 | 
						|
    /**
 | 
						|
     * Reads a file and returns the contents as an Uint8Array.
 | 
						|
     * @param {string|URL} filePath The path to the file to read.
 | 
						|
     * @returns {Promise<Uint8Array|undefined>} A promise that resolves with the contents
 | 
						|
     *    of the file or undefined if the file doesn't exist.
 | 
						|
     * @throws {Error} If the file cannot be read.
 | 
						|
     * @throws {TypeError} If the file path is not a string.
 | 
						|
     */
 | 
						|
    bytes(filePath: string | URL): Promise<Uint8Array | undefined>;
 | 
						|
    /**
 | 
						|
     * Writes a value to a file. If the value is a string, UTF-8 encoding is used.
 | 
						|
     * @param {string|URL} filePath The path to the file to write.
 | 
						|
     * @param {Uint8Array} contents The contents to write to the
 | 
						|
     *   file.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the file is
 | 
						|
     *  written.
 | 
						|
     * @throws {TypeError} If the file path is not a string.
 | 
						|
     * @throws {Error} If the file cannot be written.
 | 
						|
     */
 | 
						|
    write(filePath: string | URL, contents: Uint8Array): Promise<void>;
 | 
						|
    /**
 | 
						|
     * Appends a value to a file. If the value is a string, UTF-8 encoding is used.
 | 
						|
     * @param {string|URL} filePath The path to the file to append to.
 | 
						|
     * @param {Uint8Array} contents The contents to append to the
 | 
						|
     *  file.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the file is
 | 
						|
     * written.
 | 
						|
     * @throws {TypeError} If the file path is not a string.
 | 
						|
     * @throws {Error} If the file cannot be appended to.
 | 
						|
     */
 | 
						|
    append(filePath: string | URL, contents: Uint8Array): Promise<void>;
 | 
						|
    /**
 | 
						|
     * Checks if a file exists.
 | 
						|
     * @param {string|URL} filePath The path to the file to check.
 | 
						|
     * @returns {Promise<boolean>} A promise that resolves with true if the
 | 
						|
     *    file exists or false if it does not.
 | 
						|
     * @throws {Error} If the operation fails with a code other than ENOENT.
 | 
						|
     */
 | 
						|
    isFile(filePath: string | URL): Promise<boolean>;
 | 
						|
    /**
 | 
						|
     * Checks if a directory exists.
 | 
						|
     * @param {string|URL} dirPath The path to the directory to check.
 | 
						|
     * @returns {Promise<boolean>} A promise that resolves with true if the
 | 
						|
     *    directory exists or false if it does not.
 | 
						|
     * @throws {Error} If the operation fails with a code other than ENOENT.
 | 
						|
     */
 | 
						|
    isDirectory(dirPath: string | URL): Promise<boolean>;
 | 
						|
    /**
 | 
						|
     * Creates a directory recursively.
 | 
						|
     * @param {string|URL} dirPath The path to the directory to create.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the directory is
 | 
						|
     *   created.
 | 
						|
     */
 | 
						|
    createDirectory(dirPath: string | URL): Promise<void>;
 | 
						|
    /**
 | 
						|
     * Deletes a file or empty directory.
 | 
						|
     * @param {string|URL} fileOrDirPath The path to the file or directory to
 | 
						|
     *   delete.
 | 
						|
     * @returns {Promise<boolean>} A promise that resolves when the file or
 | 
						|
     *   directory is deleted, true if the file or directory is deleted, false
 | 
						|
     *   if the file or directory does not exist.
 | 
						|
     * @throws {TypeError} If the file or directory path is not a string.
 | 
						|
     * @throws {Error} If the file or directory cannot be deleted.
 | 
						|
     */
 | 
						|
    delete(fileOrDirPath: string | URL): Promise<boolean>;
 | 
						|
    /**
 | 
						|
     * Deletes a file or directory recursively.
 | 
						|
     * @param {string|URL} fileOrDirPath The path to the file or directory to
 | 
						|
     *   delete.
 | 
						|
     * @returns {Promise<boolean>} A promise that resolves when the file or
 | 
						|
     *   directory is deleted, true if the file or directory is deleted, false
 | 
						|
     *   if the file or directory does not exist.
 | 
						|
     * @throws {TypeError} If the file or directory path is not a string.
 | 
						|
     * @throws {Error} If the file or directory cannot be deleted.
 | 
						|
     */
 | 
						|
    deleteAll(fileOrDirPath: string | URL): Promise<boolean>;
 | 
						|
    /**
 | 
						|
     * Returns a list of directory entries for the given path.
 | 
						|
     * @param {string|URL} dirPath The path to the directory to read.
 | 
						|
     * @returns {AsyncIterable<HfsDirectoryEntry>} A promise that resolves with the
 | 
						|
     *   directory entries.
 | 
						|
     * @throws {TypeError} If the directory path is not a string.
 | 
						|
     * @throws {Error} If the directory cannot be read.
 | 
						|
     */
 | 
						|
    list(dirPath: string | URL): AsyncIterable<HfsDirectoryEntry>;
 | 
						|
    /**
 | 
						|
     * Returns the size of a file. This method handles ENOENT errors
 | 
						|
     * and returns undefined in that case.
 | 
						|
     * @param {string|URL} filePath The path to the file to read.
 | 
						|
     * @returns {Promise<number|undefined>} A promise that resolves with the size of the
 | 
						|
     *  file in bytes or undefined if the file doesn't exist.
 | 
						|
     */
 | 
						|
    size(filePath: string | URL): Promise<number | undefined>;
 | 
						|
    /**
 | 
						|
     * Returns the last modified date of a file or directory. This method handles ENOENT errors
 | 
						|
     * and returns undefined in that case.
 | 
						|
     * @param {string|URL} fileOrDirPath The path to the file to read.
 | 
						|
     * @returns {Promise<Date|undefined>} A promise that resolves with the last modified
 | 
						|
     * date of the file or directory, or undefined if the file doesn't exist.
 | 
						|
     */
 | 
						|
    lastModified(fileOrDirPath: string | URL): Promise<Date | undefined>;
 | 
						|
    /**
 | 
						|
     * Copies a file from one location to another.
 | 
						|
     * @param {string|URL} source The path to the file to copy.
 | 
						|
     * @param {string|URL} destination The path to copy the file to.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the file is copied.
 | 
						|
     * @throws {Error} If the source file does not exist.
 | 
						|
     * @throws {Error} If the source file is a directory.
 | 
						|
     * @throws {Error} If the destination file is a directory.
 | 
						|
     */
 | 
						|
    copy(source: string | URL, destination: string | URL): Promise<void>;
 | 
						|
    /**
 | 
						|
     * Copies a file or directory from one location to another.
 | 
						|
     * @param {string|URL} source The path to the file or directory to copy.
 | 
						|
     * @param {string|URL} destination The path to copy the file or directory to.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the file or directory is
 | 
						|
     * copied.
 | 
						|
     * @throws {Error} If the source file or directory does not exist.
 | 
						|
     * @throws {Error} If the destination file or directory is a directory.
 | 
						|
     */
 | 
						|
    copyAll(source: string | URL, destination: string | URL): Promise<void>;
 | 
						|
    /**
 | 
						|
     * Moves a file from the source path to the destination path.
 | 
						|
     * @param {string|URL} source The location of the file to move.
 | 
						|
     * @param {string|URL} destination The destination of the file to move.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the move is complete.
 | 
						|
     * @throws {TypeError} If the file paths are not strings.
 | 
						|
     * @throws {Error} If the file cannot be moved.
 | 
						|
     */
 | 
						|
    move(source: string | URL, destination: string | URL): Promise<void>;
 | 
						|
    /**
 | 
						|
     * Moves a file or directory from the source path to the destination path.
 | 
						|
     * @param {string|URL} source The location of the file or directory to move.
 | 
						|
     * @param {string|URL} destination The destination of the file or directory to move.
 | 
						|
     * @returns {Promise<void>} A promise that resolves when the move is complete.
 | 
						|
     * @throws {TypeError} If the file paths are not strings.
 | 
						|
     * @throws {Error} If the file or directory cannot be moved.
 | 
						|
     */
 | 
						|
    moveAll(source: string | URL, destination: string | URL): Promise<void>;
 | 
						|
    #private;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * A class representing a file system utility library.
 | 
						|
 * @implements {HfsImpl}
 | 
						|
 */
 | 
						|
export class NodeHfs extends Hfs implements HfsImpl {
 | 
						|
    /**
 | 
						|
     * Creates a new instance.
 | 
						|
     * @param {object} [options] The options for the instance.
 | 
						|
     * @param {Fsp} [options.fsp] The file system module to use.
 | 
						|
     */
 | 
						|
    constructor({ fsp }?: {
 | 
						|
        fsp?: Fsp;
 | 
						|
    });
 | 
						|
}
 | 
						|
export const hfs: NodeHfs;
 | 
						|
export type HfsImpl = import("@humanfs/types").HfsImpl;
 | 
						|
export type HfsDirectoryEntry = import("@humanfs/types").HfsDirectoryEntry;
 | 
						|
export type Fsp = typeof nativeFsp;
 | 
						|
export type Dirent = import("fs").Dirent;
 | 
						|
import { Hfs } from "@humanfs/core";
 | 
						|
import nativeFsp from "node:fs/promises";
 |