gulp-ng-templates
Version:
Build all of your angular templates in just one js file using $templateCache provider
83 lines • 3.12 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
var path_1 = __importDefault(require("path"));
var gulp_concat_1 = __importDefault(require("gulp-concat"));
var html_minifier_1 = require("html-minifier");
var es = require('event-stream');
var header = require('gulp-header');
var footer = require('gulp-footer');
var lodashTemplate = require('lodash.template');
function templateCache(options) {
return es.map(function (file, callback) {
var template = '$templateCache.put("<%= url %>","<%= contents %>");';
var url;
file.path = path_1["default"].normalize(file.path);
if (typeof options.path === 'function') {
url = path_1["default"].join(options.path(file.path, file.base));
}
else {
url = path_1["default"].join(file.path);
url = url.replace(file.base, '');
}
;
if (process.platform === 'win32') {
url = url.replace(/\\/g, '/');
}
var contents = file.contents.toString();
if (options.htmlMinifier) {
contents = html_minifier_1.minify(contents, options.htmlMinifier);
}
contents = require('js-string-escape')(contents);
file.contents = Buffer.from(lodashTemplate(template)({
url: url,
contents: contents,
file: file
}), 'utf8');
callback(null, file);
});
}
module.exports = function (inputOptions, filename) {
var options = {
htmlMinifier: {
removeComments: true,
collapseWhitespace: true,
preserveLineBreaks: false,
conservativeCollapse: false,
collapseBooleanAttributes: true,
collapseInlineTagWhitespace: true
},
standalone: true,
module: 'templates',
filename: 'templates.min.js',
header: 'angular.module("<%= module %>"<%= standalone %>).run(["$templateCache", function($templateCache) {',
footer: '}]);'
};
if (typeof inputOptions === 'object' && inputOptions !== null) {
options = __assign({}, options, inputOptions);
}
else if (typeof inputOptions === 'string') {
options = __assign({}, options, { module: inputOptions });
}
if (typeof filename !== 'undefined') {
options.filename = filename;
}
return es.pipeline(templateCache(options), gulp_concat_1["default"](options.filename), header(options.header, {
module: options.module,
standalone: (options.standalone ? ', []' : '')
}), footer(options.footer));
};
//# sourceMappingURL=index.js.map
;