UNPKG

gulp-ng-templates

Version:

Build all of your angular templates in just one js file using $templateCache provider

83 lines 3.12 kB
"use strict"; 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