asset-rack
Version:
Static Web Framework for Nodejs
59 lines (47 loc) • 2.08 kB
JavaScript
// Generated by CoffeeScript 1.6.3
(function() {
var Asset, fs, pathutil, uglify, _ref,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
fs = require('fs');
pathutil = require('path');
uglify = require('uglify-js');
Asset = require('../index').Asset;
exports.AngularTemplatesAsset = (function(_super) {
__extends(AngularTemplatesAsset, _super);
function AngularTemplatesAsset() {
_ref = AngularTemplatesAsset.__super__.constructor.apply(this, arguments);
return _ref;
}
AngularTemplatesAsset.prototype.mimetype = 'text/javascript';
AngularTemplatesAsset.prototype.create = function(options) {
var file, files, javascript, template, templates, _i, _len;
if (options.dirname == null) {
options.dirname = options.directory;
}
this.dirname = pathutil.resolve(options.dirname);
this.toWatch = this.dirname;
this.compress = options.compress || false;
files = fs.readdirSync(this.dirname);
templates = [];
for (_i = 0, _len = files.length; _i < _len; _i++) {
file = files[_i];
if (!(file.match(/\.html$/))) {
continue;
}
template = fs.readFileSync(pathutil.join(this.dirname, file), 'utf8').replace(/\\/g, '\\\\').replace(/\n/g, '\\n').replace(/'/g, '\\\'');
templates.push("$templateCache.put('" + file + "', '" + template + "')");
}
javascript = "var angularTemplates = function($templateCache) {\n" + (templates.join('\n')) + "}";
if (options.compress === true) {
this.contents = uglify.minify(javascript, {
fromString: true
}).code;
} else {
this.contents = javascript;
}
return this.emit('created');
};
return AngularTemplatesAsset;
})(Asset);
}).call(this);