parseCss.js 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getCssError = getCssError;
  6. var _chalk = _interopRequireDefault(require("next/dist/compiled/chalk"));
  7. var _simpleWebpackError = require("./simpleWebpackError");
  8. function _interopRequireDefault(obj) {
  9. return obj && obj.__esModule ? obj : {
  10. default: obj
  11. };
  12. }
  13. const chalk = new _chalk.default.constructor({
  14. enabled: true
  15. });
  16. const regexCssError = /^(?:CssSyntaxError|SyntaxError)\n\n\((\d+):(\d*)\) (.*)$/s;
  17. function getCssError(fileName, err) {
  18. if (!((err.name === "CssSyntaxError" || err.name === "SyntaxError") && err.stack === false && !(err instanceof SyntaxError))) {
  19. return false;
  20. }
  21. // https://github.com/postcss/postcss-loader/blob/d6931da177ac79707bd758436e476036a55e4f59/src/Error.js
  22. const res = regexCssError.exec(err.message);
  23. if (res) {
  24. const [, _lineNumber, _column, reason] = res;
  25. const lineNumber = Math.max(1, parseInt(_lineNumber, 10));
  26. const column = Math.max(1, parseInt(_column, 10));
  27. return new _simpleWebpackError.SimpleWebpackError(`${chalk.cyan(fileName)}:${chalk.yellow(lineNumber.toString())}:${chalk.yellow(column.toString())}`, chalk.red.bold("Syntax error").concat(`: ${reason}`));
  28. }
  29. return false;
  30. }
  31. //# sourceMappingURL=parseCss.js.map