| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- 'use strict'
 
- const promise = require('./promise')
 
- const streamify = require('./streamify')
 
- module.exports = stringify
 
- /**
 
-  * Public function `stringify`.
 
-  *
 
-  * Returns a promise and asynchronously serialises a data structure to a
 
-  * JSON string. Sanely handles promises, buffers, maps and other iterables.
 
-  *
 
-  * @param data:          The data to transform
 
-  *
 
-  * @option space:        Indentation string, or the number of spaces
 
-  *                       to indent each nested level by.
 
-  *
 
-  * @option promises:     'resolve' or 'ignore', default is 'resolve'.
 
-  *
 
-  * @option buffers:      'toString' or 'ignore', default is 'toString'.
 
-  *
 
-  * @option maps:         'object' or 'ignore', default is 'object'.
 
-  *
 
-  * @option iterables:    'array' or 'ignore', default is 'array'.
 
-  *
 
-  * @option circular:     'error' or 'ignore', default is 'error'.
 
-  *
 
-  * @option yieldRate:     The number of data items to process per timeslice,
 
-  *                        default is 16384.
 
-  *
 
-  * @option bufferLength:  The length of the buffer, default is 1024.
 
-  *
 
-  * @option highWaterMark: If set, will be passed to the readable stream constructor
 
-  *                        as the value for the highWaterMark option.
 
-  *
 
-  * @option Promise:       The promise constructor to use, defaults to bluebird.
 
-  **/
 
- function stringify (data, options) {
 
-   const json = []
 
-   const Promise = promise(options)
 
-   const stream = streamify(data, options)
 
-   let resolve, reject
 
-   stream.on('data', read)
 
-   stream.on('end', end)
 
-   stream.on('error', error)
 
-   stream.on('dataError', error)
 
-   return new Promise((res, rej) => {
 
-     resolve = res
 
-     reject = rej
 
-   })
 
-   function read (chunk) {
 
-     json.push(chunk)
 
-   }
 
-   function end () {
 
-     resolve(json.join(''))
 
-   }
 
-   function error (e) {
 
-     reject(e)
 
-   }
 
- }
 
 
  |