index.coffeelib/ | |
---|---|
{dir, log} = console
{inspect} = require 'util'
async = require '../node_modules/async'
{minify} = require '../node_modules/uglify-js'
file = require '../lib/file'
{sourcesToFiles} = require('../lib/listfiles') | |
EventsReady.js emits these events :
| r = |
compile(sources, [options], callback(err, minified))Compile all .js files from the specified sources (can be directories and/or files)
| compile: (sources, options, callback)->
[callback, options] = [options, {}] if typeof options is 'function'
sourcesToFiles sources, options, (err, files)->
return callback(err) if err?
|
Wrapper for analyze | analyzeWrapper = (filename, callback)->
file.analyze filename, options, callback
async.forEach files, analyzeWrapper, (err)->
return callback(err) if err?
r.uglify sources, options, callback
|
uglify(sources, options, callback)Uglify all files from the sources
| uglify: (sources, options, callback)->
allFilesOptions = {recursive:(options.recursive ? true)}
sourcesToFiles sources, allFilesOptions, (err, allFiles)->
return callback(err) if err?
|
If there are no files, throw an error | return callback('There are no files to readyjsize') if allFiles.length == 0
|
If there is a listener for 'file.uglify', uglify each file individually | if r.listeners('file.uglify').length > 0
async.forEach allFiles, r.uglifyFile, ->
r.uglifyBatch allFiles, callback
else
r.uglifyBatch allFiles, callback
uglifyBatch: (files, callback)->
min = minify files
callback null, min.code
uglifyFile: (filename, callback)->
minified = minify filename
r.emit 'file.uglify', filename, minified
callback null, minified
r[k] = func for k, func of require('events').EventEmitter.prototype |
Re-emit the analyze event from file | file.on 'analyze', (file, jshint)->
r.emit 'analyze', file, jshint
module.exports = r
|