var fs = require('fs'),\r
- uglyfyJS = require('uglify-js'),\r
+ uglifyJS = require('uglify-js'),\r
_ = require('lodash'),\r
config = require('./../../../server/configuration.js');\r
\r
config.loadConfig();\r
\r
\r
-\r
-\r
-\r
-/**\r
- * Build the _kiwi.js files\r
- */\r
-\r
-var src = concat([\r
+var source_files = [\r
__dirname + '/app.js',\r
__dirname + '/models/application.js',\r
__dirname + '/models/gateway.js',\r
__dirname + '/models/datastore.js',\r
\r
__dirname + '/applets/settings.js',\r
- __dirname + '/applets/nickserv.js',\r
__dirname + '/applets/chanlist.js',\r
__dirname + '/applets/scripteditor.js',\r
\r
- __dirname + '/utils.js',\r
- __dirname + '/view.js'\r
-]);\r
+ __dirname + '/helpers/utils.js',\r
+\r
+ __dirname + '/views/panel.js',\r
+ __dirname + '/views/channel.js',\r
+ __dirname + '/views/applet.js',\r
+ __dirname + '/views/application.js',\r
+ __dirname + '/views/apptoolbar.js',\r
+ __dirname + '/views/controlbox.js',\r
+ __dirname + '/views/favicon.js',\r
+ __dirname + '/views/mediamessage.js',\r
+ __dirname + '/views/member.js',\r
+ __dirname + '/views/memberlist.js',\r
+ __dirname + '/views/menubox.js',\r
+ __dirname + '/views/networktabs.js',\r
+ __dirname + '/views/nickchangebox.js',\r
+ __dirname + '/views/resizehandler.js',\r
+ __dirname + '/views/serverselect.js',\r
+ __dirname + '/views/statusmessage.js',\r
+ __dirname + '/views/tabs.js',\r
+ __dirname + '/views/topicbar.js',\r
+ __dirname + '/views/userbox.js'\r
+];\r
\r
\r
+/**\r
+ * Build the kiwi.js/kiwi.min.js files\r
+ */\r
+var src = concat(source_files);\r
src = '(function (global, undefined) {\n\n' + src + '\n\n})(window);';\r
\r
\r
fs.writeFileSync(__dirname + '/../kiwi.js', src, FILE_ENCODING);\r
\r
+// Uglify can take take an array of filenames to produce minified code\r
+// but it's not wraped in an IIFE and produces a slightly larger file\r
+//src = uglifyJS.minify(source_files);\r
+\r
+var ast = uglifyJS.parse(src, {filename: 'kiwi.js'});\r
+ast.figure_out_scope();\r
+ast = ast.transform(uglifyJS.Compressor({warnings: false}));\r
+ast.figure_out_scope();\r
+ast.compute_char_frequency();\r
+ast.mangle_names();\r
+src = ast.print_to_string();\r
\r
-src = uglyfyJS.parser.parse(src);\r
-src = uglyfyJS.uglify.ast_mangle(src);\r
-src = uglyfyJS.uglify.ast_squeeze(src);\r
-fs.writeFileSync(__dirname + '/../kiwi.min.js', uglyfyJS.uglify.gen_code(src), FILE_ENCODING);\r
+fs.writeFileSync(__dirname + '/../kiwi.min.js', src, FILE_ENCODING);\r
\r
\r
\r