Stringify an object/array like JSON.stringify just without all the double-quotes
Useful for when you want to get the string representation of an object in a formatted way.
It also handles circular references and lets you specify quote type.
The fork was created to add the new option joinLines
.
See the https://github.com/yeoman/stringify-object/pull/39.
This module is forked from https://github.com/yeoman/stringify-object. Thanks for the original work!
$ npm install --save @stheine/stringify-object
const stringifyObject = require('@stheine/stringify-object');
const obj = {
foo: 'bar',
'arr': [1, 2, 3],
nested: { hello: "world" }
};
const pretty = stringifyObject(obj, {
indent: ' ',
singleQuotes: false
});
console.log(pretty);
/*
{
foo: "bar",
arr: [
1,
2,
3
],
nested: {
hello: "world"
}
}
*/
Circular references will be replaced with "[Circular]"
.
Type: Object
Array
Type: string
Default: '\t'
Preferred indentation.
Type: boolean
Default: true
Set to false to get double-quoted strings.
Type: Function
Expected to return a boolean
of whether to keep the object.
Type: number
When set, will inline values up to inlineCharacterLimit
length for the sake of more terse output.
For example, given the example at the top of the README:
const obj = {
foo: 'bar',
'arr': [1, 2, 3],
nested: { hello: "world" }
};
const pretty = stringifyObject(obj, {
indent: ' ',
singleQuotes: false,
inlineCharacterLimit: 12
});
console.log(pretty);
/*
{
foo: "bar",
arr: [1, 2, 3],
nested: {
hello: "world"
}
}
*/
As you can see, arr
was printed as a one-liner because its string was shorter than 12 characters.
Type: boolean
Default: true
Set to false to not join lines having a linebreak character.
console.log(stringifyObject('line1\nline2'));
/*
'line1\nline2'
*/
console.log(stringifyObject('line1\nline2', {joinLines: false}));
/*
'line1
line2'
*/
BSD license © Yeoman Team