mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-13 22:15:25 +00:00
update
This commit is contained in:
49
node_modules/uglify-to-browserify/index.js
generated
vendored
Normal file
49
node_modules/uglify-to-browserify/index.js
generated
vendored
Normal file
@ -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;
|
||||
}
|
Reference in New Issue
Block a user