mirror of
https://github.com/owncloudarchive/contacts.git
synced 2024-12-02 14:24:10 +01:00
8c3d7ccdba
Remove old combobox user bower for onfontresize Add jcrop + md5 Add files to scrutinizer ignore list Remove misplaced text Selected the right MultiSelect library via bower Move bower dependencies to correct location
85 lines
3.2 KiB
JavaScript
Executable File
85 lines
3.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
/*
|
|
* JavaScript Templates Compiler 2.4.0
|
|
* https://github.com/blueimp/JavaScript-Templates
|
|
*
|
|
* Copyright 2011, Sebastian Tschan
|
|
* https://blueimp.net
|
|
*
|
|
* Licensed under the MIT license:
|
|
* http://www.opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/*jslint nomen: true, stupid: true */
|
|
/*global require, __dirname, process, console */
|
|
|
|
(function () {
|
|
"use strict";
|
|
var tmpl = require("./tmpl.js").tmpl,
|
|
fs = require("fs"),
|
|
path = require("path"),
|
|
uglifyJS = require("uglify-js"),
|
|
// Retrieve the content of the minimal runtime:
|
|
runtime = fs.readFileSync(__dirname + "/runtime.js", "utf8"),
|
|
// A regular expression to parse templates from script tags in a HTML page:
|
|
regexp = /<script( id="([\w\-]+)")? type="text\/x-tmpl"( id="([\w\-]+)")?>([\s\S]+?)<\/script>/gi,
|
|
// A regular expression to match the helper function names:
|
|
helperRegexp = new RegExp(
|
|
tmpl.helper.match(/\w+(?=\s*=\s*function\s*\()/g).join("\\s*\\(|") + "\\s*\\("
|
|
),
|
|
// A list to store the function bodies:
|
|
list = [],
|
|
code;
|
|
// Extend the Templating engine with a print method for the generated functions:
|
|
tmpl.print = function (str) {
|
|
// Only add helper functions if they are used inside of the template:
|
|
var helper = helperRegexp.test(str) ? tmpl.helper : "",
|
|
body = str.replace(tmpl.regexp, tmpl.func);
|
|
if (helper || (/_e\s*\(/.test(body))) {
|
|
helper = "_e=tmpl.encode" + helper + ",";
|
|
}
|
|
return "function(" + tmpl.arg + ",tmpl){" +
|
|
("var " + helper + "_s='" + body + "';return _s;")
|
|
.split("_s+='';").join("") + "}";
|
|
};
|
|
// Loop through the command line arguments:
|
|
process.argv.forEach(function (file, index) {
|
|
var listLength = list.length,
|
|
stats,
|
|
content,
|
|
result,
|
|
id;
|
|
// Skipt the first two arguments, which are "node" and the script:
|
|
if (index > 1) {
|
|
stats = fs.statSync(file);
|
|
if (!stats.isFile()) {
|
|
console.error(file + ' is not a file.');
|
|
return;
|
|
}
|
|
content = fs.readFileSync(file, "utf8");
|
|
while (true) {
|
|
// Find templates in script tags:
|
|
result = regexp.exec(content);
|
|
if (!result) {
|
|
break;
|
|
}
|
|
id = result[2] || result[4];
|
|
list.push("'" + id + "':" + tmpl.print(result[5]));
|
|
}
|
|
if (listLength === list.length) {
|
|
// No template script tags found, use the complete content:
|
|
id = path.basename(file, path.extname(file));
|
|
list.push("'" + id + "':" + tmpl.print(content));
|
|
}
|
|
}
|
|
});
|
|
if (!list.length) {
|
|
console.error('Missing input file.');
|
|
return;
|
|
}
|
|
// Combine the generated functions as cache of the minimal runtime:
|
|
code = runtime.replace("{}", "{" + list.join(",") + "}");
|
|
// Generate the minified code and print it to the console output:
|
|
console.log(uglifyJS.minify(code, {fromString: true}).code);
|
|
}());
|