Comparing version 1.1.2 to 1.2.0
42
index.js
@@ -226,2 +226,16 @@ /* | ||
/** | ||
* Returns whether or not the JSON Pointer is a file reference. | ||
* | ||
* @param {string} ptr - The JSON Pointer | ||
* | ||
* @returns {boolean} true if the JSON Pointer is a file or false if not | ||
* | ||
* @throws Error if the arguments are missing or invalid | ||
*/ | ||
var isFilePointer = module.exports.isFilePointer = function isFilePointer (ptr) { | ||
// The set of file pointers is a subset of the set of remote pointers without scheme prefix | ||
return isRemotePointer(ptr) && !(/^[a-zA-Z]+:\/\//.test(ptr)); | ||
}; | ||
/** | ||
* Takes a JSON Reference and returns an array of path segments. | ||
@@ -427,7 +441,9 @@ * | ||
// All references at this point should be local except missing/invalid references | ||
_.each(findRefs(json), function (ref, refPtr) { | ||
if (!isRemotePointer(ref)) { | ||
replaceReference(ref, refPtr); | ||
} | ||
}); | ||
if (_.isUndefined(options.resolveLocalRefs) || options.resolveLocalRefs) { | ||
_.each(findRefs(json), function (ref, refPtr) { | ||
if (!isRemotePointer(ref)) { | ||
replaceReference(ref, refPtr); | ||
} | ||
}); | ||
} | ||
@@ -513,3 +529,8 @@ // Remove full locations from reference metadata | ||
_.each(findRefs(json), function (ptr, refPtr) { | ||
if (isRemotePointer(ptr)) { | ||
// Use resolve filters from options to resolve/not resolve references | ||
var isFilePtr = isFilePointer(ptr); | ||
var isRemotePtr = isRemotePointer(ptr); | ||
if ((isFilePtr && (_.isUndefined(options.resolveFileRefs) || options.resolveFileRefs)) || | ||
(!isFilePtr && isRemotePtr && (_.isUndefined(options.resolveRemoteRefs) || options.resolveRemoteRefs))) { | ||
allTasks = allTasks.then(function () { | ||
@@ -592,2 +613,5 @@ var remoteLocation = computeUrl(options.location, ptr); | ||
* @param {string} [options.location] - The location to which relative references should be resolved | ||
* @param {boolean} [options.resolveLocalRefs=true] - Resolve local references | ||
* @param {boolean} [options.resolveRemoteRefs=true] - Resolve remote references | ||
* @param {boolean} [options.resolveFileRefs=true] - Resolve file references | ||
* @param {prepareRequestCallback} [options.prepareRequest] - The callback used to prepare an HTTP request | ||
@@ -689,2 +713,8 @@ * @param {processContentCallback} [options.processContent] - The callback used to process a reference's content | ||
throw new Error('options.depth must be greater or equal to zero'); | ||
} else if (!_.isUndefined(options.resolveLocalRefs) && !_.isBoolean(options.resolveLocalRefs)) { | ||
throw new Error('options.resolveLocalRefs must be a boolean'); | ||
} else if (!_.isUndefined(options.resolveRemoteRefs) && !_.isBoolean(options.resolveRemoteRefs)) { | ||
throw new Error('options.resolveRemoteRefs must be a boolean'); | ||
} else if (!_.isUndefined(options.resolveFileRefs) && !_.isBoolean(options.resolveFileRefs)) { | ||
throw new Error('options.resolveFileRefs must be a boolean'); | ||
} | ||
@@ -691,0 +721,0 @@ }); |
@@ -45,2 +45,6 @@ /* | ||
module.exports.isBoolean = function (obj) { | ||
return isType(obj, 'Boolean'); | ||
}; | ||
module.exports.isError = function (obj) { | ||
@@ -47,0 +51,0 @@ return isType(obj, 'Error'); |
{ | ||
"name": "json-refs", | ||
"version": "1.1.2", | ||
"version": "1.2.0", | ||
"description": "Various utilities for JSON References (http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
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
31489
712