UNPKG

postman

Version:

The Postman will help deliver messages around your application

77 lines (72 loc) 2.04 kB
if (! window.jscoverage_report) { window.jscoverage_report = function jscoverage_report(dir) { var createRequest = function () { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } else if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } }; var pad = function (s) { return '0000'.substr(s.length) + s; }; var quote = function (s) { return '"' + s.replace(/[\u0000-\u001f"\\\u007f-\uffff]/g, function (c) { switch (c) { case '\b': return '\\b'; case '\f': return '\\f'; case '\n': return '\\n'; case '\r': return '\\r'; case '\t': return '\\t'; // IE doesn't support this /* case '\v': return '\\v'; */ case '"': return '\\"'; case '\\': return '\\\\'; default: return '\\u' + pad(c.charCodeAt(0).toString(16)); } }) + '"'; }; var json = []; for (var file in top._$jscoverage) { var coverage = top._$jscoverage[file]; var array = []; var length = coverage.length; for (var line = 0; line < length; line++) { var value = coverage[line]; if (value === undefined || value === null) { value = 'null'; } array.push(value); } json.push(quote(file) + ':[' + array.join(',') + ']'); } json = '{' + json.join(',') + '}'; var request = createRequest(); var url = '/jscoverage-store'; if (dir) { url += '/' + encodeURIComponent(dir); } request.open('POST', url, false); request.setRequestHeader('Content-Type', 'application/json'); request.setRequestHeader('Content-Length', json.length.toString()); request.send(json); if (request.status === 200 || request.status === 201 || request.status === 204) { return request.responseText; } else { throw request.status; } }; }