broccoli-tree-walker
v1.0.1
Published
Broccoli wrapper over walk-sync and fs-tree-diff
Downloads
74
Maintainers
Readme
broccoli-tree-walker
Helper base class for Broccoli plugins wraps fs-tree-diff and node-walk-sync providing different methods based off of different file operations.
API
class TreeWalker {
/**
* Virtual method `unlink`: Called when you remove the specified file
*/
virtual unlink(filePath: string, rootPath: string): any
/**
* Virtual method `rmdir`: Called when you remove the specified folder
*/
virtual rmdir(filePath: string, rootPath: string): any
/**
* Virtual method `mkdir`: Called when you create the specified folder
*/
virtual mkdir(filePath: string, rootPath: string): any
/**
* Virtual method `create`: Called when you create the specified file
*/
virtual create(filePath: string, rootPath: string): any
/**
* Virtual method `change`: Called when you update the specified file to reflect changes
*/
virtual change(filePath: string, rootPath: string): any
/**
* Virtal method `nodesChanged` Called when a change has been made to one of the input nodes
*/
virtual nodesChanged(patchResults: Array<FSTree.Patch>): any
}
Options
include
: Entry optionglobs
from node-walk-syncexclude
: Entry optionignore
from node-walk-syncdirectory
: Entry optiondirectories
from node-walk-syncname
,annotation
: Same as broccoli-plugin; see there.
All options except name
and annotation
can also be set on the prototype
instead of being passed into the constructor.
Example Usage
const TreeWalker = require('broccoli-tree-walker');
class FileWriter extends Walker {
_fileContents() {
return `/* some file contents */`;
}
create(filePath) {
const fullFilePath = path.join(this.outputPath, filePath);
return fs.outputFileSync(fullFilePath, this._someFileContents(filePath));
}
unlink(filePath) {
const fullFilePath = path.join(this.outputPath, filePath);
return fs.removeSync(fullFilePath);
}
}