watchfolder-jet

A simple scramjet stream that streams lists of changed, added, removed files from the specified folder

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
watchfolder-jet
112.1.594 years ago8 years agoMinified + gzip package size for watchfolder-jet in KB

Readme

Usage (I hope...)

Tails all logs in a directory including those created when the program is running.
const jet = require("watchfolder-jet").watch(
    "/var/log/my-logs/"
).filter(
    (file) => (file.action === 'add' || file.action === 'create') && file.isReadable
).map(
    (file) => tail(file).pipe(new scramjet.StringStream())
        .split("\n")
).reduceNow(
    (acc, file) => (acc.add(file)),
    new scramjet.MultiStream([])
).mux(
    // comparator for log lines (just for the example, there should be no need for this except for a couple first lines)
    (lineA, lineB) => new Date(lineA.split(" ").slice(0,2).join(" ")) - new Date(lineB.split(" ").slice(0,2).join(" "))
).pipe(
    process.stdout
);

API

require("watchfolder-jet").watch(directory);
Watches a directrory for changes
require("watchfolder-jet").finished(directory, {/* options */ timeout: 10000});
Watches a directory for completed files only.

Stream objects

The streamed objects have the following structure:
{
    action: "",    // The action that happened on the file, one of the following:
                   //     ["add", "create", "remove", "change"];
    filename: "",  // The changed filename (full path)
    stat: {},      // The up to date stat
    prevstat: {}   // The previous stat (only on "change")
}

License and contributions

The module is released under the condition of the MIT license. Please see the attached LICENSE.