|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- # stringify-object [](http://travis-ci.org/yeoman/stringify-object)
-
- > 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.
-
-
- ## Install
-
- ```
- $ npm install stringify-object
- ```
-
-
- ## Usage
-
- ```js
- const stringifyObject = require('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`<br>
- Default: `\t`
-
- Preferred indentation.
-
- ##### singleQuotes
-
- Type: `boolean`<br>
- Default: `true`
-
- Set to false to get double-quoted strings.
-
- ##### filter(obj, prop)
-
- Type: `Function`
-
- Expected to return a `boolean` of whether to include the property `prop` of the object `obj` in the output.
-
- ##### transform(obj, prop, originalResult)
-
- Type: `Function`<br>
- Default: `undefined`
-
- Expected to return a `string` that transforms the string that resulted from stringifying `obj[prop]`. This can be used to detect special types of objects that need to be stringified in a particular way. The `transform` function might return an alternate string in this case, otherwise returning the `originalResult`.
-
- Here's an example that uses the `transform` option to mask fields named "password":
-
- ```js
- const obj = {
- user: 'becky',
- password: 'secret'
- }
-
- const pretty = stringifyObject(obj, {
- transform: (obj, prop, originalResult) => {
- if (prop === 'password') {
- return originalResult.replace(/\w/g, '*');
- } else {
- return originalResult;
- }
- }
- });
-
- console.log(pretty);
- /*
- {
- user: 'becky',
- password: '******'
- }
- */
- ```
-
-
- ##### 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:
-
- ```js
- 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.
-
-
- ## License
-
- BSD-2-Clause © Yeoman team
|