summaryrefslogtreecommitdiff
path: root/node_modules/postcss-reporter/lib/formatter.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/postcss-reporter/lib/formatter.js')
-rw-r--r--node_modules/postcss-reporter/lib/formatter.js75
1 files changed, 30 insertions, 45 deletions
diff --git a/node_modules/postcss-reporter/lib/formatter.js b/node_modules/postcss-reporter/lib/formatter.js
index 7358cc61..b5719b8f 100644
--- a/node_modules/postcss-reporter/lib/formatter.js
+++ b/node_modules/postcss-reporter/lib/formatter.js
@@ -1,60 +1,45 @@
-var pico = require('picocolors');
+var chalk = require('chalk');
var path = require('path');
-var firstBy = require('thenby');
+var symbols = require('log-symbols');
+var _ = require('lodash');
var util = require('./util');
-var supportsLargeCharset =
- process.platform !== 'win32' ||
- process.env.CI ||
- process.env.TERM === 'xterm-256color';
-var warningSymbol = supportsLargeCharset ? '⚠' : '!!';
-
-function createSortFunction(positionless, sortByPosition) {
- var positionValue = 0
-
- if (positionless === 'any') { positionValue = 1; }
- if (positionless === 'first') { positionValue = 2; }
- if (positionless === 'last') { positionValue = 0; }
-
- var sortFunction = firstBy((m) => {
- if (!m.line) return 1;
- return positionValue;
- })
-
- if (sortByPosition) {
- sortFunction = sortFunction.thenBy('line').thenBy('column');
- }
-
- return sortFunction;
-}
-
-module.exports = function (opts) {
+module.exports = function(opts) {
var options = opts || {};
- var sortByPosition =
- typeof options.sortByPosition !== 'undefined'
- ? options.sortByPosition
- : true;
+ var sortByPosition = (typeof options.sortByPosition !== 'undefined') ? options.sortByPosition : true;
var positionless = options.positionless || 'first';
- var sortFunction = createSortFunction(positionless, sortByPosition);
-
- return function (input) {
- var messages = input.messages.filter(function (message) {
- return typeof message.text === 'string';
- });
+ return function(input) {
+ var messages = input.messages;
var source = input.source;
if (!messages.length) return '';
- var orderedMessages = messages.sort(sortFunction);
+ var orderedMessages = _.sortBy(
+ messages,
+ function(m) {
+ if (!m.line) return 1;
+ if (positionless === 'any') return 1;
+ if (positionless === 'first') return 2;
+ if (positionless === 'last') return 0;
+ },
+ function(m) {
+ if (!sortByPosition) return 1;
+ return m.line;
+ },
+ function(m) {
+ if (!sortByPosition) return 1;
+ return m.column;
+ }
+ );
var output = '\n';
if (source) {
- output += pico.bold(pico.underline(logFrom(source))) + '\n';
+ output += chalk.bold.underline(logFrom(source)) + '\n';
}
- orderedMessages.forEach(function (w) {
+ orderedMessages.forEach(function(w) {
output += messageToString(w) + '\n';
});
@@ -65,11 +50,11 @@ module.exports = function (opts) {
var str = '';
if (location.line) {
- str += pico.bold(location.line);
+ str += chalk.bold(location.line);
}
if (location.column) {
- str += pico.bold(':' + location.column);
+ str += chalk.bold(':' + location.column)
}
if (location.line || location.column) {
@@ -77,12 +62,12 @@ module.exports = function (opts) {
}
if (!options.noIcon && message.type === 'warning') {
- str += pico.yellow(warningSymbol + ' ');
+ str += chalk.yellow(symbols.warning + ' ');
}
str += message.text;
if (!options.noPlugin) {
- str += pico.yellow(' [' + message.plugin + ']');
+ str += chalk.yellow(' [' + message.plugin + ']');
}
return str;
}