gulp-optimize-js
Advanced tools
Comparing version 1.0.3 to 1.1.0
52
index.js
var through = require('through2'); | ||
var gutil = require('gulp-util'); | ||
var PluginError = gutil.PluginError; | ||
var optimize = require('optimize-js'); | ||
var isObject = require('lodash/fp/isObject'); | ||
var defaultsDeep = require('lodash/fp/defaultsDeep'); | ||
var defaultOptions = defaultsDeep({ | ||
sourceMaps: false | ||
}); | ||
function setup(opts) { | ||
if (opts && !isObject(opts)) { | ||
gutil.log(gutil.colors.yellow( | ||
'gulp-optimize-j expects an object, non-object provided' | ||
)); | ||
opts = {}; | ||
} | ||
var options = defaultOptions(opts); | ||
return options; | ||
} | ||
// plugin level function (dealing with files) | ||
function gulpOptimizeJs() { | ||
var transform = function(file, encoding, callback) { | ||
if (file.isNull()) { | ||
function gulpOptimizeJs(opts) { | ||
function transform (file, encoding, callback) { | ||
var options = setup(opts || {}); | ||
if (file.isNull()) { | ||
return callback(null, file); | ||
@@ -14,14 +34,24 @@ } | ||
if (file.isStream()) { | ||
var error = new gutil.PluginError('gulp-optimize-js', 'Streaming not supported'); | ||
return callback(error); | ||
return callback( | ||
new gutil.PluginError('gulp-optimize-js', 'Streaming not supported') | ||
); | ||
} | ||
var contents = file.contents.toString("utf8"); | ||
var contents = file.contents.toString('utf8'); | ||
var output = optimize(contents); | ||
try { | ||
var output = optimize(contents, options); | ||
} catch (err) { | ||
return callback( | ||
new gutil.PluginError( | ||
'gulp-optimize-js', | ||
'Unable to optimize. Is this valid JavaScript?' | ||
) | ||
); | ||
} | ||
file.contents = new Buffer(output); | ||
callback(null, file); | ||
}; | ||
callback(null, file); | ||
} | ||
@@ -32,2 +62,2 @@ return through.obj(transform); | ||
// exporting the plugin main function | ||
module.exports = gulpOptimizeJs; | ||
module.exports = gulpOptimizeJs; |
{ | ||
"name": "gulp-optimize-js", | ||
"version": "1.0.3", | ||
"version": "1.1.0", | ||
"description": "", | ||
@@ -22,2 +22,3 @@ "main": "index.js", | ||
"gulp-util": "^3.0.7", | ||
"lodash": "^4.16.2", | ||
"optimize-js": "^1.0.0", | ||
@@ -24,0 +25,0 @@ "through2": "^2.0.1" |
@@ -22,3 +22,3 @@ # gulp-optimize-js | ||
gulp.src('./js/minified.js') | ||
.pipe(optimizejs()) | ||
.pipe(optimizejs(options)) | ||
.pipe(gulp.dest('./dist/')) | ||
@@ -28,2 +28,8 @@ }); | ||
Please consult | ||
[optimize-js](https://github.com/nolanlawson/optimize-js#javascript-api) for | ||
available options. | ||
_Note: Make sure to only pipe JavaScript files into optimizejs!_ | ||
## LICENSE | ||
@@ -30,0 +36,0 @@ |
3808
48
57
4
+ Addedlodash@^4.16.2
+ Addedlodash@4.17.21(transitive)