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
			| 
											3 years ago
										 | 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; |