UNPKG

@cleerlycode/cornerstone-wado-image-loader

Version:
414 lines (413 loc) 13.7 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for src/webWorker/webWorker.js</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../../index.html">all files</a> / <a href="index.html">src/webWorker/</a> webWorker.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">17.65% </span> <span class="quiet">Statements</span> <span class='fraction'>6/34</span> </div> <div class='fl pad1y space-right2'> <span class="strong">14.29% </span> <span class="quiet">Branches</span> <span class='fraction'>2/14</span> </div> <div class='fl pad1y space-right2'> <span class="strong">16.67% </span> <span class="quiet">Functions</span> <span class='fraction'>1/6</span> </div> <div class='fl pad1y space-right2'> <span class="strong">17.65% </span> <span class="quiet">Lines</span> <span class='fraction'>6/34</span> </div> </div> </div> <div class='status-line low'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// an object of task handlers const taskHandlers = {}; &nbsp; // Flag to ensure web worker is only initialized once let initialized = false; &nbsp; // the configuration object passed in when the web worker manager is initialized let config; &nbsp; /** * Initialization function that loads additional web workers and initializes them * @param data */ function initialize (data) <span class="fstat-no" title="function not covered" >{</span> // console.log('web worker initialize ', data.workerIndex); // prevent initialization from happening more than once <span class="cstat-no" title="statement not covered" > if (initialized) {</span> <span class="cstat-no" title="statement not covered" > return;</span> } &nbsp; // save the config data <span class="cstat-no" title="statement not covered" > config = data.config;</span> &nbsp; // load any additional web worker tasks <span class="cstat-no" title="statement not covered" > if (data.config.webWorkerTaskPaths) {</span> <span class="cstat-no" title="statement not covered" > for (let i = 0; i &lt; data.config.webWorkerTaskPaths.length; i++) {</span> <span class="cstat-no" title="statement not covered" > self.importScripts(data.config.webWorkerTaskPaths[i]);</span> } } &nbsp; // initialize each task handler <span class="cstat-no" title="statement not covered" > Object.keys(taskHandlers).forEach(function (key) <span class="fstat-no" title="function not covered" >{</span></span> <span class="cstat-no" title="statement not covered" > taskHandlers[key].initialize(config.taskConfiguration);</span> }); &nbsp; // tell main ui thread that we have completed initialization <span class="cstat-no" title="statement not covered" > self.postMessage({</span> taskType: 'initialize', status: 'success', result: { }, workerIndex: data.workerIndex }); &nbsp; <span class="cstat-no" title="statement not covered" > initialized = true;</span> } &nbsp; /** * Function exposed to web worker tasks to register themselves * @param taskHandler */ export function registerTaskHandler (taskHandler) { <span class="missing-if-branch" title="if path not taken" >I</span>if (taskHandlers[taskHandler.taskType]) { <span class="cstat-no" title="statement not covered" > console.log('attempt to register duplicate task handler "', taskHandler.taskType, '"');</span> &nbsp; <span class="cstat-no" title="statement not covered" > return false;</span> } taskHandlers[taskHandler.taskType] = taskHandler; <span class="missing-if-branch" title="if path not taken" >I</span>if (initialized) { <span class="cstat-no" title="statement not covered" > taskHandler.initialize(config.taskConfiguration);</span> } } &nbsp; /** * Function to load a new web worker task with updated configuration * @param data */ function loadWebWorkerTask (data) <span class="fstat-no" title="function not covered" >{</span> <span class="cstat-no" title="statement not covered" > config = data.config;</span> <span class="cstat-no" title="statement not covered" > self.importScripts(data.sourcePath);</span> } &nbsp; /** * Web worker message handler - dispatches messages to the registered task handlers * @param msg */ self.onmessage = function (msg) <span class="fstat-no" title="function not covered" >{</span> // console.log('web worker onmessage', msg.data); &nbsp; // handle initialize message <span class="cstat-no" title="statement not covered" > if (msg.data.taskType === 'initialize') {</span> <span class="cstat-no" title="statement not covered" > initialize(msg.data);</span> &nbsp; <span class="cstat-no" title="statement not covered" > return;</span> } &nbsp; // handle loadWebWorkerTask message <span class="cstat-no" title="statement not covered" > if (msg.data.taskType === 'loadWebWorkerTask') {</span> <span class="cstat-no" title="statement not covered" > loadWebWorkerTask(msg.data);</span> &nbsp; <span class="cstat-no" title="statement not covered" > return;</span> } &nbsp; // dispatch the message if there is a handler registered for it <span class="cstat-no" title="statement not covered" > if (taskHandlers[msg.data.taskType]) {</span> <span class="cstat-no" title="statement not covered" > taskHandlers[msg.data.taskType].handler(msg.data, function (result, transferList) <span class="fstat-no" title="function not covered" >{</span></span> <span class="cstat-no" title="statement not covered" > self.postMessage({</span> taskType: msg.data.taskType, status: 'success', result, workerIndex: msg.data.workerIndex }, transferList); }); &nbsp; <span class="cstat-no" title="statement not covered" > return;</span> } &nbsp; // not task handler registered - send a failure message back to ui thread <span class="cstat-no" title="statement not covered" > console.log('no task handler for ', msg.data.taskType);</span> <span class="cstat-no" title="statement not covered" > console.log(taskHandlers);</span> <span class="cstat-no" title="statement not covered" > self.postMessage({</span> taskType: msg.data.taskType, status: 'failed - no task handler registered', workerIndex: msg.data.workerIndex }); }; &nbsp;</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun Apr 01 2018 20:02:13 GMT+0800 (CST) </div> </div> <script src="../../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../../sorter.js"></script> </body> </html>