| 173 | |
| 174 | // Error Template |
| 175 | const createTemplate = () => |
| 176 | h( |
| 177 | 'div', |
| 178 | { class: 'backdrop', part: 'backdrop' }, |
| 179 | h( |
| 180 | 'div', |
| 181 | { class: 'window', part: 'window' }, |
| 182 | h( |
| 183 | 'pre', |
| 184 | { class: 'message', part: 'message' }, |
| 185 | h('span', { class: 'plugin', part: 'plugin' }), |
| 186 | h('span', { class: 'message-body', part: 'message-body' }), |
| 187 | ), |
| 188 | h('pre', { class: 'file', part: 'file' }), |
| 189 | h('pre', { class: 'frame', part: 'frame' }), |
| 190 | h('pre', { class: 'stack', part: 'stack' }), |
| 191 | h( |
| 192 | 'div', |
| 193 | { class: 'tip', part: 'tip' }, |
| 194 | 'Click outside, press ', |
| 195 | h('kbd', {}, 'Esc'), |
| 196 | ' key, or fix the code to dismiss.', |
| 197 | h('br'), |
| 198 | 'You can also disable this overlay by setting ', |
| 199 | h('code', { part: 'config-option-name' }, 'server.hmr.overlay'), |
| 200 | ' to ', |
| 201 | h('code', { part: 'config-option-value' }, 'false'), |
| 202 | ' in ', |
| 203 | h('code', { part: 'config-file-name' }, hmrConfigName), |
| 204 | '.', |
| 205 | ), |
| 206 | ), |
| 207 | h('style', { nonce: cspNonce }, templateStyle), |
| 208 | ) |
| 209 | |
| 210 | const fileRE = /(?:file:\/\/)?(?:[a-zA-Z]:\\|\/).*?:\d+:\d+/g |
| 211 | const codeframeRE = /^(?:>?\s*\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm |