mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-19 01:36:01 +10:00
68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
var color = require("./color");
|
|
|
|
exports.logger = {
|
|
log: (console.log).bind(console),
|
|
err: (process.stderr.write).bind(process.stderr)
|
|
};
|
|
|
|
exports.setLogger = function (l) {
|
|
this.logger = l;
|
|
};
|
|
|
|
exports.makeReporter = function (logger, colorize, terse) {
|
|
return {
|
|
logger: logger,
|
|
colorize: colorize,
|
|
terse: terse,
|
|
report: function (file, lint) {
|
|
return exports.report.call(this, file, lint, this.colorize, this.terse);
|
|
}
|
|
};
|
|
};
|
|
|
|
exports.report = function (file, lint, colorize, terse) {
|
|
var line, pad, fileMessage,
|
|
errors,
|
|
logger = this.logger;
|
|
|
|
|
|
fileMessage = "\n" + (colorize ? color.bold(file) : file);
|
|
|
|
if (!lint.ok) {
|
|
// remove nulls
|
|
errors = lint.errors.filter(function (e) { return e; });
|
|
|
|
if (terse) {
|
|
errors.forEach(function (e) {
|
|
logger.log(file + ':' + e.line + ':' + e.character + ': ' + e.reason);
|
|
});
|
|
} else {
|
|
logger.log(fileMessage);
|
|
errors.forEach(function (e, i) {
|
|
pad = "#" + String(i + 1);
|
|
while (pad.length < 3) {
|
|
pad = ' ' + pad;
|
|
}
|
|
line = ' // Line ' + e.line + ', Pos ' + e.character;
|
|
|
|
logger.log(pad + ' ' + (colorize ? color.yellow(e.reason) : e.reason));
|
|
logger.log(' ' + (e.evidence || '').replace(/^\s+|\s+$/, "") +
|
|
(colorize ? color.grey(line) : line));
|
|
});
|
|
}
|
|
} else {
|
|
if (terse) {
|
|
logger.err(".");
|
|
} else {
|
|
logger.log(fileMessage + " is " + (colorize ? color.green('OK') : 'OK') + ".");
|
|
}
|
|
}
|
|
|
|
return lint.ok;
|
|
};
|
|
|
|
}());
|