mutiny

Recursively mutates files in a given directory.

npm install mutiny
17 downloads in the last day
21 downloads in the last week
1 199 downloads in the last month

mutiny build status

Recursively mutates files in a given directory.

var through = require('through2');
var mutiny = require('mutiny');

function toUpper(file, content) {
  return through(
    function (chunk, enc, cb) {
      this.push(chunk.toUpperCase());
      cb();
    }
  )
}

var readdirpOpts = { root: __dirname + '/root' };
mutiny({ outdir: __dirname + '/out', transform: [ toUpper ]}, readdirpOpts)
  .on('error', console.error)
  .on('data', function (d) { console.log('\nProcessed:\n', d); })

transform example

# assuming trim-leading is a transform installed as a node_module
mutiny ./root -t ./local-transform/toUpper.js -t trim-leading -o ./out

bin example

Installation

npm install mutiny

API

mutiny(mutinyopts, readopts) → {ReadStream}

Mutates the files of a directory recursively applying specified transform and/or a rename function. The transformed files are saved into the outdir and directory structure is maintained.

Parameters:
Name Type Description
mutinyopts Object
Properties
Name Type Description
outdir: String

the root of the directory to which to write the transformed/renamed files

transform: Array.<(function()|String)>

that transform each file's content

transform function signature: function(String):TransformStream

Note: each transform can be a function or a name of an installed transform or a path to a local module

rename: function

renames each file

signature: function ({String} outfile, {String} outdir, {String} relativeOutfile) : {String} outfile

getOutStream: function

allows overriding the defaultOutStream in case rename is not sufficient

signature: function ({String} outfile, {String} outdir, {String} relativeOutfile) : {WriteStream}

readopts Object

options passed through to readdirp

Properties
Name Type Description
root String

the root of the source directory that needs to be specified

Source:
Returns:

which emits 'error' and or 'data' to update mutiny's progress

Type
ReadStream

transformContent(progress, transforms)

Runs all transforms on the content of all files that are piped into its file stream. Reports progress by pushing into the @see progress stream.

Parameters:
Name Type Description
progress Stream

into which progress data is pushed

transforms Array.<function(String): Stream>

functions that return a transform stream when invoked with a path to a file - signature of each transform: function ({String} file) : {TransformStream}

Source:

generated with docme

More Examples

Please find more examples in the examples directory and consult the tests

License

MIT

npm loves you