file-changed

A node module to check and store file changed.

Usage no npm install needed!

<script type="module">
  import fileChanged from 'https://cdn.skypack.dev/file-changed';
</script>

README

file-changed

Build Status Code coverage Code style Dependency Status Dev Dependency Status NPM version NPM downloads NPM license FOSSA Status

A node module to check and store file changed.

Install

By npm:

npm i file-changed --save

By yarn:

yarn add file-changed

Class

This package export a class since version 1.0.0 which means you could have multiple instances and save the information where you like.

constructor([dbPath])

Arguments

dbPath {string}
  • Default: ./\_timestamp.json

Path to save collection informations on disk.

Return

Collection instance.

Instance Methods

get(file[, type])

Access to a file last modified information.

Arguments

  • file {string}: The target file path
  • type {string}: The information type
    • ts: timestamp (default)
    • md5: md5 hash

Return

  • false {boolean}: no such file in collection
  • timestamp or md5 {string}: depends on type

list()

Get all file paths in collection.

Return

  • file paths {array}

addFile(path[, path2 ... pathN])

Add files to collection.

Arguments

  • path {string}: the target file path or glob

Return

  • this {object}: for chain operation

rmFile(path[, path2 ... pathN])

Remove files from collection.

Arguments

  • path {string}: the target file path or glob

Return

  • this {object}: for chain operation

check([path1 ... pathN])

Check collection files changed or not.

Arguments

  • no arguments: check all files.
  • path {string}: the target file path or glob

Return

  • changed files {array}

update([path1 ... pathN])

Update files last modified information.

Arguments

  • no arguments: update all files
  • path {string}: the target file path or glob

Return

  • this {object}: for chain operation

clean()

Clean files in collection which could not found.

Return

  • this {object}: for chain operation

save()

Save collection information onto disk.

Return

  • this {object}: for chain operation

Usage Examples

const Fc = require('file-changed');
const collectionA = new Fc('./path/to/save/info'); // Create collection instance whill will load modified info from that path if that path exists

collectionA.addFile('test/files/file1', 'test/files/file2'); // Add 2 files in collectionA

const fileList = collectionA.list(); // Get file list in collectionA

collectionA.rmFile('test/files/file1'); // Remove 1 file from collectionA

collectionA.addFile('test/files/*'); // Add file by glob

const modifiedList1 = collectionA.check('test/files/file1'); // Check 1 file modified or not
const modifiedList2 = collectionA.check()); // Check all files in collectionA modified or not

collectionA.update('test/files/file1'); // Update last modified info for 1 file
collectionA.update(); // Update last modified info for all files in collectionA

const lastModifiedTS = collectionA.get('test/files/file1'); // Get last modified timestamp for that file
const lastModifiedMD5 = collectionA.get('test/files/file1', 'md5'); // Get last modified md5 for that file

collectionA.save(); // Save collectionA modified info to disk

Test

npm test

License

FOSSA Status