57 lines
1.4 KiB
JavaScript
Executable File
57 lines
1.4 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
var path = require('path');
|
|
|
|
var AWS = require('../index');
|
|
|
|
var license = [
|
|
'// AWS SDK for JavaScript v' + AWS.VERSION,
|
|
'// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.',
|
|
'// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt'
|
|
].join('\n') + '\n';
|
|
|
|
function minify(code) {
|
|
var uglify = require('uglify-js');
|
|
var minified = uglify.minify(code, {fromString: true});
|
|
return minified.code;
|
|
}
|
|
|
|
function build(options, callback) {
|
|
if (arguments.length === 1) {
|
|
callback = options;
|
|
options = {};
|
|
}
|
|
|
|
var img = require('insert-module-globals');
|
|
img.vars.process = function() { return '{browser:true}'; };
|
|
|
|
if (options.services) process.env.AWS_SERVICES = options.services;
|
|
|
|
var browserify = require('browserify');
|
|
var brOpts = { basedir: path.resolve(__dirname, '..') };
|
|
browserify(brOpts).add('./').ignore('domain').bundle(function(err, data) {
|
|
if (err) return callback(err);
|
|
|
|
var code = (data || '').toString();
|
|
if (options.minify) code = minify(code);
|
|
|
|
code = license + code;
|
|
callback(null, code);
|
|
});
|
|
}
|
|
|
|
// run if we called this tool directly
|
|
if (require.main === module) {
|
|
var opts = {
|
|
services: process.argv[2] || process.env.SERVICES,
|
|
minify: process.env.MINIFY ? true : false
|
|
};
|
|
build(opts, function(err, code) {
|
|
if (err) console.error(err.message);
|
|
else console.log(code);
|
|
});
|
|
}
|
|
|
|
build.license = license;
|
|
module.exports = build;
|