@@ -7701,6 +7701,186 @@ added:
77017701
77027702Type of file system. 
77037703
7704+ ### Class: `  fs .Utf8Stream ` 
7705+ 
7706+ <!-- YAML 
7707+ added: REPLACEME 
7708+ --> 
7709+ 
7710+ > Stability: 1 - Experimental 
7711+ 
7712+ An optimized UTF-8 stream writer that allows for flushing all the internal 
7713+ buffering on demand. It handles `  EAGAIN `  errors correctly, allowing for
7714+ customization, for example, by dropping content if the disk is busy. 
7715+ 
7716+ #### Event: `  ' close' ` 
7717+ 
7718+ The `  ' close' `  event is emitted when the stream is fully closed.
7719+ 
7720+ #### Event: `  ' drain' ` 
7721+ 
7722+ The `  ' drain' `  event is emitted when the internal buffer has drained sufficiently
7723+ to allow continued writing. 
7724+ 
7725+ #### Event: `  ' drop' ` 
7726+ 
7727+ The `  ' drop' `  event is emitted when to maximal length is reached and that data
7728+ will not be written. The data that was dropped is passed as the first argument 
7729+ to the event handle. 
7730+ 
7731+ #### Event: `  ' error' ` 
7732+ 
7733+ The `  ' error' `  event is emitted when an error occurs.
7734+ 
7735+ #### Event: `  ' finish' ` 
7736+ 
7737+ The `  ' finish' `  event is emitted when the stream has been ended and all data has
7738+ been flushed to the underlying file. 
7739+ 
7740+ #### Event: `  ' ready' ` 
7741+ 
7742+ The `  ' ready' `  event is emitted when the stream is ready to accept writes.
7743+ 
7744+ #### Event: `  ' write' ` 
7745+ 
7746+ The `  ' write' `  event is emitted when a write operation has completed. The number
7747+ of bytes written is passed as the first argument to the event handler. 
7748+ 
7749+ #### `  new  fs.Utf8Stream ([options])` 
7750+ 
7751+ * `  options`  {Object}
7752+   * `  append` : {boolean} Appends writes to dest file instead of truncating it.
7753+     **Default**: `  true ` .
7754+   * `  contentMode` : {string} Which type of data you can send to the write
7755+     function, supported values are `  ' utf8' `  or ` ' buffer' ` . **Default**:
7756+     `  ' utf8' ` .
7757+   * `  dest` : {string} A path to a file to be written to (mode controlled by the
7758+     append option). 
7759+   * `  fd` : {number} A file descriptor, something that is returned by ` fs .open ()` 
7760+     or `  fs .openSync ()` .
7761+   * `  fs` : {Object} An object that has the same API as the `  fs`  module, useful
7762+     for mocking, testing, or customizing the behavior of the stream. 
7763+   * `  fsync` : {boolean} Perform a ` fs .fsyncSync ()`  every time a write is
7764+     completed. 
7765+   * `  maxLength` : {number} The maximum length of the internal buffer. If a write
7766+     operation would cause the buffer to exceed `  maxLength` , the data written is
7767+     dropped and a drop event is emitted with the dropped data 
7768+   * `  maxWrite` : {number} The maximum number of bytes that can be written;
7769+     **Default**: `  16384 ` 
7770+   * `  minLength` : {number} The minimum length of the internal buffer that is
7771+     required to be full before flushing. 
7772+   * `  mkdir` : {boolean} Ensure directory for `  dest`  file exists when true.
7773+     **Default**: `  false ` .
7774+   * `  mode` : {number|string} Specify the creating file mode (see ` fs .open ()` ).
7775+   * `  periodicFlush` : {number} Calls flush every `  periodicFlush`  milliseconds.
7776+   * `  retryEAGAIN`  {Function} A function that will be called when ` write ()` ,
7777+     `  writeSync ()` , or ` flushSync ()`  encounters an ` EAGAIN `  or ` EBUSY `  error.
7778+     If the return value is `  true `  the operation will be retried, otherwise it
7779+     will bubble the error. The `  err`  is the error that caused this function to
7780+     be called, `  writeBufferLen`  is the length of the buffer that was written,
7781+     and `  remainingBufferLen`  is the length of the remaining buffer that the
7782+     stream did not try to write. 
7783+     * `  err`  {any} An error or ` null ` .
7784+     * `  writeBufferLen`  {number}
7785+     * `  remainingBufferLen` : {number}
7786+   * `  sync` : {boolean} Perform writes synchronously.
7787+ 
7788+ #### `  utf8Stream .append ` 
7789+ 
7790+ * {boolean} Whether the stream is appending to the file or truncating it. 
7791+ 
7792+ #### `  utf8Stream .contentMode ` 
7793+ 
7794+ * {string} The type of data that can be written to the stream. Supported 
7795+   values are `  ' utf8' `  or ` ' buffer' ` . **Default**: ` ' utf8' ` .
7796+ 
7797+ #### `  utf8Stream .destroy ()` 
7798+ 
7799+ Close the stream immediately, without flushing the internal buffer. 
7800+ 
7801+ #### `  utf8Stream .end ()` 
7802+ 
7803+ Close the stream gracefully, flushing the internal buffer before closing. 
7804+ 
7805+ #### `  utf8Stream .fd ` 
7806+ 
7807+ * {number} The file descriptor that is being written to. 
7808+ 
7809+ #### `  utf8Stream .file ` 
7810+ 
7811+ * {string} The file that is being written to. 
7812+ 
7813+ #### `  utf8Stream .flush (callback)` 
7814+ 
7815+ * `  callback`  {Function}
7816+   * `  err`  {Error|null} An error if the flush failed, otherwise ` null ` .
7817+ 
7818+ Writes the current buffer to the file if a write was not in progress. Do 
7819+ nothing if `  minLength`  is zero or if it is already writing.
7820+ 
7821+ #### `  utf8Stream .flushSync ()` 
7822+ 
7823+ Flushes the buffered data synchronously. This is a costly operation. 
7824+ 
7825+ #### `  utf8Stream .fsync ` 
7826+ 
7827+ * {boolean} Whether the stream is performing a `  fs .fsyncSync ()`  after every
7828+   write operation. 
7829+ 
7830+ #### `  utf8Stream .maxLength ` 
7831+ 
7832+ * {number} The maximum length of the internal buffer. If a write 
7833+   operation would cause the buffer to exceed `  maxLength` , the data written is
7834+   dropped and a drop event is emitted with the dropped data. 
7835+ 
7836+ #### `  utf8Stream .minLength ` 
7837+ 
7838+ * {number} The minimum length of the internal buffer that is required to be 
7839+   full before flushing. 
7840+ 
7841+ #### `  utf8Stream .mkdir ` 
7842+ 
7843+ * {boolean} Whether the stream should ensure that the directory for the 
7844+   `  dest`  file exists. If ` true ` , it will create the directory if it does not
7845+   exist. **Default**: `  false ` .
7846+ 
7847+ #### `  utf8Stream .mode ` 
7848+ 
7849+ * {number|string} The mode of the file that is being written to. 
7850+ 
7851+ #### `  utf8Stream .periodicFlush ` 
7852+ 
7853+ * {number} The number of milliseconds between flushes. If set to `  0 ` , no
7854+   periodic flushes will be performed. 
7855+ 
7856+ #### `  utf8Stream .reopen (file)` 
7857+ 
7858+ * `  file` : {string|Buffer|URL} A path to a file to be written to (mode
7859+   controlled by the append option). 
7860+ 
7861+ Reopen the file in place, useful for log rotation. 
7862+ 
7863+ #### `  utf8Stream .sync ` 
7864+ 
7865+ * {boolean} Whether the stream is writing synchronously or asynchronously. 
7866+ 
7867+ #### `  utf8Stream .write (data)` 
7868+ 
7869+ * `  data`  {string|Buffer} The data to write.
7870+ * Returns {boolean} 
7871+ 
7872+ When the `  options .contentMode `  is set to ` ' utf8' `  when the stream is created,
7873+ the `  data`  argument must be a string. If the `  contentMode`  is set to ` ' buffer' ` ,
7874+ the `  data`  argument must be a {Buffer}.
7875+ 
7876+ #### `  utf8Stream .writing ` 
7877+ 
7878+ * {boolean} Whether the stream is currently writing data to the file. 
7879+ 
7880+ #### `  utf8Stream[Symbol .dispose ]()` 
7881+ 
7882+ Calls `  utf8Stream .destroy ()` .
7883+ 
77047884### Class: `  fs .WriteStream ` 
77057885
77067886<!-- YAML 
0 commit comments