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.
74 lines
2.3 KiB
74 lines
2.3 KiB
import { EventEmitter } from 'events'
|
|
import workerThreads from 'worker_threads'
|
|
|
|
interface ThreadStreamOptions {
|
|
/**
|
|
* The size (in bytes) of the buffer.
|
|
* Must be greater than 4 (i.e. it must at least fit a 4-byte utf-8 char).
|
|
*
|
|
* Default: `4 * 1024 * 1024` = `4194304`
|
|
*/
|
|
bufferSize?: number,
|
|
/**
|
|
* The path to the Worker's main script or module.
|
|
* Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with ./ or ../, or a WHATWG URL object using file: or data: protocol.
|
|
* When using a data: URL, the data is interpreted based on MIME type using the ECMAScript module loader.
|
|
*
|
|
* {@link workerThreads.Worker()}
|
|
*/
|
|
filename: string | URL,
|
|
/**
|
|
* If `true`, write data synchronously; otherwise write data asynchronously.
|
|
*
|
|
* Default: `false`.
|
|
*/
|
|
sync?: boolean,
|
|
/**
|
|
* {@link workerThreads.WorkerOptions.workerData}
|
|
*
|
|
* Default: `{}`
|
|
*/
|
|
workerData?: any,
|
|
/**
|
|
* {@link workerThreads.WorkerOptions}
|
|
*
|
|
* Default: `{}`
|
|
*/
|
|
workerOpts?: workerThreads.WorkerOptions
|
|
}
|
|
|
|
|
|
declare class ThreadStream extends EventEmitter {
|
|
/**
|
|
* @param {ThreadStreamOptions} opts
|
|
*/
|
|
constructor(opts: ThreadStreamOptions)
|
|
/**
|
|
* Write some data to the stream.
|
|
*
|
|
* **Please note that this method should not throw an {Error} if something goes wrong but emit an error event.**
|
|
* @param {string} data data to write.
|
|
* @returns {boolean} false if the stream wishes for the calling code to wait for the 'drain' event to be emitted before continuing to write additional data or if it fails to write; otherwise true.
|
|
*/
|
|
write(data: string): boolean
|
|
/**
|
|
* Signal that no more data will be written.
|
|
*
|
|
* **Please note that this method should not throw an {Error} if something goes wrong but emit an error event.**
|
|
*
|
|
* Calling the {@link write()} method after calling {@link end()} will emit an error.
|
|
*/
|
|
end(): void
|
|
/**
|
|
* Flush the stream synchronously.
|
|
* This method should be called in the shutdown phase to make sure that all data has been flushed.
|
|
*
|
|
* **Please note that this method will throw an {Error} if something goes wrong.**
|
|
*
|
|
* @throws {Error} if the stream is already flushing, if it fails to flush or if it takes more than 10 seconds to flush.
|
|
*/
|
|
flushSync(): void
|
|
}
|
|
|
|
export = ThreadStream;
|