包详细信息

file-changed

poppinlp2.8kMIT1.4.1

A node module to check and store file changed.

newer, node, file, changed

自述文件

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

更新日志

CHANGELOG

  • 1.3.0
    • Update dependencies to fix security issue.
    • Add prettier to format.
  • 1.2.1
    • Update test coverage to 100%.
    • Update npm publish tar to ignore some files.
  • 1.2.0
    • Support glob for check and update.
    • Reconstruct test case.
  • 1.1.2
    • Remove shrinkwrap file in publish package.
  • 1.1.0
    • Support glob for addFile and rmFile.
  • 1.0.0 [BREAK CHANGE]
    • This package will export a class now, you should new a instance to use it.
    • The constructor accepts a file path to store change database.
    • Rename autoClean to clean.
    • Reconstruct by es2015 syntax.
    • Add eslint for dev js lint.
    • Use ava as test framework instead of mocha.
    • Only test last stable and last LTS node version for CI.
  • 0.1.0
    • Init.