aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/minipass-json-stream/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/minipass-json-stream/README.md')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/minipass-json-stream/README.md189
1 files changed, 189 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/minipass-json-stream/README.md b/sandbox/testAppNevena/Front/node_modules/minipass-json-stream/README.md
new file mode 100644
index 00000000..79864a77
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/minipass-json-stream/README.md
@@ -0,0 +1,189 @@
+# minipass-json-stream
+
+Like [JSONStream](http://npm.im/JSONStream), but using Minipass streams
+
+## install
+
+```
+npm install minipass-json-stream
+```
+
+## example
+
+```js
+
+const request = require('request')
+const JSONStream = require('minipass-json-stream')
+const es = require('event-stream')
+
+request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
+ .pipe(JSONStream.parse('rows.*'))
+ .pipe(es.mapSync(function (data) {
+ console.error(data)
+ return data
+ }))
+```
+
+## new JSONStream(options)
+
+Create a new stream. This is a [minipass](http://npm.im/minipass) stream
+that is always set in `objectMode`. It emits objects parsed out of
+string/buffer JSON input that match the supplied `path` option.
+
+## JSONStream.parse(path)
+
+Return a new JSONStream object to stream values that match a path.
+
+(Equivalent to `new JSONStream({path})`.)
+
+``` js
+JSONStream.parse('rows.*.doc')
+```
+
+The `..` operator is the recursive descent operator from
+[JSONPath](http://goessner.net/articles/JsonPath/), which will match a
+child at any depth (see examples below).
+
+If your keys have keys that include `.` or `*` etc, use an array instead.
+`['row', true, /^doc/]`.
+
+If you use an array, `RegExp`s, booleans, and/or functions. The `..`
+operator is also available in array representation, using `{recurse:
+true}`. any object that matches the path will be emitted as 'data' (and
+`pipe`d down stream)
+
+If `path` is empty or null, no 'data' events are emitted.
+
+If you want to have keys emitted, you can prefix your `*` operator with
+`$`: `obj.$*` - in this case the data passed to the stream is an object
+with a `key` holding the key and a `value` property holding the data.
+
+### Examples
+
+query a couchdb view:
+
+``` bash
+curl -sS localhost:5984/tests/_all_docs&include_docs=true
+```
+you will get something like this:
+
+``` js
+{"total_rows":129,"offset":0,"rows":[
+ { "id":"change1_0.6995461115147918"
+ , "key":"change1_0.6995461115147918"
+ , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
+ , "doc":{
+ "_id": "change1_0.6995461115147918"
+ , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
+ },
+ { "id":"change2_0.6995461115147918"
+ , "key":"change2_0.6995461115147918"
+ , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
+ , "doc":{
+ "_id":"change2_0.6995461115147918"
+ , "_rev":"1-13677d36b98c0c075145bb8975105153"
+ , "hello":2
+ }
+ },
+]}
+```
+
+we are probably most interested in the `rows.*.doc`
+
+create a `JSONStream` that parses the documents from the feed like this:
+
+``` js
+var stream = JSONStream.parse(['rows', true, 'doc']) //rows, ANYTHING, doc
+
+stream.on('data', function(data) {
+ console.log('received:', data);
+});
+
+//emits anything from _before_ the first match
+stream.on('header', function (data) {
+ console.log('header:', data) // => {"total_rows":129,"offset":0}
+})
+```
+
+awesome!
+
+In case you wanted the contents the doc emitted:
+
+``` js
+// equivalent to: 'rows.*.doc.$*'
+var stream = JSONStream.parse([
+ 'rows',
+ true,
+ 'doc',
+ {emitKey: true}
+]) //rows, ANYTHING, doc, items in docs with keys
+
+stream.on('data', function(data) {
+ console.log('key:', data.key);
+ console.log('value:', data.value);
+});
+```
+
+You can also emit the path:
+
+``` js
+var stream = JSONStream.parse([
+ 'rows',
+ true,
+ 'doc',
+ {emitPath: true}
+]) //rows, ANYTHING, doc, items in docs with keys
+
+stream.on('data', function(data) {
+ console.log('path:', data.path);
+ console.log('value:', data.value);
+});
+```
+
+### recursive patterns (..)
+
+`JSONStream.parse('docs..value')`
+(or `JSONStream.parse(['docs', {recurse: true}, 'value'])` using an array)
+will emit every `value` object that is a child, grand-child, etc. of the
+`docs` object. In this example, it will match exactly 5 times at various depth
+levels, emitting 0, 1, 2, 3 and 4 as results.
+
+```js
+{
+ "total": 5,
+ "docs": [
+ {
+ "key": {
+ "value": 0,
+ "some": "property"
+ }
+ },
+ {"value": 1},
+ {"value": 2},
+ {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]},
+ {"value": 4}
+ ]
+}
+```
+
+## JSONStream.parse(pattern, map)
+
+(Equivalent to `new JSONStream({ pattern, map })`)
+
+provide a function that can be used to map or filter
+the json output. `map` is passed the value at that node of the pattern,
+if `map` return non-nullish (anything but `null` or `undefined`)
+that value will be emitted in the stream. If it returns a nullish value,
+nothing will be emitted.
+
+`JSONStream` also emits `'header'` and `'footer'` events,
+the `'header'` event contains anything in the output that was before
+the first match, and the `'footer'`, is anything after the last match.
+
+## Acknowlegements
+
+This module is a fork of [JSONStream](http://npm.im/JSONStream) by Dominic
+Tarr, modified and redistributed under the terms of the MIT license.
+
+this module depends on https://github.com/creationix/jsonparse
+by Tim Caswell