Skip to content

Commit f22949c

Browse files
authored
fix(json-pointer-relative): use spec compliant JSON Pointer impl (#4885)
Refs #4870
1 parent 8685356 commit f22949c

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

packages/apidom-json-pointer-relative/src/compile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { compile as compileJsonPointer } from '@swagger-api/apidom-json-pointer';
1+
import { compile as compileJsonPointer } from '@swagger-api/apidom-json-pointer/modern';
22

33
import { RelativeJsonPointer } from './types.ts';
44
import CompilationRelativeJsonPointerError from './errors/CompilationRelativeJsonPointerError.ts';

packages/apidom-json-pointer-relative/src/evaluate.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
import {
1414
compile as compileJsonPointer,
1515
evaluate as evaluateJsonPointer,
16-
} from '@swagger-api/apidom-json-pointer';
16+
} from '@swagger-api/apidom-json-pointer/modern';
1717
import { last } from 'ramda';
1818

1919
import EvaluationRelativeJsonPointerError from './errors/EvaluationRelativeJsonPointerError.ts';
@@ -28,7 +28,7 @@ const evaluate = <T extends Element, U extends Element>(
2828
relativePointer: string,
2929
currentElement: T,
3030
rootElement: U,
31-
): Element => {
31+
): Element | undefined => {
3232
let ancestorLineage: Element[] = [];
3333
let cursor: Element | undefined = currentElement;
3434

@@ -148,7 +148,7 @@ const evaluate = <T extends Element, U extends Element>(
148148
if (Array.isArray(relativeJsonPointer.jsonPointerTokens)) {
149149
// <json-pointer>
150150
const jsonPointer = compileJsonPointer(relativeJsonPointer.jsonPointerTokens);
151-
cursor = evaluateJsonPointer(jsonPointer, cursor);
151+
cursor = evaluateJsonPointer(cursor, jsonPointer);
152152
} else if (relativeJsonPointer.hashCharacter) {
153153
// "#"
154154
if (cursor === rootElement) {

packages/apidom-json-pointer-relative/src/parse.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { parse as parseJsonPointer } from '@swagger-api/apidom-json-pointer';
1+
import { parse as parseJsonPointer } from '@swagger-api/apidom-json-pointer/modern';
22

33
import InvalidRelativeJsonPointerError from './errors/InvalidRelativeJsonPointerError.ts';
44
import { RelativeJsonPointer } from './types.ts';
@@ -41,7 +41,7 @@ const parse = (relativePointer: string): RelativeJsonPointer => {
4141
// <json-pointer>
4242
const jsonPointerTokens =
4343
typeof match.groups.jsonPointer === 'string'
44-
? parseJsonPointer(match.groups.jsonPointer)
44+
? parseJsonPointer(match.groups.jsonPointer).tree
4545
: undefined;
4646
// "#"
4747
const hashCharacter = typeof match.groups.hashCharacter === 'string';

packages/apidom-json-pointer/src/index.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ export {
1111
CSTTranslator,
1212
ASTTranslator,
1313
XMLTranslator,
14+
/**
15+
* Testing
16+
*/
17+
testJSONPointer,
18+
testReferenceToken,
19+
testArrayLocation,
20+
testArrayIndex,
21+
testArrayDash,
1422
/**
1523
* Compiling
1624
*/
@@ -20,6 +28,10 @@ export {
2028
*/
2129
escape,
2230
unescape,
31+
/**
32+
* Grammar
33+
*/
34+
Grammar,
2335
/**
2436
* Errors
2537
*/
@@ -32,7 +44,10 @@ export {
3244
JSONPointerIndexError,
3345
} from '@swaggerexpert/json-pointer';
3446
/**
35-
* Evaluation
47+
* Contextual Evaluation for ApiDOM
3648
*/
3749
export { evaluate } from '@swaggerexpert/json-pointer/evaluate/realms/apidom';
50+
/**
51+
* Re-export all types
52+
*/
3853
export type * from '@swaggerexpert/json-pointer';

0 commit comments

Comments
 (0)