All files / src/utils stringifyWithFnName.js

0% Statements 0/13
0% Branches 0/6
0% Functions 0/2
0% Lines 0/13
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                                                         
const isFn = require( '../preds/isFn' );
const fnName = require( './fnName' );
 
function stringifyWithFnName( subject, currTransform ) {
 
  var newArgs = Array.prototype.slice.call( arguments );
 
  newArgs[ 1 ] = ( key, val ) => {
    var r;
    if ( isFn( val ) ) {
      // implicitly `toString` it
      var n = fnName( val );
      if ( n ) {
        r = `${n}()`;
      } else {
        r = val.toString();
      }
    } else {
      r = val;
    }
    return currTransform ? currTransform( r ) : r;
  };
 
  return JSON.stringify.apply( this, newArgs );
 
}
 
module.exports = stringifyWithFnName;