/// <reference types="node" />
|
|
import fs = require('fs');
|
|
declare namespace re {
|
interface Entry extends fs.Stats {
|
path: string;
|
depth: number;
|
}
|
|
type FilterFunction = (stat: Entry) => boolean;
|
type Callback<T> = (err: NodeJS.ErrnoException, result: T) => void;
|
type CallbackString = Callback<string[]>;
|
type CallbackEntry = Callback<Entry[]>;
|
|
interface FileSystem {
|
readdir?: (path: string, callback: Callback<string[]>) => void;
|
lstat?: (path: string, callback: Callback<fs.Stats>) => void;
|
stat?: (path: string, callback: Callback<fs.Stats>) => void;
|
}
|
|
interface Options {
|
filter?: string | RegExp | FilterFunction;
|
deep?: boolean | number | RegExp | FilterFunction;
|
sep?: string;
|
basePath?: string;
|
fs?: FileSystem;
|
}
|
|
function stat(root: string, options?: Options): Promise<Entry[]>;
|
function stat(root: string, callback: CallbackEntry): void;
|
function stat(root: string, options: Options, callback: CallbackEntry): void;
|
|
function async(root: string, options?: Options): Promise<string[]>;
|
function async(root: string, callback: CallbackString): void;
|
function async(root: string, options: Options, callback: CallbackString): void;
|
|
function readdirAsyncStat(root: string, options?: Options): Promise<Entry[]>;
|
function readdirAsyncStat(root: string, callback: CallbackEntry): void;
|
function readdirAsyncStat(root: string, options: Options, callback: CallbackEntry): void;
|
|
namespace async {
|
function stat(root: string, options?: Options): Promise<Entry[]>;
|
function stat(root: string, callback: CallbackEntry): void;
|
function stat(root: string, options: Options, callback: CallbackEntry): void;
|
}
|
|
function stream(root: string, options?: Options): NodeJS.ReadableStream;
|
function readdirStreamStat(root: string, options?: Options): NodeJS.ReadableStream;
|
|
namespace stream {
|
function stat(root: string, options?: Options): NodeJS.ReadableStream;
|
}
|
|
function sync(root: string, options?: Options): string[];
|
function readdirSyncStat(root: string, options?: Options): Entry[];
|
|
namespace sync {
|
function stat(root: string, options?: Options): Entry[];
|
}
|
}
|
|
declare function re(root: string, options?: re.Options): Promise<string[]>;
|
declare function re(root: string, callback: re.CallbackString): void;
|
declare function re(root: string, options: re.Options, callback: re.CallbackString): void;
|
|
export = re;
|