Nervously Practice Multithreading

    file-timestamp-stream
    TypeScript icon, indicating that this package has built-in type declarations

    2.2.4 • Public • Published

    file-timestamp-stream

    Build Status Coverage Status npm

    This module creates stream.Writable to a file which is automatically rotated based on current time and uses strftime template for file names.

    Requirements

    This module requires ES6 with Node >= 6.

    Installation

    npm install file-timestamp-stream

    Additionally for Typescript:

    npm install -D @types/node

    Usage

    Example:

    const {FileTimestampStream} = require("file-timestamp-stream")

    Typescript:

    import FileTimestampStream from "file-timestamp-stream"
    // or
    import {FileTimestampStream} from "file-timestamp-stream"

    Options

    • flags is a string with flags for opened stream (default: 'a')
    • fs is a custom fs module (optional)
    • path is a template for new filenames (default: 'out.log')

    Example:

    Basic path based on strftime parameters:

    const stream = new FileTimestampStream({
      path: "%Y-%m-%dT%H.log",
      flags: "a",
    })

    newFilename

    This method can be overriden in subclass.

    The method generates a filename for new files. By default it returns new filename based on path and current time.

    Example:

    import strftime from "ultra-strftime"
     
    class MyFileTimestampStream extends FileTimestampStream {
      /** count how many files has been created */
      counter = 0
     
      // for pure Javascript explicit constructor is necessary
      // constructor (options) { super(options); this.counter = 0 }
     
      protected newFilename(): string {
        const filename = strftime(this.path)
        if (filename !== this.currentFilename) this.counter++
        return filename
      }
    }
     
    const stream = new MyFileTimestampStream({
      path: "%Y-%m-%dT%H:%M.log",
    })

    Properties

    Readonly public properties based on contructor's options:

    • flags
    • fs
    • path

    Protected properties for custom subclass:

    • currentFilename contains last opened filename
    • stream contains current fs.WriteStream object

    Path template format

    Path can contain strftime specifiers.

    Warning

    This stream have to be closed to free own streams and timers.

    License

    Copyright (c) 2017-2019 Piotr Roszatycki piotr.roszatycki@gmail.com

    MIT

    Install

    npm i file-timestamp-stream

    DownloadsWeekly Downloads

    198

    Version

    2.2.4

    License

    MIT

    Unpacked Size

    27.9 kB

    Total Files

    10

    Last publish

    Collaborators

    • dex4er