diff options
Diffstat (limited to 'node_modules/source-map-support/build.js')
-rwxr-xr-x | node_modules/source-map-support/build.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/node_modules/source-map-support/build.js b/node_modules/source-map-support/build.js new file mode 100755 index 000000000..998405c1c --- /dev/null +++ b/node_modules/source-map-support/build.js @@ -0,0 +1,79 @@ +#!/usr/bin/env node + +var fs = require('fs'); +var path = require('path'); +var querystring = require('querystring'); +var child_process = require('child_process'); + +var browserify = path.resolve(path.join('node_modules', '.bin', 'browserify')); +var webpack = path.resolve(path.join('node_modules', '.bin', 'webpack')); +var coffee = path.resolve(path.join('node_modules', '.bin', 'coffee')); + +function run(command, callback) { + console.log(command); + child_process.exec(command, callback); +} + +// Use browserify to package up source-map-support.js +fs.writeFileSync('.temp.js', 'sourceMapSupport = require("./source-map-support");'); +run(browserify + ' .temp.js', function(error, stdout) { + if (error) throw error; + + // Wrap the code so it works both as a normal <script> module and as an AMD module + var header = [ + '/*', + ' * Support for source maps in V8 stack traces', + ' * https://github.com/evanw/node-source-map-support', + ' */', + ].join('\n'); + var code = [ + '(this["define"] || function(name, callback) { this["sourceMapSupport"] = callback(); })("browser-source-map-support", function(sourceMapSupport) {', + stdout.replace(/\bbyte\b/g, 'bite').replace(new RegExp(__dirname + '/', 'g'), '').replace(/@license/g, 'license'), + 'return sourceMapSupport});', + ].join('\n'); + + // Use the online Google Closure Compiler service for minification + fs.writeFileSync('.temp.js', querystring.stringify({ + compilation_level: 'SIMPLE_OPTIMIZATIONS', + output_info: 'compiled_code', + output_format: 'text', + js_code: code + })); + run('curl -d @.temp.js "http://closure-compiler.appspot.com/compile"', function(error, stdout) { + if (error) throw error; + var code = header + '\n' + stdout; + fs.unlinkSync('.temp.js'); + fs.writeFileSync('browser-source-map-support.js', code); + fs.writeFileSync('amd-test/browser-source-map-support.js', code); + }); +}); + +// Build the AMD test +run(coffee + ' --map --compile amd-test/script.coffee', function(error) { + if (error) throw error; +}); + +// Build the browserify test +run(coffee + ' --map --compile browserify-test/script.coffee', function(error) { + if (error) throw error; + run(browserify + ' --debug browserify-test/script.js > browserify-test/compiled.js', function(error) { + if (error) throw error; + }) +}); + +// Build the browser test +run(coffee + ' --map --compile browser-test/script.coffee', function(error) { + if (error) throw error; +}); + +// Build the header test +run(coffee + ' --map --compile header-test/script.coffee', function(error) { + if (error) throw error; + var contents = fs.readFileSync('header-test/script.js', 'utf8'); + fs.writeFileSync('header-test/script.js', contents.replace(/\/\/# sourceMappingURL=.*/g, '')) +}); + +// Build the webpack test +child_process.exec(webpack, {cwd: 'webpack-test'}, function(error) { + if (error) throw error; +}); |