Skip to content

Stringify an object/array like JSON.stringify just without all the double-quotes

License

Notifications You must be signed in to change notification settings

stheine/stringify-object

 
 

Repository files navigation

@stheine/stringify-object

Purpose

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.

Reference

This module is forked from https://github.com/yeoman/stringify-object. Thanks for the original work!

Install

$ npm install --save @stheine/stringify-object

Usage

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"
	}
}
*/

API

stringifyObject(input, [options])

Circular references will be replaced with "[Circular]".

input

Type: Object Array

options

indent

Type: string
Default: '\t'

Preferred indentation.

singleQuotes

Type: boolean
Default: true

Set to false to get double-quoted strings.

filter(obj, prop)

Type: Function

Expected to return a boolean of whether to keep the object.

inlineCharacterLimit

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.

joinLines

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'
*/

License

BSD license © Yeoman Team

About

Stringify an object/array like JSON.stringify just without all the double-quotes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%