UNPKG

offshore

Version:
303 lines (302 loc) 9.15 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for lib/offshore/utils/stream.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">lib/offshore/utils/</a> stream.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">61.76% </span> <span class="quiet">Statements</span> <span class='fraction'>21/34</span> </div> <div class='fl pad1y space-right2'> <span class="strong">31.25% </span> <span class="quiet">Branches</span> <span class='fraction'>5/16</span> </div> <div class='fl pad1y space-right2'> <span class="strong">80% </span> <span class="quiet">Functions</span> <span class='fraction'>4/5</span> </div> <div class='fl pad1y space-right2'> <span class="strong">72.41% </span> <span class="quiet">Lines</span> <span class='fraction'>21/29</span> </div> </div> </div> <div class='status-line medium'></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</td><td class="line-coverage quiet"><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-yes"></span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-yes"></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-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-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-yes"></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-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-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-yes"></span> <span class="cline-any cline-yes"></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-yes"></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-no">&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-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></td><td class="text"><pre class="prettyprint lang-js">/** * Streams * * A Streaming API with support for Transformations */ &nbsp; var util = require('util'); var Stream = require('stream'); var Transformations = require('./transformations'); var _ = require('lodash'); &nbsp; var ModelStream = module.exports = function(transformation) { &nbsp; // Use specified, or otherwise default, JSON transformation this.transformation = transformation || Transformations.json; &nbsp; // Reset write index this.index = 0; &nbsp; // Make stream writable this.writable = true; }; &nbsp; util.inherits(ModelStream, Stream); &nbsp; /** * Write to stream * * Extracts args to write and emits them as data events * * @param {Object} model * @param {Function} cb */ &nbsp; ModelStream.prototype.write = function(model, cb) { var self = this; &nbsp; // Run transformation on this item this.transformation.write(model, this.index, function writeToStream(err, transformedModel) { &nbsp; // Increment index for next time self.index++; &nbsp; // Write transformed model to stream self.emit('data', _.clone(transformedModel)); &nbsp; // Inform that we're finished <span class="missing-if-branch" title="if path not taken" >I</span>if (cb) <span class="cstat-no" title="statement not covered" >return cb(err);</span> }); &nbsp; }; &nbsp; /** * End Stream */ &nbsp; ModelStream.prototype.end = function(err, cb) { var self = this; &nbsp; <span class="missing-if-branch" title="else path not taken" >E</span>if (err) { this.emit('error', err.message); <span class="missing-if-branch" title="if path not taken" >I</span>if (cb) <span class="cstat-no" title="statement not covered" >return cb(err);</span> return; } &nbsp; <span class="cstat-no" title="statement not covered" > this.transformation.end(<span class="fstat-no" title="function not covered" >function(err, suffix) {</span></span> &nbsp; <span class="cstat-no" title="statement not covered" > if (err) {</span> <span class="cstat-no" title="statement not covered" > self.emit('error', err);</span> <span class="cstat-no" title="statement not covered" > if (cb) <span class="cstat-no" title="statement not covered" >return cb(err);</span></span> <span class="cstat-no" title="statement not covered" > return;</span> } &nbsp; // Emit suffix if specified <span class="cstat-no" title="statement not covered" > if (suffix) <span class="cstat-no" title="statement not covered" >self.emit('data', suffix);</span></span> <span class="cstat-no" title="statement not covered" > self.emit('end');</span> <span class="cstat-no" title="statement not covered" > if (cb) <span class="cstat-no" title="statement not covered" >return cb();</span></span> }); }; &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 Tue Apr 17 2018 10:49:40 GMT+0200 (CEST) </div> </div> <script src="../../../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../../../sorter.js"></script> </body> </html>