37 lines
979 B
JavaScript
37 lines
979 B
JavaScript
var PluginError = require('plugin-error'),
|
|
fs = require('fs');
|
|
|
|
/**
|
|
* Loads reporter by its name.
|
|
*
|
|
* The function works only with reporters that shipped with the plugin.
|
|
*
|
|
* @param {String} name Name of a reporter to load.
|
|
* @param {Object} options Custom options object that will be passed to
|
|
* a reporter.
|
|
* @returns {Function}
|
|
*/
|
|
module.exports = function(name, options) {
|
|
if (typeof name !== 'string') {
|
|
throw new PluginError('gulp-phpcs', 'Reporter name must be a string');
|
|
}
|
|
|
|
if (name === 'index') {
|
|
throw new PluginError('gulp-phpcs', 'Reporter cannot be named "index"');
|
|
}
|
|
|
|
var fileName = './' + name + '.js',
|
|
reporter = null;
|
|
try {
|
|
reporter = require(fileName)(options || {});
|
|
} catch(error) {
|
|
if (error.code !== 'MODULE_NOT_FOUND') {
|
|
throw error;
|
|
}
|
|
|
|
throw new PluginError('gulp-phpcs', 'There is no reporter "' + name + '"');
|
|
}
|
|
|
|
return reporter;
|
|
};
|