UNPKG

asset-rack

Version:

Static Web Framework for Nodejs

59 lines (47 loc) 2.08 kB
// 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);