var escapeHtml = require('html-util').escapeHtml , errors = {}; exports.errorHtml = errorHtml; exports.autoRefresh = autoRefresh; function errorHtml(errors) { var text = '' , type, err; for (type in errors) { err = errors[type]; text += '

' + escapeHtml(type) + ' Error

' + escapeHtml(err) + '
'; } if (!text) return; return '
' + '
' + text + '
'; } function autoRefresh(view, model) { var socket = model.socket; socket.on('refreshCss', function(err, css) { var el = document.getElementById('$_css'); if (el) el.innerHTML = css; updateError('CSS', err); }); socket.on('refreshHtml', function(err, templates, instances, libraryData) { view._makeAll(templates, instances); view._makeComponents(libraryData); try { view.app.dom._preventUpdates = true; view.app.history.refresh(); } catch (_err) { err || (err = _err.stack); } updateError('Template', err); }); } function updateError(type, err) { if (err) { errors[type] = err; } else { delete errors[type]; } var el = document.getElementById('$_derbyError') , html = errorHtml(errors) , fragment, range; if (html) { if (el) { el.outerHTML = html; } else { range = document.createRange(); range.selectNode(document.body); fragment = range.createContextualFragment(html); document.body.appendChild(fragment); } } else { if (el) el.parentNode.removeChild(el); } }