0.1.5 • Published 11 years ago
transform-runner v0.1.5
transform-runner
Accepts a set of files, applies transformations to them and returns JSON output which can be converted into a package.
Usage
var runner = require('transform-runner');
var runner = runTasks({
// new API
tasks: function(filename, done) {
return false; // return true if you queue'd tasks
},
log: Minilog('runner'),
include: [ '/home/foo/index.js' ],
exclude: [
// /^.+(?!\.js).{3}$/i,
'/home/foo/node_modules',
],
jobs: require('os').cpus().length * 2,
log: {
info: function() {},
log: console.log.bind(console),
error: console.error.bind(console)
}
}, function(err, files) {
if (onDone) {
onDone(err, files, runner);
}
});
runner.on('parse-error', function(err) {
console.log('error', err);
});
runner.on('file', function(filename) {
console.log('file', filename);
});
runner.on('hit', function(filename) {
console.log('hit', filename);
});
runner.on('miss', function(filename) {
console.log('miss', filename);
});
runner.on('file-done', function(filename, item) {
console.log('file-done', filename, item);
});API
runner(files, opts = {})
opts:
exclude: a function which takes a single parameter (the full file path) and returns true if the file should be excludedignore: a function which takes a single parameter (the full file path) and returns true if the file should be ignoredtasks(file, done): a function; the done function should be called witherrand the full path to the result of the task execution when donecache: an object with the following methods:get(file): takes a single parameter (the full file path) and returns either an object containing the cached metadata, or false if there is no cached valueset(file, key, value)
log: an object that looks like theconsoleAPI, with the following methods:.info(): log a debug message (works both in the browser and in Node, unlike .debug).log(): log a informational message.error(): log a error message
Include, exclude etc.
Unlike most build systems, transform-runner does not use node-glob because it is slow on moderately-sized trees.
All path specifications are resolved as follows:
- paths beginning with
.or/are resolved against the file system. Relative paths are resolved based on the base path. --include-regexp,--exclude-regexpand--ignore-regexpvalues are parsed as regular expressions usingnew RegExp. They should be quoted if passed in through the command line to avoid the shell from expanding special characters.- There are three kinds of specifications:
- includes are resolved first to produce a set of initial files
- excludes are applied against any matching files, matched files are excluded
- actions are resolved against the result from the includes after applying exclusions.