@swagger-api/apidom-json-path
apidom-json-path
is a package that evaluates JSONPath expressions against ApiDOM.
Installation
You can install this package via npm CLI by running the following command:
$ npm install @swagger-api/apidom-json-path
Evaluating
Package contains JSONPath evaluation functions for evaluating single or multiple JSONPath expression.
Evaluating single JSONPath expression
Suited for evaluating single JSONPath expression against ApiDOM.
import { ObjectElement } from '@swagger-api/apidom-core';
import { evaluate } from '@swagger-api/apidom-json-path';
const apidom = new ObjectElement({
a: {
b: [100, 1, 2],
},
});
const result = evaluate('$.a.b[?(@ < 10)]', apidom);
Evaluating multiple JSONPath expressions
Suited for evaluating multiple JSONPath expression against the same ApiDOM.
Use this function in cases when you have multiple JSONPath expressions that need
to be evaluated against single ApiDOM fragment.
import { ObjectElement } from '@swagger-api/apidom-core';
import { evaluateMulti } from '@swagger-api/apidom-json-path';
const apidom = new ObjectElement({
a: {
b: [100, 1, 2],
},
});
const resultMulti = evaluateMulti(['$.a.b[?(@ < 10)]', '$.a.b[?(@ > 10)]'], apidom);
Invalid JSONPath expression
If either evaluate
or evaluateMulti
functions are provided with invalid JSONPath expressions,
they don't throw errors, but they rather return empty list of end point values.
import { ObjectElement } from '@swagger-api/apidom-core';
import { evaluate, evaluateMulti } from '@swagger-api/apidom-json-path';
const apidom = new ObjectElement({
a: {
b: [100, 1, 2],
},
});
const result = evaluate('%~!@U@IU$@', apidom);
const resultMulti = evaluateMulti(['%~!@U@IU$@', 'd*AS&*)(&YR3R'], apidom);