fs-effects
A library for composing various file, folder, shell and watch operations in node.
$ npm install fs-effects --save
Example
// creates 'foo.txt' and writes the string 'hello world'.await file'foo.txt' .write'hello world' .exec // creates file 'google.html' and writes content from remote url.await file'google.html' .write_from'http://google.com' .exec // creates a 'dist' folder and merges content from a 'bin' folder// folder and adds a license and readme.await folder'dist' .merge_from'bin' .add'license' .add'readme.md' .exec
Reference
The following outlines the fs-effects surface api for shell
, watch
, folder
, file
. For a more comprehensive description of these functions, refer to the typescript definitions provided with this package. For general example usage, see the tasks.js
file located in this project root.
shellcommand .errfunc // Redirects stderr data to the given function. .exec // (eval) Executes this shell command. .expectexitcode // Sets the expected exitcode for this command. Default is 0. .logfunc // Redirects both stdout and stderr to the given function. .outfunc // Redirects stdout data to the given function. watchpath .timeoutms // Sets a this watchers debounce timeout (default is 250ms) .runfunc // Runs this function when a file or folder changes. .exec // Executes this watch (does not complete) folderpath .addpath // Adds a file to this folder. If the path being added exists, it is overwritten. .copy_tofolder // Copies this folder into the given folder. .contents // Returns the inner contents of this folder (see contents) .copy_tofolder // Copies the contents into the given folder. .move_tofolder // Moves the contents into the given folder. .delete // Deletes the contents of this folder. .exec // Executes effects on these contents. .create // Creates this folder if not exists. .delete // Deletes this folder if exists. .exec // (eval) Executes effects on this folder. .exists // (eval) Returns true if this folder exists. .hashalgo?) // (eval) Returns a hash of this folder with the given algorithm. .merge_fromfolder // Merges the contents from the remote folder into this folder. .move_tofolder // Moves this folder into the given folder. .removename // Removes a file or folder from this folder. .renamenewname // Renames this folder. .size // (eval) Returns the size of this folder in bytes. .stat // (eval) Returns a fs stats object for this folder. filepath .append_frompath // Appends to this file from a remote path | url. If file not exist, create. .appenddata // Appends to this file. If file not exist, create. .copy_tofolder // Copies this file into the given folder. .create // Creates this file if not exists. .delete // Deletes this file if exists. .editfind, replace // Makes a find and replace edit to this file. .exec // (eval) Executes effects on this file. .exists // (eval) Returns true if this file exists. .hashalgo?) // (eval) Returns a hash for this file with the given algorithm. .move_tofolder // Moves this file into the given folder. .prepend_frompath // Prepends to this file from a remote path | url. If file not exist, create. .prependdata // Prepends to this file. If file not exist, create. .readencoding?) // (eval) Returns the contents of this file. .renamenewname // Renames this file. .size // (eval) Returns the size of this file in bytes. .stat // (eval) Returns a fs stats object for this file. .truncate // Truncates this file. If the file does not exist, it is created. .write_frompath // Writes to this file from a remote path | url. If file not exist, create. .writedata // Writes to this file. If the file does not exist, it is created.
Project Tasks
The following npm tasks are supported by this project.
npm run clean # cleans this project. npm run start # starts this project in watch mode. npm run test # runs tests for this project. npm run pack # packages this project.