| 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/readjs/node_modules/gulp-header/ |
Upload File : |
/* jshint node: true */
'use strict';
/**
* Module dependencies.
*/
var Concat = require('concat-with-sourcemaps');
var extend = require('object-assign');
var through = require('through2');
var gutil = require('gulp-util');
var stream = require('stream');
var path = require('path');
/**
* gulp-header plugin
*/
module.exports = function (headerText, data) {
headerText = headerText || '';
function TransformStream (file, enc, cb) {
var filename;
var concat;
if (typeof file === 'string') {
filename = file;
} else if (typeof file.path === 'string') {
filename = path.basename(file.path);
} else {
filename = '';
}
var template = data === false ? headerText : gutil.template(headerText, extend({file : file, filename: filename}, data));
concat = new Concat(true, filename);
if (file.isBuffer()) {
concat.add(null, new Buffer(template));
}
if (file.isStream()) {
var stream = through();
stream.write(new Buffer(template));
stream.on('error', this.emit.bind(this, 'error'));
file.contents = file.contents.pipe(stream);
this.push(file);
return cb();
}
// add sourcemap
concat.add(file.relative, file.contents, file.sourceMap);
// make sure streaming content is preserved
if (file.contents && !isStream(file.contents)) {
file.contents = concat.content;
}
// apply source map
if (concat.sourceMapping) {
file.sourceMap = JSON.parse(concat.sourceMap);
}
// make sure the file goes through the next gulp plugin
this.push(file);
// tell the stream engine that we are done with this file
cb();
}
return through.obj(TransformStream);
};
/**
* is stream?
*/
function isStream (obj) {
return obj instanceof stream.Stream;
}