summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/ajv/scripts/bundle.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/node_modules/ajv/scripts/bundle.js')
-rw-r--r--tools/node_modules/eslint/node_modules/ajv/scripts/bundle.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/ajv/scripts/bundle.js b/tools/node_modules/eslint/node_modules/ajv/scripts/bundle.js
new file mode 100644
index 0000000000..e381a762d2
--- /dev/null
+++ b/tools/node_modules/eslint/node_modules/ajv/scripts/bundle.js
@@ -0,0 +1,61 @@
+'use strict';
+
+var fs = require('fs')
+ , path = require('path')
+ , browserify = require('browserify')
+ , uglify = require('uglify-js');
+
+var pkg = process.argv[2]
+ , standalone = process.argv[3]
+ , compress = process.argv[4];
+
+var packageDir = path.join(__dirname, '..');
+if (pkg != '.') packageDir = path.join(packageDir, 'node_modules', pkg);
+
+var json = require(path.join(packageDir, 'package.json'));
+
+var distDir = path.join(__dirname, '..', 'dist');
+if (!fs.existsSync(distDir)) fs.mkdirSync(distDir);
+
+var bOpts = {};
+if (standalone) bOpts.standalone = standalone;
+
+browserify(bOpts)
+.require(path.join(packageDir, json.main), {expose: json.name})
+.bundle(function (err, buf) {
+ if (err) {
+ console.error('browserify error:', err);
+ process.exit(1);
+ }
+
+ var outputFile = path.join(distDir, json.name);
+ var uglifyOpts = {
+ warnings: true,
+ compress: {},
+ output: {
+ preamble: '/* ' + json.name + ' ' + json.version + ': ' + json.description + ' */'
+ }
+ };
+ if (compress) {
+ var compressOpts = compress.split(',');
+ for (var i=0, il = compressOpts.length; i<il; ++i) {
+ var pair = compressOpts[i].split('=');
+ uglifyOpts.compress[pair[0]] = pair.length < 1 || pair[1] != 'false';
+ }
+ }
+ if (standalone) {
+ uglifyOpts.sourceMap = {
+ filename: json.name + '.min.js',
+ url: json.name + '.min.js.map'
+ };
+ }
+
+ var result = uglify.minify(buf.toString(), uglifyOpts);
+ fs.writeFileSync(outputFile + '.min.js', result.code);
+ if (result.map) fs.writeFileSync(outputFile + '.min.js.map', result.map);
+ if (standalone) fs.writeFileSync(outputFile + '.bundle.js', buf);
+ if (result.warnings) {
+ for (var j=0, jl = result.warnings.length; j<jl; ++j)
+ console.warn('UglifyJS warning:', result.warnings[j]);
+ }
+});