aboutsummaryrefslogtreecommitdiff
path: root/docs/build/node_modules/hogan.js/tools/release.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/build/node_modules/hogan.js/tools/release.js')
-rw-r--r--docs/build/node_modules/hogan.js/tools/release.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/docs/build/node_modules/hogan.js/tools/release.js b/docs/build/node_modules/hogan.js/tools/release.js
new file mode 100644
index 000000000..dda0d3f87
--- /dev/null
+++ b/docs/build/node_modules/hogan.js/tools/release.js
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2011 Twitter, Inc.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var fs = require('fs');
+var path = require('path');
+var Hogan = require(__dirname + '/../lib/hogan');
+var minlicense = '/**\n* @preserve Copyright 2012 Twitter, Inc.\n* @license http://www.apache.org/licenses/LICENSE-2.0.txt\n*/\n';
+
+function read(path) {
+ return fs.readFileSync(path).toString()
+}
+
+// Good enough for little js files
+function copy(src, dst) {
+ return fs.writeFileSync(dst, read(src));
+}
+
+function uglify(src, dst) {
+ var jsp = require("uglify-js").parser;
+ var pro = require("uglify-js").uglify;
+ var orig_code = read(src);
+ var ast = jsp.parse(orig_code); // parse code and get the initial AST
+ ast = pro.ast_mangle(ast); // get a new AST with mangled names
+ ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
+ fs.writeFileSync(dst, minlicense + pro.gen_code(ast));
+}
+
+var packageJSON = JSON.parse(read('package.json'));
+var version = packageJSON.version.substring(0, packageJSON.version.indexOf('-'));
+
+function removeFirstComment(text) {
+ return text.substring(text.indexOf('*/') + 2);
+}
+
+var context = {
+ template: removeFirstComment(read(__dirname + '/../lib/template.js')),
+ compiler: removeFirstComment(read(__dirname + '/../lib/compiler.js'))
+};
+
+var wrapperPath = '/../wrappers/';
+var wrappers = fs.readdirSync(__dirname + wrapperPath).map(function(f) {
+ return __dirname + wrapperPath + f;
+});
+
+var distPath = __dirname + '/../dist/';
+wrappers.forEach(function(wrapper) {
+ var tail = path.basename(wrapper, '.mustache');
+ var target = distPath + 'hogan-' + version + '.' + tail;
+ var uglified = distPath + 'hogan-' + version + '.min.' + tail;
+ fs.writeFileSync(target, Hogan.compile(read(wrapper)).render(context));
+ uglify(target, uglified);
+});
+
+// Also release Hogan.Template on its own.
+var templateTarget = distPath + 'template-' + version + '.js';
+fs.writeFileSync(templateTarget, read(__dirname + '/../lib/template.js'));
+uglify(templateTarget, distPath + 'template-' + version + '.min.js');
+
+// Add packageJSON to node distribution
+packageJSON.version = version;
+fs.writeFileSync(__dirname + '/../dist/nodejs/package.json',
+ JSON.stringify(packageJSON, null, " "));