UNPKG

js-fox

Version:

Javascript Obfuscator jsfox (jsfoxguard.com)

45 lines (36 loc) 1.14 kB
var async = require('async'); var jsfox = require('../js-fox'); module.exports = function(grunt) { grunt.registerMultiTask( 'jsfox', 'JavaScript Obfuscator via jsfoxguard.com', function() { var options = this.options(); var cc = options.concurrency; cc = /^[0-9]+$/.test(cc) && (cc > 0 && cc < 100) ? cc : 2; var queue = async.queue(function(task, callback) { var content = task.src.map(function(src) { return grunt.file.read(src).replace(/^\#\!.*/, ''); }).join('\n;\n'); jsfox(content, options).then(function(obfuscated) { grunt.file.write(task.dest, obfuscated); }). then(callback). catch(callback); }, cc); queue.drain = this.async(); var files = this.files; for (var i = 0; i < files.length; i++) { queue.push(files[i], (function(current) { return function(err) { if (err) { var src = current.src.join(', '); console.error(('Fatal error occurred when processing ' + src + ':').red); grunt.fail.fatal(err); } grunt.log.ok('Obfuscated: ' + current.dest.cyan); }; })(files[i])); } }); };