diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
commit | de98e0b232509d5f40c135d540a70e415272ff85 (patch) | |
tree | a79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/uglify-to-browserify/index.js | |
parent | e0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff) |
node_modules
Diffstat (limited to 'node_modules/uglify-to-browserify/index.js')
-rw-r--r-- | node_modules/uglify-to-browserify/index.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/node_modules/uglify-to-browserify/index.js b/node_modules/uglify-to-browserify/index.js new file mode 100644 index 000000000..2cea629e6 --- /dev/null +++ b/node_modules/uglify-to-browserify/index.js @@ -0,0 +1,49 @@ +'use strict'
+
+var fs = require('fs')
+var PassThrough = require('stream').PassThrough
+var Transform = require('stream').Transform
+
+if (typeof Transform === 'undefined') {
+ throw new Error('UglifyJS only supports browserify when using node >= 0.10.x')
+}
+
+var cache = {}
+module.exports = transform
+function transform(file) {
+ if (!/tools\/node\.js$/.test(file.replace(/\\/g,'/'))) return new PassThrough();
+ if (cache[file]) return makeStream(cache[file])
+ var uglify = require(file)
+ 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')
+
+ var ast = uglify.parse(src)
+ ast.figure_out_scope()
+
+ var variables = ast.variables
+ .map(function (node, name) {
+ return name
+ })
+
+ src += '\n\n' + variables.map(function (v) { return 'exports.' + v + ' = ' + v + ';' }).join('\n') + '\n\n'
+
+ src += 'exports.AST_Node.warn_function = function (txt) { if (typeof console != "undefined" && typeof console.warn === "function") console.warn(txt) }\n\n'
+
+ src += 'exports.minify = ' + uglify.minify.toString() + ';\n\n'
+ src += 'exports.describe_ast = ' + uglify.describe_ast.toString() + ';'
+
+ // TODO: remove once https://github.com/substack/node-browserify/issues/631 is resolved
+ src = src.replace(/"for"/g, '"fo" + "r"')
+
+ cache[file] = src
+ return makeStream(src);
+}
+
+function makeStream(src) {
+ var res = new Transform();
+ res._transform = function (chunk, encoding, callback) { callback() }
+ res._flush = function (callback) {
+ res.push(src)
+ callback()
+ }
+ return res;
+}
|