fs-snapshot
v0.2.0
Published
creates a snapshot of a directory which can be used to determine which files have changed
Downloads
9
Readme
FS Snapshot
Creates a snapshot of a directory which can be used to determine which files have changed
Note: This project is in early development, and versioning is a little different. Read this for more details.
Why should you care?
Sometimes in life you need to check a tree of files to see what has changed from the last time you checked it, without constantly watching said files. For example, if you are backing up files once a week, you don't want to back up every file, only the ones that have changed. Same with if you were generating a static site.
FS Snapshot does exactly that. It will produce an object that can be saved to hold on to the state of a file tree, and also a function that can be used to compare two of these objects to produce the names of files that have changed.
Installation
npm install fs-snapshot -S
Note: This project is compatible with node v6+ only
Usage
To generate a snapshot, use snapshot.create(root)
. To compare two snapshots, use snapshot.changed(snapshot1, snapshot2)
. Snapshots are buffers containing zlib-compressed JSON objects. To compress or decompress manually, you can use snapshot.compress(src)
and snapshot.decompress(src)
.
const snapshot = require('fs-snapshot')
const snap1 = snapshot.create('./some_files').then(console.log)
// check the output, if you want
snap1.then((s) => {
console.log(snapshot.decompress(snap1))
})
// wait a while, make some changes to some of the files
const snap2 = snapshot.create('./some_files')
// now we compare the two snapshots
Promise.all([snap1, snap2]).then(([s1, s2]) => {
// array of files that have changed between the first and second snapshots
const changedFiles = snapshot.changed(snap1, snap2)
console.log(changedFiles)
})
License & Contributing
- Details on the license can be found here
- Details on running tests and contributing can be found here