.
This commit is contained in:
22
node_modules/postcss-reporter/LICENSE
generated
vendored
Normal file
22
node_modules/postcss-reporter/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 David Clark
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
12
node_modules/postcss-reporter/README.md
generated
vendored
Normal file
12
node_modules/postcss-reporter/README.md
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# postcss-reporter
|
||||
|
||||
A PostCSS plugin to `console.log()` the messages (warnings, etc.) registered by other PostCSS plugins.
|
||||
|
||||
---
|
||||
|
||||
**SEEKING A NEW MAINTAINER!** Interested in contributing to the ecosystem of PostCSS and Stylelint? Please open an issue if you'd like to take over maintenance of this package.
|
||||
|
||||
---
|
||||
|
||||
## Docs
|
||||
Read **[full docs](https://github.com/postcss/postcss-reporter#readme)** on GitHub.
|
||||
4
node_modules/postcss-reporter/index.js
generated
vendored
Normal file
4
node_modules/postcss-reporter/index.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
var reporter = require('./lib/reporter');
|
||||
|
||||
module.exports = reporter;
|
||||
module.exports.postcss = true;
|
||||
95
node_modules/postcss-reporter/lib/formatter.js
generated
vendored
Normal file
95
node_modules/postcss-reporter/lib/formatter.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
var pico = require('picocolors');
|
||||
var path = require('path');
|
||||
var firstBy = require('thenby');
|
||||
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) {
|
||||
var options = opts || {};
|
||||
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';
|
||||
});
|
||||
var source = input.source;
|
||||
|
||||
if (!messages.length) return '';
|
||||
|
||||
var orderedMessages = messages.sort(sortFunction);
|
||||
|
||||
var output = '\n';
|
||||
|
||||
if (source) {
|
||||
output += pico.bold(pico.underline(logFrom(source))) + '\n';
|
||||
}
|
||||
|
||||
orderedMessages.forEach(function (w) {
|
||||
output += messageToString(w) + '\n';
|
||||
});
|
||||
|
||||
return output;
|
||||
|
||||
function messageToString(message) {
|
||||
var location = util.getLocation(message);
|
||||
var str = '';
|
||||
|
||||
if (location.line) {
|
||||
str += pico.bold(location.line);
|
||||
}
|
||||
|
||||
if (location.column) {
|
||||
str += pico.bold(':' + location.column);
|
||||
}
|
||||
|
||||
if (location.line || location.column) {
|
||||
str += '\t';
|
||||
}
|
||||
|
||||
if (!options.noIcon && message.type === 'warning') {
|
||||
str += pico.yellow(warningSymbol + ' ');
|
||||
}
|
||||
|
||||
str += message.text;
|
||||
if (!options.noPlugin) {
|
||||
str += pico.yellow(' [' + message.plugin + ']');
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
function logFrom(fromValue) {
|
||||
if (fromValue.charAt(0) === '<') return fromValue;
|
||||
return path.relative(process.cwd(), fromValue).split(path.sep).join('/');
|
||||
}
|
||||
};
|
||||
};
|
||||
101
node_modules/postcss-reporter/lib/reporter.js
generated
vendored
Normal file
101
node_modules/postcss-reporter/lib/reporter.js
generated
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
var defaultFormatter = require('./formatter');
|
||||
var pico = require('picocolors');
|
||||
var util = require('./util');
|
||||
|
||||
module.exports = function (opts = {}) {
|
||||
var formatter =
|
||||
opts.formatter ||
|
||||
defaultFormatter({
|
||||
noIcon: opts.noIcon,
|
||||
noPlugin: opts.noPlugin,
|
||||
});
|
||||
|
||||
var pluginFilter;
|
||||
if (!opts.plugins) {
|
||||
// Every plugin
|
||||
pluginFilter = function () {
|
||||
return true;
|
||||
};
|
||||
} else if (
|
||||
opts.plugins.every(function (plugin) {
|
||||
return plugin[0] === '!';
|
||||
})
|
||||
) {
|
||||
// Deny list
|
||||
pluginFilter = function (message) {
|
||||
return opts.plugins.indexOf('!' + message.plugin) === -1;
|
||||
};
|
||||
} else {
|
||||
// Allow list
|
||||
pluginFilter = function (message) {
|
||||
return opts.plugins.indexOf(message.plugin) !== -1;
|
||||
};
|
||||
}
|
||||
|
||||
var messageFilter = opts.filter || ((message) => message.type === 'warning');
|
||||
|
||||
return {
|
||||
postcssPlugin: 'postcss-reporter',
|
||||
OnceExit(css, { result }) {
|
||||
var messagesToLog = result.messages
|
||||
.filter(pluginFilter)
|
||||
.filter(messageFilter);
|
||||
|
||||
var resultSource = !result.root.source
|
||||
? ''
|
||||
: result.root.source.input.file || result.root.source.input.id;
|
||||
|
||||
var sourceGroupedMessages = messagesToLog.reduce((grouped, message) => {
|
||||
const key = util.getLocation(message).file || resultSource;
|
||||
|
||||
if (!grouped.hasOwnProperty(key)) {
|
||||
grouped[key] = [];
|
||||
}
|
||||
|
||||
grouped[key].push(message);
|
||||
|
||||
return grouped;
|
||||
}, {});
|
||||
|
||||
var report = '';
|
||||
for (const source in sourceGroupedMessages) {
|
||||
if (sourceGroupedMessages.hasOwnProperty(source)) {
|
||||
report += formatter({
|
||||
messages: sourceGroupedMessages[source],
|
||||
source: source,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.clearReportedMessages) {
|
||||
result.messages = result.messages.filter(message => !messagesToLog.includes(message));
|
||||
}
|
||||
|
||||
if (opts.clearAllMessages) {
|
||||
var messagesToClear = result.messages.filter(pluginFilter);
|
||||
result.messages = result.messages.filter(message => !messagesToClear.includes(message));
|
||||
}
|
||||
|
||||
if (!report) return;
|
||||
|
||||
console.log(report);
|
||||
|
||||
if (opts.throwError && shouldThrowError()) {
|
||||
throw new Error(
|
||||
pico.red(
|
||||
pico.bold('\n** postcss-reporter: warnings or errors were found **')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
function shouldThrowError() {
|
||||
return (
|
||||
messagesToLog.length &&
|
||||
messagesToLog.some((message) => {
|
||||
return message.type === 'warning' || message.type === 'error';
|
||||
})
|
||||
);
|
||||
}
|
||||
},
|
||||
};
|
||||
};
|
||||
19
node_modules/postcss-reporter/lib/util.js
generated
vendored
Normal file
19
node_modules/postcss-reporter/lib/util.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
exports.getLocation = function (message) {
|
||||
var messageNode = message.node;
|
||||
|
||||
var location = {
|
||||
line: message.line,
|
||||
column: message.column,
|
||||
};
|
||||
|
||||
var messageInput = messageNode && messageNode.source && messageNode.source.input;
|
||||
|
||||
if (!messageInput) return location;
|
||||
|
||||
var originLocation =
|
||||
messageInput.origin && messageInput.origin(message.line, message.column);
|
||||
if (originLocation) return originLocation;
|
||||
|
||||
location.file = messageInput.file || messageInput.id;
|
||||
return location;
|
||||
};
|
||||
31
node_modules/postcss-reporter/package.json
generated
vendored
Normal file
31
node_modules/postcss-reporter/package.json
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "postcss-reporter",
|
||||
"version": "7.0.5",
|
||||
"description": "Log PostCSS messages in the console",
|
||||
"main": "index.js",
|
||||
"files": [
|
||||
"index.js",
|
||||
"lib"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"repository": "postcss/postcss-reporter",
|
||||
"author": {
|
||||
"name": "David Clark",
|
||||
"email": "david.dave.clark@gmail.com",
|
||||
"url": "https://davidtheclark.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"picocolors": "^1.0.0",
|
||||
"thenby": "^1.3.4"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user