/
home
/
infinitibizsol
/
testingcrm.infinitibizsol.com
/
node_modules
/
sonic-boom
/
File Upload :
llllll
Current File: /home/infinitibizsol/testingcrm.infinitibizsol.com/node_modules/sonic-boom/README.md
# sonic-boom  Extremely fast utf8-only stream implementation to write to files and file descriptors. This implementation is partial, but support backpressure and `.pipe()` in is here. However, it is 2-3x faster than Node Core `fs.createWriteStream()`: ``` benchSonic*1000: 1916.904ms benchSonicSync*1000: 8605.265ms benchSonic4k*1000: 1965.231ms benchSonicSync4k*1000: 1588.224ms benchCore*1000: 5851.959ms benchConsole*1000: 7605.713ms ``` Note that sync mode without buffering is _slower_ than a Node Core WritableStream, however this mode matches the expected behavior of `console.log()`. Note that if this is used to log to a windows terminal (`cmd.exe` or powershell), it is needed to run `chcp 65001` in the terminal to correctly display utf-8 characters, see [chcp](https://ss64.com/nt/chcp.html) for more details. ## Install ``` npm i sonic-boom ``` ## Example ```js 'use strict' const SonicBoom = require('sonic-boom') const sonic = new SonicBoom({ fd: process.stdout.fd }) // or { dest: '/path/to/destination' } for (let i = 0; i < 10; i++) { sonic.write('hello sonic\n') } ``` ## API ### SonicBoom(opts) Creates a new instance of SonicBoom. The options are: * `fd`: a file descriptor, something that is returned by `fs.open` or `fs.openSync`. * `dest`: a string that is a path to a file to be written to (mode `'a'`). * `minLength`: the minimum lenght of the internal buffer that is required to be full before flushing. * `sync`: perform writes synchronously (similar to `console.log`). For `sync:false` a `SonicBoom` instance will emit the `'ready'` event when a file descriptor is available. For `sync:true` this is not relevant because the `'ready'` event will be fired when the `SonicBoom` instance is created, before it can be subscribed to. ### SonicBoom#write(string) Writes the string to the file. It will return false to signal the producer to slow down. ### SonicBoom#flush() Writes the current buffer to the file if a write was not in progress. Do nothing if `minLength` is zero or if it is already writing. ### SonicBoom#reopen([file]) Reopen the file in place, useful for log rotation. Example: ```js const stream = new SonicBoom('./my.log') process.on('SIGUSR2', function () { stream.reopen() }) ``` ### SonicBoom#flushSync() Flushes the buffered data synchronously. This is a costly operation. ### SonicBoom#end() Closes the stream, the data will be flushed down asynchronously ### SonicBoom#destroy() Closes the stream immediately, the data is not flushed. ## License MIT
Copyright ©2k19 -
Hexid
|
Tex7ure