Feat: import work and verify compilation
This commit is contained in:
130
theme/node_modules/gulp-util/lib/PluginError.js
generated
vendored
Normal file
130
theme/node_modules/gulp-util/lib/PluginError.js
generated
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
var util = require('util');
|
||||
var arrayDiffer = require('array-differ');
|
||||
var arrayUniq = require('array-uniq');
|
||||
var chalk = require('chalk');
|
||||
var objectAssign = require('object-assign');
|
||||
|
||||
var nonEnumberableProperties = ['name', 'message', 'stack'];
|
||||
var propertiesNotToDisplay = nonEnumberableProperties.concat(['plugin', 'showStack', 'showProperties', '__safety', '_stack']);
|
||||
|
||||
// wow what a clusterfuck
|
||||
var parseOptions = function(plugin, message, opt) {
|
||||
opt = opt || {};
|
||||
if (typeof plugin === 'object') {
|
||||
opt = plugin;
|
||||
} else {
|
||||
if (message instanceof Error) {
|
||||
opt.error = message;
|
||||
} else if (typeof message === 'object') {
|
||||
opt = message;
|
||||
} else {
|
||||
opt.message = message;
|
||||
}
|
||||
opt.plugin = plugin;
|
||||
}
|
||||
|
||||
return objectAssign({
|
||||
showStack: false,
|
||||
showProperties: true
|
||||
}, opt);
|
||||
};
|
||||
|
||||
function PluginError(plugin, message, opt) {
|
||||
if (!(this instanceof PluginError)) throw new Error('Call PluginError using new');
|
||||
|
||||
Error.call(this);
|
||||
|
||||
var options = parseOptions(plugin, message, opt);
|
||||
var self = this;
|
||||
|
||||
// if options has an error, grab details from it
|
||||
if (options.error) {
|
||||
// These properties are not enumerable, so we have to add them explicitly.
|
||||
arrayUniq(Object.keys(options.error).concat(nonEnumberableProperties))
|
||||
.forEach(function(prop) {
|
||||
self[prop] = options.error[prop];
|
||||
});
|
||||
}
|
||||
|
||||
var properties = ['name', 'message', 'fileName', 'lineNumber', 'stack', 'showStack', 'showProperties', 'plugin'];
|
||||
|
||||
// options object can override
|
||||
properties.forEach(function(prop) {
|
||||
if (prop in options) this[prop] = options[prop];
|
||||
}, this);
|
||||
|
||||
// defaults
|
||||
if (!this.name) this.name = 'Error';
|
||||
|
||||
if (!this.stack) {
|
||||
// Error.captureStackTrace appends a stack property which relies on the toString method of the object it is applied to.
|
||||
// Since we are using our own toString method which controls when to display the stack trace if we don't go through this
|
||||
// safety object, then we'll get stack overflow problems.
|
||||
var safety = {
|
||||
toString: function() {
|
||||
return this._messageWithDetails() + '\nStack:';
|
||||
}.bind(this)
|
||||
};
|
||||
Error.captureStackTrace(safety, arguments.callee || this.constructor);
|
||||
this.__safety = safety;
|
||||
}
|
||||
|
||||
if (!this.plugin) throw new Error('Missing plugin name');
|
||||
if (!this.message) throw new Error('Missing error message');
|
||||
}
|
||||
|
||||
util.inherits(PluginError, Error);
|
||||
|
||||
PluginError.prototype._messageWithDetails = function() {
|
||||
var messageWithDetails = 'Message:\n ' + this.message;
|
||||
var details = this._messageDetails();
|
||||
|
||||
if (details !== '') {
|
||||
messageWithDetails += '\n' + details;
|
||||
}
|
||||
|
||||
return messageWithDetails;
|
||||
};
|
||||
|
||||
PluginError.prototype._messageDetails = function() {
|
||||
if (!this.showProperties) {
|
||||
return '';
|
||||
}
|
||||
|
||||
var properties = arrayDiffer(Object.keys(this), propertiesNotToDisplay);
|
||||
|
||||
if (properties.length === 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
var self = this;
|
||||
properties = properties.map(function stringifyProperty(prop) {
|
||||
return ' ' + prop + ': ' + self[prop];
|
||||
});
|
||||
|
||||
return 'Details:\n' + properties.join('\n');
|
||||
};
|
||||
|
||||
PluginError.prototype.toString = function () {
|
||||
var sig = chalk.red(this.name) + ' in plugin \'' + chalk.cyan(this.plugin) + '\'';
|
||||
var detailsWithStack = function(stack) {
|
||||
return this._messageWithDetails() + '\nStack:\n' + stack;
|
||||
}.bind(this);
|
||||
|
||||
var msg;
|
||||
if (this.showStack) {
|
||||
if (this.__safety) { // There is no wrapped error, use the stack captured in the PluginError ctor
|
||||
msg = this.__safety.stack;
|
||||
} else if (this._stack) {
|
||||
msg = detailsWithStack(this._stack);
|
||||
} else { // Stack from wrapped error
|
||||
msg = detailsWithStack(this.stack);
|
||||
}
|
||||
} else {
|
||||
msg = this._messageWithDetails();
|
||||
}
|
||||
|
||||
return sig + '\n' + msg;
|
||||
};
|
||||
|
||||
module.exports = PluginError;
|
||||
15
theme/node_modules/gulp-util/lib/buffer.js
generated
vendored
Normal file
15
theme/node_modules/gulp-util/lib/buffer.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
var through = require('through2');
|
||||
|
||||
module.exports = function(fn) {
|
||||
var buf = [];
|
||||
var end = function(cb) {
|
||||
this.push(buf);
|
||||
cb();
|
||||
if(fn) fn(null, buf);
|
||||
};
|
||||
var push = function(data, enc, cb) {
|
||||
buf.push(data);
|
||||
cb();
|
||||
};
|
||||
return through.obj(push, end);
|
||||
};
|
||||
11
theme/node_modules/gulp-util/lib/combine.js
generated
vendored
Normal file
11
theme/node_modules/gulp-util/lib/combine.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
var pipeline = require('multipipe');
|
||||
|
||||
module.exports = function(){
|
||||
var args = arguments;
|
||||
if (args.length === 1 && Array.isArray(args[0])) {
|
||||
args = args[0];
|
||||
}
|
||||
return function(){
|
||||
return pipeline.apply(pipeline, args);
|
||||
};
|
||||
};
|
||||
4
theme/node_modules/gulp-util/lib/env.js
generated
vendored
Normal file
4
theme/node_modules/gulp-util/lib/env.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
var parseArgs = require('minimist');
|
||||
var argv = parseArgs(process.argv.slice(2));
|
||||
|
||||
module.exports = argv;
|
||||
7
theme/node_modules/gulp-util/lib/isBuffer.js
generated
vendored
Normal file
7
theme/node_modules/gulp-util/lib/isBuffer.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
var buf = require('buffer');
|
||||
var Buffer = buf.Buffer;
|
||||
|
||||
// could use Buffer.isBuffer but this is the same exact thing...
|
||||
module.exports = function(o) {
|
||||
return typeof o === 'object' && o instanceof Buffer;
|
||||
};
|
||||
3
theme/node_modules/gulp-util/lib/isNull.js
generated
vendored
Normal file
3
theme/node_modules/gulp-util/lib/isNull.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
module.exports = function(v) {
|
||||
return v === null;
|
||||
};
|
||||
5
theme/node_modules/gulp-util/lib/isStream.js
generated
vendored
Normal file
5
theme/node_modules/gulp-util/lib/isStream.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
var Stream = require('stream').Stream;
|
||||
|
||||
module.exports = function(o) {
|
||||
return !!o && o instanceof Stream;
|
||||
};
|
||||
14
theme/node_modules/gulp-util/lib/log.js
generated
vendored
Normal file
14
theme/node_modules/gulp-util/lib/log.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
var hasGulplog = require('has-gulplog');
|
||||
|
||||
module.exports = function(){
|
||||
if(hasGulplog()){
|
||||
// specifically deferring loading here to keep from registering it globally
|
||||
var gulplog = require('gulplog');
|
||||
gulplog.info.apply(gulplog, arguments);
|
||||
} else {
|
||||
// specifically defering loading because it might not be used
|
||||
var fancylog = require('fancy-log');
|
||||
fancylog.apply(null, arguments);
|
||||
}
|
||||
return this;
|
||||
};
|
||||
5
theme/node_modules/gulp-util/lib/noop.js
generated
vendored
Normal file
5
theme/node_modules/gulp-util/lib/noop.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
var through = require('through2');
|
||||
|
||||
module.exports = function () {
|
||||
return through.obj();
|
||||
};
|
||||
23
theme/node_modules/gulp-util/lib/template.js
generated
vendored
Normal file
23
theme/node_modules/gulp-util/lib/template.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
var template = require('lodash.template');
|
||||
var reEscape = require('lodash._reescape');
|
||||
var reEvaluate = require('lodash._reevaluate');
|
||||
var reInterpolate = require('lodash._reinterpolate');
|
||||
|
||||
var forcedSettings = {
|
||||
escape: reEscape,
|
||||
evaluate: reEvaluate,
|
||||
interpolate: reInterpolate
|
||||
};
|
||||
|
||||
module.exports = function(tmpl, data) {
|
||||
var fn = template(tmpl, forcedSettings);
|
||||
|
||||
var wrapped = function(o) {
|
||||
if (typeof o === 'undefined' || typeof o.file === 'undefined') {
|
||||
throw new Error('Failed to provide the current file as "file" to the template');
|
||||
}
|
||||
return fn(o);
|
||||
};
|
||||
|
||||
return (data ? wrapped(data) : wrapped);
|
||||
};
|
||||
Reference in New Issue
Block a user