Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / uglify-to-browserify / index.js
1 'use strict'\r
2 \r
3 var fs = require('fs')\r
4 var PassThrough = require('stream').PassThrough\r
5 var Transform = require('stream').Transform\r
6 \r
7 if (typeof Transform === 'undefined') {\r
8   throw new Error('UglifyJS only supports browserify when using node >= 0.10.x')\r
9 }\r
10 \r
11 var cache = {}\r
12 module.exports = transform\r
13 function transform(file) {\r
14   if (!/tools\/node\.js$/.test(file.replace(/\\/g,'/'))) return new PassThrough();\r
15   if (cache[file]) return makeStream(cache[file])\r
16   var uglify = require(file)\r
17   var src = 'var sys = require("util");\nvar MOZ_SourceMap = require("source-map");\nvar UglifyJS = exports;\n' + uglify.FILES.map(function (path) { return fs.readFileSync(path, 'utf8') }).join('\n')\r
18 \r
19   var ast = uglify.parse(src)\r
20   ast.figure_out_scope()\r
21 \r
22   var variables = ast.variables\r
23     .map(function (node, name) {\r
24       return name\r
25     })\r
26 \r
27   src += '\n\n' + variables.map(function (v) { return 'exports.' + v + ' = ' + v + ';' }).join('\n') + '\n\n'\r
28 \r
29   src += 'exports.AST_Node.warn_function = function (txt) { if (typeof console != "undefined" && typeof console.warn === "function") console.warn(txt) }\n\n'\r
30 \r
31   src += 'exports.minify = ' + uglify.minify.toString() + ';\n\n'\r
32   src += 'exports.describe_ast = ' + uglify.describe_ast.toString() + ';'\r
33 \r
34   // TODO: remove once https://github.com/substack/node-browserify/issues/631 is resolved\r
35   src = src.replace(/"for"/g, '"fo" + "r"')\r
36 \r
37   cache[file] = src\r
38   return makeStream(src);\r
39 }\r
40 \r
41 function makeStream(src) {\r
42   var res = new Transform();\r
43   res._transform = function (chunk, encoding, callback) { callback() }\r
44   res._flush = function (callback) {\r
45     res.push(src)\r
46     callback()\r
47   }\r
48   return res;\r
49 }\r