JSPM

  • Created
  • Published
  • Downloads 1133965
  • Score
    100M100P100Q188538F
  • License MIT

Various utilities for JSON References (http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).

Package Exports

  • json-refs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (json-refs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

json-refs

Various utilities for JSON References, and JSON Pointers since JSON References are part JSON Pointer.

Project Badges

  • Build status: Build Status
  • Dependencies: Dependencies
  • Developer dependencies: Dev Dependencies
  • Downloads: NPM Downloads Per Month
  • License: License
  • Version: NPM Version

APIs

All examples below use a variable called jsonRefs. Here is how to create it:

var jsRefs = require('jsonRefs');

findRefs (json)

Arguments

  • json {object} - The JavaScript object to search for references

Response

An object whose keys are JSON Pointers to where the JSON Reference's $ref node is and the JSON Reference string.

pathFromPointer (ptr)

Arguments

  • ptr {string} - A JSON Pointer string

Response

A string[] of path segments for the JSON Pointer unless its a remote reference in which case ptr is returned as-is.

Example

console.log(jsonRefs.pathFromPointer('#/owner/login')); // ['owner', 'login']

pathToPointer (path)

Arguments

  • path {string[]} - An array of path segments.

Response

A string representing a JSON Pointer.

Example

console.log(jsonRefs.pathToPointer(['owner', 'login'])); // #/owner/login

resolveRefs (json, done)

Arguments

  • json {object}: The JavaScript object containing zero or more JSON References
  • done {function}: An error-first callback to be called with the fully-resolved object

Response

If there is an Error, the callback is called with the Error in the first argument and undefined in the second argument. If there is no Error, the first argument is undefined and the second argument is an object whose value is the fully resolved document.

Example

var json = {
  name: 'json-refs',
  owner: {
    $ref: 'https://api.github.com/repos/whitlockjc/json-refs#/owner'
  }
};
jsonRefs.resolveRefs(json, function (err, rJson) {
  if (err) throw err;

  console.log(JSON.stringify(rJson)); // {name: 'json-refs', owner: {/* GitHub Repository Owner Information */}}
});