1.0.1 • Published 4 years ago

broccoli-tree-walker v1.0.1

Weekly downloads
152
License
MIT
Repository
github
Last release
4 years ago

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

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);
  }
}