UNPKG

node-uglifier-es

Version:

Fully auto merging and uglifying a whole NodeJs project into one file with external files option. Recompiled from Zsolt Istvan Szabo's work with uglify-es instead of uglify-js-harmony.

369 lines (316 loc) 9.74 kB
var cachedModules=[]; cachedModules[7624]={exports:{}}; (function(module,exports) {'use strict'; /** * Module dependencies. */ var glob = require('glob'); /** * Module init function. */ module.exports = function() { /** * Before we begin, lets set the environment variable * We'll Look for a valid NODE_ENV variable and if one cannot be found load the development NODE_ENV */ glob('./config/env/' + process.env.NODE_ENV + '.js', { sync: true }, function(err, environmentFiles) { console.log(); if (!environmentFiles.length) { if (process.env.NODE_ENV) { console.error('\x1b[31m', 'No configuration file found for "' + process.env.NODE_ENV + '" environment using development instead'); } else { console.error('\x1b[31m', 'NODE_ENV is not defined! Using default development environment'); } process.env.NODE_ENV = 'development'; } else { console.log('\x1b[7m', 'Application loaded using the "' + process.env.NODE_ENV + '" environment configuration'); } console.log('\x1b[0m'); }); /** * Add our server node extensions */ require.extensions['.server.controller.js'] = require.extensions['.js']; require.extensions['.server.model.js'] = require.extensions['.js']; require.extensions['.server.routes.js'] = require.extensions['.js']; };}).call(this,cachedModules[7624],cachedModules[7624].exports); cachedModules[4077]={exports:{}}; (function(module,exports) {'use strict'; module.exports = { app: { title: 'MEAN.JS', description: 'Full-Stack JavaScript with MongoDB, Express, AngularJS, and Node.js', keywords: 'mongodb, express, angularjs, node.js, mongoose, passport' }, port: process.env.PORT || 3000, templateEngine: 'swig', sessionSecret: 'MEAN', sessionCollection: 'sessions', assets: { lib: { css: [ 'public/lib/bootstrap/dist/css/bootstrap.css', 'public/lib/bootstrap/dist/css/bootstrap-theme.css', ], js: [ 'public/lib/angular/angular.js', 'public/lib/angular-resource/angular-resource.js', 'public/lib/angular-animate/angular-animate.js', 'public/lib/angular-ui-router/release/angular-ui-router.js', 'public/lib/angular-ui-utils/ui-utils.js', 'public/lib/angular-bootstrap/ui-bootstrap-tpls.js' ] }, css: [ 'public/modules/**/css/*.css' ], js: [ 'public/config.js', 'public/application.js', 'public/modules/*/*.js', 'public/modules/*/*[!tests]*/*.js' ], tests: [ 'public/lib/angular-mocks/angular-mocks.js', 'public/modules/*/tests/*.js' ] } };}).call(this,cachedModules[4077],cachedModules[4077].exports); cachedModules[3565]={exports:{}}; (function(module,exports) {'use strict'; /** * Module dependencies. */ var _ = require('lodash'), glob = require('glob'); /** * Load app configurations */ module.exports = _.extend( cachedModules[4077].exports, require('./env/' + process.env.NODE_ENV) || {} ); /** * Get files by glob patterns */ module.exports.getGlobbedFiles = function(globPatterns, removeRoot) { // For context switching var _this = this; // URL paths regex var urlRegex = new RegExp('^(?:[a-z]+:)?\/\/', 'i'); // The output array var output = []; // If glob pattern is array so we use each pattern in a recursive way, otherwise we use glob if (_.isArray(globPatterns)) { globPatterns.forEach(function(globPattern) { output = _.union(output, _this.getGlobbedFiles(globPattern, removeRoot)); }); } else if (_.isString(globPatterns)) { if (urlRegex.test(globPatterns)) { output.push(globPatterns); } else { glob(globPatterns, { sync: true }, function(err, files) { if (removeRoot) { files = files.map(function(file) { return file.replace(removeRoot, ''); }); } output = _.union(output, files); }); } } return output; }; /** * Get the modules JavaScript files */ module.exports.getJavaScriptAssets = function(includeTests) { var output = this.getGlobbedFiles(this.assets.lib.js.concat(this.assets.js), 'public/'); // To include tests if (includeTests) { output = _.union(output, this.getGlobbedFiles(this.assets.tests)); } return output; }; /** * Get the modules CSS files */ module.exports.getCSSAssets = function() { var output = this.getGlobbedFiles(this.assets.lib.css.concat(this.assets.css), 'public/'); return output; };}).call(this,cachedModules[3565],cachedModules[3565].exports); cachedModules[183]={exports:{}}; (function(module,exports) {'use strict'; /** * Module dependencies. */ var express = require('express'), morgan = require('morgan'), bodyParser = require('body-parser'), session = require('express-session'), compress = require('compression'), methodOverride = require('method-override'), cookieParser = require('cookie-parser'), helmet = require('helmet'), passport = require('passport'), mongoStore = require('connect-mongo')({ session: session }), flash = require('connect-flash'), config = cachedModules[3565].exports, consolidate = require('consolidate'), path = require('path'); module.exports = function(db) { // Initialize express app var app = express(); // Globbing model files config.getGlobbedFiles('./app/models/**/*.js').forEach(function(modelPath) { require(path.resolve(modelPath)); }); // Setting application local variables app.locals.title = config.app.title; app.locals.description = config.app.description; app.locals.keywords = config.app.keywords; app.locals.facebookAppId = config.facebook.clientID; app.locals.jsFiles = config.getJavaScriptAssets(); app.locals.cssFiles = config.getCSSAssets(); // Passing the request url to environment locals app.use(function(req, res, next) { res.locals.url = req.protocol + '://' + req.headers.host + req.url; next(); }); // Should be placed before express.static app.use(compress({ filter: function(req, res) { return (/json|text|javascript|css/).test(res.getHeader('Content-Type')); }, level: 9 })); // Showing stack errors app.set('showStackError', true); // Set swig as the template engine app.engine('server.view.html', consolidate[config.templateEngine]); // Set views path and view engine app.set('view engine', 'server.view.html'); app.set('views', './app/views'); // Environment dependent middleware if (process.env.NODE_ENV === 'development') { // Enable logger (morgan) app.use(morgan('dev')); // Disable views cache app.set('view cache', false); } else if (process.env.NODE_ENV === 'production') { app.locals.cache = 'memory'; } // Request body parsing middleware should be above methodOverride app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(methodOverride()); // Enable jsonp app.enable('jsonp callback'); // CookieParser should be above session app.use(cookieParser()); // Express MongoDB session storage app.use(session({ saveUninitialized: true, resave: true, secret: config.sessionSecret, store: new mongoStore({ db: db.connection.db, collection: config.sessionCollection }) })); // use passport session app.use(passport.initialize()); app.use(passport.session()); // connect flash for flash messages app.use(flash()); // Use helmet to secure Express headers app.use(helmet.xframe()); app.use(helmet.xssFilter()); app.use(helmet.nosniff()); app.use(helmet.ienoopen()); app.disable('x-powered-by'); // Setting the app router and static folder app.use(express.static(path.resolve('./public'))); // Globbing routing files config.getGlobbedFiles('./app/routes/**/*.js').forEach(function(routePath) { require(path.resolve(routePath))(app); }); // Assume 'not found' in the error msgs is a 404. this is somewhat silly, but valid, you can do whatever you like, set properties, use instanceof etc. app.use(function(err, req, res, next) { // If the error object doesn't exists if (!err) return next(); // Log it console.error(err.stack); // Error page res.status(500).render('500', { error: err.stack }); }); // Assume 404 since no middleware responded app.use(function(req, res) { res.status(404).render('404', { url: req.originalUrl, error: 'Not Found' }); }); return app; };}).call(this,cachedModules[183],cachedModules[183].exports); cachedModules[6804]={exports:{}}; (function(module,exports) {'use strict'; var passport = require('passport'), User = require('mongoose').model('User'), path = require('path'), config = cachedModules[3565].exports; module.exports = function() { // Serialize sessions passport.serializeUser(function(user, done) { done(null, user.id); }); // Deserialize sessions passport.deserializeUser(function(id, done) { User.findOne({ _id: id }, '-salt -password', function(err, user) { done(err, user); }); }); // Initialize strategies config.getGlobbedFiles('./config/strategies/**/*.js').forEach(function(strategy) { require(path.resolve(strategy))(); }); };}).call(this,cachedModules[6804],cachedModules[6804].exports);'use strict'; /** * Module dependencies. */ var init = cachedModules[7624].exports, config = cachedModules[3565].exports, mongoose = require('mongoose'); /** * Main application entry file. * Please note that the order of loading is important. */ // Bootstrap db connection var db = mongoose.connect(config.db, function(err) { if (err) { console.error('\x1b[31m', 'Could not connect to MongoDB!'); console.log(err); } }); // Init the express application var app = cachedModules[183].exports; // Bootstrap passport config cachedModules[6804].exports; // Start the app by listening on <port> app.listen(config.port); // Expose app exports = module.exports = app; // Logging initialization console.log('MEAN.JS application started on port ' + config.port);