| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/gulp-angular-templatecache/ |
Upload File : |
var es = require('event-stream');
var path = require('path');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var header = require('gulp-header');
var footer = require('gulp-footer');
var jsesc = require('jsesc');
/**
* "constants"
*/
var TEMPLATE_HEADER = 'angular.module(\'<%= module %>\'<%= standalone %>).run([\'$templateCache\', function($templateCache) {';
var TEMPLATE_BODY = '$templateCache.put(\'<%= url %>\',\'<%= contents %>\');';
var TEMPLATE_FOOTER = '}]);';
var DEFAULT_FILENAME = 'templates.js';
var DEFAULT_MODULE = 'templates';
var MODULE_TEMPLATES = {
requirejs: {
header: 'define([\'angular\'], function(angular) { \'use strict\'; return ',
footer: '});'
},
browserify: {
header: '\'use strict\'; module.exports = '
},
es6: {
header: 'import angular from \'angular\'; export default ',
},
iife: {
header: '(function(){',
footer: '})();'
}
};
/**
* Add files to templateCache.
*/
function templateCacheFiles(root, base, templateBody, transformUrl) {
return function templateCacheFile(file, callback) {
if (file.processedByTemplateCache) {
return callback(null, file);
}
var template = templateBody || TEMPLATE_BODY;
var url;
file.path = path.normalize(file.path);
/**
* Rewrite url
*/
if (typeof base === 'function') {
url = path.join(root, base(file));
} else {
url = path.join(root, file.path.replace(base || file.base, ''));
}
if (root === '.' || root.indexOf('./') === 0) {
url = './' + url;
}
if (typeof transformUrl === 'function') {
url = transformUrl(url);
}
/**
* Normalize url (win only)
*/
if (process.platform === 'win32') {
url = url.replace(/\\/g, '/');
}
/**
* Create buffer
*/
file.contents = new Buffer(gutil.template(template, {
url: url,
contents: jsesc(file.contents.toString('utf8')),
file: file
}));
file.processedByTemplateCache = true;
callback(null, file);
};
}
/**
* templateCache a stream of files.
*/
function templateCacheStream(root, base, templateBody, transformUrl) {
/**
* Set relative base
*/
if (typeof base !== 'function' && base && base.substr(-1) !== path.sep) {
base += path.sep;
}
/**
* templateCache files
*/
return es.map(templateCacheFiles(root, base, templateBody, transformUrl));
}
/**
* Wrap templateCache with module system template.
*/
function wrapInModule(moduleSystem) {
var moduleTemplate = MODULE_TEMPLATES[moduleSystem];
if (!moduleTemplate) {
return gutil.noop();
}
return es.pipeline(
header(moduleTemplate.header || ''),
footer(moduleTemplate.footer || '')
);
}
/**
* Concatenates and registers AngularJS templates in the $templateCache.
*
* @param {string} [filename='templates.js']
* @param {object} [options]
*/
function templateCache(filename, options) {
/**
* Prepare options
*/
if (typeof filename === 'string') {
options = options || {};
} else {
options = filename || {};
filename = options.filename || DEFAULT_FILENAME;
}
/**
* Normalize moduleSystem option
*/
if (options.moduleSystem) {
options.moduleSystem = options.moduleSystem.toLowerCase();
}
/**
* Prepare header / footer
*/
var templateHeader = options.templateHeader || TEMPLATE_HEADER;
var templateFooter = options.templateFooter || TEMPLATE_FOOTER;
/**
* Build templateCache
*/
return es.pipeline(
templateCacheStream(options.root || '', options.base, options.templateBody, options.transformUrl),
concat(filename),
header(templateHeader, {
module: options.module || DEFAULT_MODULE,
standalone: options.standalone ? ', []' : ''
}),
footer(templateFooter, {
module: options.module || DEFAULT_MODULE
}),
wrapInModule(options.moduleSystem)
);
}
/**
* Expose templateCache
*/
module.exports = templateCache;