@stoplight/spectral
Version:
A flexible object linter with out of the box support for OpenAPI v2 and v3.
28 lines • 979 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const schema_1 = require("./schema");
const jp = require('jsonpath');
exports.schemaPath = (targetVal, opts, paths, otherValues) => {
if (!targetVal || typeof targetVal !== 'object')
return [];
let object = targetVal;
const { resolved } = otherValues;
if (!resolved) {
console.warn('schema-path expects a resolved object, but none was provided. Results may not be correct.');
}
else {
object = jp.value(resolved, jp.stringify(['$', ...paths.given]));
}
const relevantObject = opts.field ? object[opts.field] : object;
if (!relevantObject)
return [];
let schemaObject;
try {
schemaObject = jp.value(object, opts.schemaPath);
}
catch (error) {
console.error(error);
}
return schema_1.schema(relevantObject, { schema: schemaObject }, paths, otherValues);
};
//# sourceMappingURL=schema-path.js.map