to-source 
Turns code back into source! Doesn't support functions (but you can override
that) or comments though.
This is currently used for code generation, hence why you have more control
over how the output is going to look like.
Parameters
any
data This is the javascript value to convert back into source text.
object
options The options object is also optional, See below for the
options to modify the output along with the defaults.
Options
number
tabDepth Is the indentation level that the value is starting at.
number
quoteDepth Specifies how far deep into the object you want the key
to be single quoted.
boolean
enclose If false, the object output won't have the openeing and
closing brackets.
This is useful is you want to insert the output into an existing object.
string
tabChar specifies what to use for the height character. By default
this will use a single tab character. You can specify two, three, four spaces
instead if you want (or whatever you want).
function
functionFormatter If you want to parse functions, you will need
to specify this argument. The function will feed the tab height and the
function object to the formatter, from there you will need to source it and
change the format to preference. If this argument is not specified the default
will be an empty function.
string
quoteChar This will specify what kind of character to use to
escape keys in objects and what to use for strings. By default, this is a
single quote.
Overriding the default function serializer
You can override the default formatter globally. A utility function is provided
which can make a decent serializer that should indent things properly for most
use cases.
var string = require('hy-object-to-string');
string.defaultFnFormatter = string.mkFnFormatter();
var example = function() {
return 'foobar';
};
string(example);
Preferably, you should use a proper code formatter like beautify-js
to format
the function block. This is why you can specify your own formatter.