TexError.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var TexError = (function () {
  4. function TexError(id, message) {
  5. var rest = [];
  6. for (var _i = 2; _i < arguments.length; _i++) {
  7. rest[_i - 2] = arguments[_i];
  8. }
  9. this.id = id;
  10. this.message = TexError.processString(message, rest);
  11. }
  12. TexError.processString = function (str, args) {
  13. var parts = str.split(TexError.pattern);
  14. for (var i = 1, m = parts.length; i < m; i += 2) {
  15. var c = parts[i].charAt(0);
  16. if (c >= '0' && c <= '9') {
  17. parts[i] = args[parseInt(parts[i], 10) - 1];
  18. if (typeof parts[i] === 'number') {
  19. parts[i] = parts[i].toString();
  20. }
  21. }
  22. else if (c === '{') {
  23. c = parts[i].substr(1);
  24. if (c >= '0' && c <= '9') {
  25. parts[i] = args[parseInt(parts[i].substr(1, parts[i].length - 2), 10) - 1];
  26. if (typeof parts[i] === 'number') {
  27. parts[i] = parts[i].toString();
  28. }
  29. }
  30. else {
  31. var match = parts[i].match(/^\{([a-z]+):%(\d+)\|(.*)\}$/);
  32. if (match) {
  33. parts[i] = '%' + parts[i];
  34. }
  35. }
  36. }
  37. if (parts[i] == null) {
  38. parts[i] = '???';
  39. }
  40. }
  41. return parts.join('');
  42. };
  43. TexError.pattern = /%(\d+|\{\d+\}|\{[a-z]+:\%\d+(?:\|(?:%\{\d+\}|%.|[^\}])*)+\}|.)/g;
  44. return TexError;
  45. }());
  46. exports.default = TexError;
  47. //# sourceMappingURL=TexError.js.map