.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / ajv / scripts / bundle.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/ajv/scripts/bundle.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/ajv/scripts/bundle.js
new file mode 100644 (file)
index 0000000..e381a76
--- /dev/null
@@ -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]);
+  }
+});