source: trip-planner-front/node_modules/less/lib/less-browser/error-reporting.js@ e29cc2e

Last change on this file since e29cc2e was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 6.1 KB
Line 
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var utils = tslib_1.__importStar(require("./utils"));
5var browser_1 = tslib_1.__importDefault(require("./browser"));
6exports.default = (function (window, less, options) {
7 function errorHTML(e, rootHref) {
8 var id = "less-error-message:" + utils.extractId(rootHref || '');
9 var template = '<li><label>{line}</label><pre class="{class}">{content}</pre></li>';
10 var elem = window.document.createElement('div');
11 var timer;
12 var content;
13 var errors = [];
14 var filename = e.filename || rootHref;
15 var filenameNoPath = filename.match(/([^\/]+(\?.*)?)$/)[1];
16 elem.id = id;
17 elem.className = 'less-error-message';
18 content = "<h3>" + (e.type || 'Syntax') + "Error: " + (e.message || 'There is an error in your .less file') +
19 ("</h3><p>in <a href=\"" + filename + "\">" + filenameNoPath + "</a> ");
20 var errorline = function (e, i, classname) {
21 if (e.extract[i] !== undefined) {
22 errors.push(template.replace(/\{line\}/, (parseInt(e.line, 10) || 0) + (i - 1))
23 .replace(/\{class\}/, classname)
24 .replace(/\{content\}/, e.extract[i]));
25 }
26 };
27 if (e.line) {
28 errorline(e, 0, '');
29 errorline(e, 1, 'line');
30 errorline(e, 2, '');
31 content += "on line " + e.line + ", column " + (e.column + 1) + ":</p><ul>" + errors.join('') + "</ul>";
32 }
33 if (e.stack && (e.extract || options.logLevel >= 4)) {
34 content += "<br/>Stack Trace</br />" + e.stack.split('\n').slice(1).join('<br/>');
35 }
36 elem.innerHTML = content;
37 // CSS for error messages
38 browser_1.default.createCSS(window.document, [
39 '.less-error-message ul, .less-error-message li {',
40 'list-style-type: none;',
41 'margin-right: 15px;',
42 'padding: 4px 0;',
43 'margin: 0;',
44 '}',
45 '.less-error-message label {',
46 'font-size: 12px;',
47 'margin-right: 15px;',
48 'padding: 4px 0;',
49 'color: #cc7777;',
50 '}',
51 '.less-error-message pre {',
52 'color: #dd6666;',
53 'padding: 4px 0;',
54 'margin: 0;',
55 'display: inline-block;',
56 '}',
57 '.less-error-message pre.line {',
58 'color: #ff0000;',
59 '}',
60 '.less-error-message h3 {',
61 'font-size: 20px;',
62 'font-weight: bold;',
63 'padding: 15px 0 5px 0;',
64 'margin: 0;',
65 '}',
66 '.less-error-message a {',
67 'color: #10a',
68 '}',
69 '.less-error-message .error {',
70 'color: red;',
71 'font-weight: bold;',
72 'padding-bottom: 2px;',
73 'border-bottom: 1px dashed red;',
74 '}'
75 ].join('\n'), { title: 'error-message' });
76 elem.style.cssText = [
77 'font-family: Arial, sans-serif',
78 'border: 1px solid #e00',
79 'background-color: #eee',
80 'border-radius: 5px',
81 '-webkit-border-radius: 5px',
82 '-moz-border-radius: 5px',
83 'color: #e00',
84 'padding: 15px',
85 'margin-bottom: 15px'
86 ].join(';');
87 if (options.env === 'development') {
88 timer = setInterval(function () {
89 var document = window.document;
90 var body = document.body;
91 if (body) {
92 if (document.getElementById(id)) {
93 body.replaceChild(elem, document.getElementById(id));
94 }
95 else {
96 body.insertBefore(elem, body.firstChild);
97 }
98 clearInterval(timer);
99 }
100 }, 10);
101 }
102 }
103 function removeErrorHTML(path) {
104 var node = window.document.getElementById("less-error-message:" + utils.extractId(path));
105 if (node) {
106 node.parentNode.removeChild(node);
107 }
108 }
109 function removeErrorConsole(path) {
110 // no action
111 }
112 function removeError(path) {
113 if (!options.errorReporting || options.errorReporting === 'html') {
114 removeErrorHTML(path);
115 }
116 else if (options.errorReporting === 'console') {
117 removeErrorConsole(path);
118 }
119 else if (typeof options.errorReporting === 'function') {
120 options.errorReporting('remove', path);
121 }
122 }
123 function errorConsole(e, rootHref) {
124 var template = '{line} {content}';
125 var filename = e.filename || rootHref;
126 var errors = [];
127 var content = (e.type || 'Syntax') + "Error: " + (e.message || 'There is an error in your .less file') + " in " + filename;
128 var errorline = function (e, i, classname) {
129 if (e.extract[i] !== undefined) {
130 errors.push(template.replace(/\{line\}/, (parseInt(e.line, 10) || 0) + (i - 1))
131 .replace(/\{class\}/, classname)
132 .replace(/\{content\}/, e.extract[i]));
133 }
134 };
135 if (e.line) {
136 errorline(e, 0, '');
137 errorline(e, 1, 'line');
138 errorline(e, 2, '');
139 content += " on line " + e.line + ", column " + (e.column + 1) + ":\n" + errors.join('\n');
140 }
141 if (e.stack && (e.extract || options.logLevel >= 4)) {
142 content += "\nStack Trace\n" + e.stack;
143 }
144 less.logger.error(content);
145 }
146 function error(e, rootHref) {
147 if (!options.errorReporting || options.errorReporting === 'html') {
148 errorHTML(e, rootHref);
149 }
150 else if (options.errorReporting === 'console') {
151 errorConsole(e, rootHref);
152 }
153 else if (typeof options.errorReporting === 'function') {
154 options.errorReporting('add', e, rootHref);
155 }
156 }
157 return {
158 add: error,
159 remove: removeError
160 };
161});
162//# sourceMappingURL=error-reporting.js.map
Note: See TracBrowser for help on using the repository browser.