File tree comparison and synchronization for Node.js!
Installation
$ npm install treediff
Instantiate like so:
var TreeDiff = require('treediff');
var treediff = new TreeDiff();
Features
- Map: Turn a file tree into universal a JSON structure regardless of its origin
- Compare: Reveal modifications, addtions and deletions between two file trees
- Synchronize: Transfer modifications, additions and deletions between two file trees
Methods
.compare(mapA, mapB, callback)
Will compare one file location with another one.
Arguments
-
mapA
(Object) - The source to apply changes to-
type
(String) - The type of the map. Default is "local" -
path
(String) - The path to the root folder of the source
-
-
mapB
(Object) - The target to apply changes from-
type
(String) - The type of the map. Default is "local" -
path
(String) - The path to the root folder of the source
-
-
callback(err, difference)
(Function) - The callback that is called when comparison is complete-
err
(Error) - Any error that may occur during comparison -
difference
(Object) - Holds information about which files were added, modified and deleted-
added
(Array) - Files that are to be added to source -
modified
(Array) - Files that are to be modified on source -
deleted
(Array) - Files that are to be deleted on source -
total
(Number) - The total amount of differences
-
-
Example
var folderA = {
type: 'local',
path: 'path/to/folder-a'
};
var folderB = {
type: 'local',
path: 'path/to/folder-b'
};
treediff.compare(folderA, folderB, function(err, differences){
// ...
});
.sync(mapA, mapB, callback)
Will apply the differences from mapB to mapA.
Arguments
-
mapA
(Object) - The source to apply changes to-
type
(String) - The type of the map. Default is "local" -
path
(String) - The path to the root folder of the source
-
-
mapB
(Object) - The target to apply changes from-
type
(String) - The type of the map. Default is "local" -
path
(String) - The path to the root folder of the source
-
-
callback(err)
(Function) - The callback that is called when synchronization is complete-
err
(Error) - Any error that may occur during synchronization
-
Example
var folderA = {
type: 'local',
path: 'path/to/folder-a'
};
var folderB = {
type: 'local',
path: 'path/to/folder-b'
};
treediff.sync(folderA, folderB, function(err){
// ...
});
.registerFilter(filter)
Adds a filter to exlude entries from the comparison process. The filter will be evaluated for each entry as a glob expression. As an example, **/.DS_Store
is applied by default.
Arguments
-
filter
(String) - The glob expression string to exclude entries by.
Example
// Exclude entire folder
treediff.registerFilter('**/Folder-to-exclude/**');
// Exclude all MS Word documents
treediff.registerFilter('**/*.docx');