You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.1 KiB
30 lines
1.1 KiB
/// <reference types="node" /> |
|
import { EventEmitter } from 'events'; |
|
import * as fsScandir from '@nodelib/fs.scandir'; |
|
import type Settings from '../settings'; |
|
import type { Entry, Errno } from '../types'; |
|
import Reader from './reader'; |
|
declare type EntryEventCallback = (entry: Entry) => void; |
|
declare type ErrorEventCallback = (error: Errno) => void; |
|
declare type EndEventCallback = () => void; |
|
export default class AsyncReader extends Reader { |
|
protected readonly _settings: Settings; |
|
protected readonly _scandir: typeof fsScandir.scandir; |
|
protected readonly _emitter: EventEmitter; |
|
private readonly _queue; |
|
private _isFatalError; |
|
private _isDestroyed; |
|
constructor(_root: string, _settings: Settings); |
|
read(): EventEmitter; |
|
get isDestroyed(): boolean; |
|
destroy(): void; |
|
onEntry(callback: EntryEventCallback): void; |
|
onError(callback: ErrorEventCallback): void; |
|
onEnd(callback: EndEventCallback): void; |
|
private _pushToQueue; |
|
private _worker; |
|
private _handleError; |
|
private _handleEntry; |
|
private _emitEntry; |
|
} |
|
export {};
|
|
|