MCPcopy
hub / github.com/less/less.js / errorHTML

Function errorHTML

packages/less/lib/less-browser/error-reporting.js:6–107  ·  view source on GitHub ↗
(e, rootHref)

Source from the content-addressed store, hash-verified

4export default (window, less, options) => {
5
6 function errorHTML(e, rootHref) {
7 const id = `less-error-message:${utils.extractId(rootHref || '')}`;
8 const template = '<li><label>{line}</label><pre class="{class}">{content}</pre></li>';
9 const elem = window.document.createElement('div');
10 let timer;
11 let content;
12 const errors = [];
13 const filename = e.filename || rootHref;
14 const filenameNoPath = filename.match(/([^/]+(\?.*)?)$/)[1];
15
16 elem.id = id;
17 elem.className = 'less-error-message';
18
19 content = `<h3>${e.type || 'Syntax'}Error: ${e.message || 'There is an error in your .less file'}` +
20 `</h3><p>in <a href="${filename}">${filenameNoPath}</a> `;
21
22 const errorline = (e, i, classname) => {
23 if (e.extract[i] !== undefined) {
24 errors.push(template.replace(/\{line\}/, (parseInt(e.line, 10) || 0) + (i - 1))
25 .replace(/\{class\}/, classname)
26 .replace(/\{content\}/, e.extract[i]));
27 }
28 };
29
30 if (e.line) {
31 errorline(e, 0, '');
32 errorline(e, 1, 'line');
33 errorline(e, 2, '');
34 content += `on line ${e.line}, column ${e.column + 1}:</p><ul>${errors.join('')}</ul>`;
35 }
36 if (e.stack && (e.extract || options.logLevel >= 4)) {
37 content += `<br/>Stack Trace</br />${e.stack.split('\n').slice(1).join('<br/>')}`;
38 }
39 elem.innerHTML = content;
40
41 // CSS for error messages
42 browser.createCSS(window.document, [
43 '.less-error-message ul, .less-error-message li {',
44 'list-style-type: none;',
45 'margin-right: 15px;',
46 'padding: 4px 0;',
47 'margin: 0;',
48 '}',
49 '.less-error-message label {',
50 'font-size: 12px;',
51 'margin-right: 15px;',
52 'padding: 4px 0;',
53 'color: #cc7777;',
54 '}',
55 '.less-error-message pre {',
56 'color: #dd6666;',
57 'padding: 4px 0;',
58 'margin: 0;',
59 'display: inline-block;',
60 '}',
61 '.less-error-message pre.line {',
62 'color: #ff0000;',
63 '}',

Callers 1

errorFunction · 0.85

Calls 3

errorlineFunction · 0.85
matchMethod · 0.80
joinMethod · 0.65

Tested by

no test coverage detected