@hyperjump/browser
Advanced tools
Comparing version 0.8.0 to 0.9.0
@@ -60,2 +60,9 @@ const JsonPointer = require("@hyperjump/json-pointer"); | ||
const identity = (a) => a; | ||
const pipeline = (fns) => { | ||
const [handler = identity, ...handlers] = fns; | ||
return (...args) => Promise.resolve(handler(...args)) | ||
.then(data => Promise.reduce(handlers, (acc, fn) => fn(acc), data)); | ||
}; | ||
const uriFragment = (url) => url.split("#", 2)[1] || ""; | ||
@@ -67,2 +74,6 @@ const isObject = (value) => typeof value === "object" && !Array.isArray(value) && value !== null; | ||
module.exports = { contentType, contentTypeHandler, get, nil, source, value, pointer, entries, map }; | ||
module.exports = { | ||
contentType, contentTypeHandler, | ||
get, nil, source, value, pointer, | ||
entries, map, pipeline | ||
}; |
{ | ||
"name": "@hyperjump/browser", | ||
"version": "0.8.0", | ||
"version": "0.9.0", | ||
"description": "A generic hypermedia client for JSON Reference", | ||
@@ -5,0 +5,0 @@ "scripts": { |
@@ -63,3 +63,3 @@ Hyperjump Browser | ||
}, | ||
"eee": ["a", { "$ref": "#/ddd/111" }], | ||
"eee": [333, { "$ref": "#/ddd/111" }], | ||
"fff": { | ||
@@ -90,3 +90,3 @@ "$id": "http://json-reference.hyperjump.io/example2", | ||
const eee = JRef.get("#/eee", doc); | ||
const types = await JRef.map((item) => typeof JRef.value(item), eee); // => ["string", "number"]; | ||
const types = await JRef.map((item) => JRef.value(item) * 2, eee); // => [666, 222]; | ||
@@ -99,2 +99,10 @@ // Get the key/value pairs of a document whose value is an object | ||
// ] | ||
// Apply operations as a pipeline that works with promises | ||
const doubleEee = JRef.pipeline([ | ||
JRef.get("#/eee"), | ||
JRef.map(JRef.value), | ||
(items) => items.map((a) => a * 2) | ||
]); | ||
await doubleEee(doc); // => [666, 222] | ||
}()); | ||
@@ -101,0 +109,0 @@ ``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
13054
103
232