@swagger-api/apidom-json-pointer
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.35 • Public • Published

@swagger-api/apidom-json-pointer

apidom-json-pointer is a package that evaluates JSON Pointer against ApiDOM.

Installation

You can install this package via npm CLI by running the following command:

 $ npm install @swagger-api/apidom-json-pointer

Modern API

This is the recommended API for use in new projects. It is fully compliant with RFC 6901 and supports all aspects of JSON Pointer. Uses @swaggerexpert/json-pointer under the hood and fully reflects its API.

Evaluation is contextual to ApiDOM realm - meaning evaluate function expects only ApiDOM as the first argument.

import { evaluate } from '@swagger-api/apidom-json-pointer/modern';

Legacy API

This is a legacy API not recommended for use in new projects. It is provided for backward compatibility only. The legacy API implementation is not RFC 6901 compliant, nor does it support all features of JSON Pointer.

Importing legacy API from @swagger-api/apidom-json-pointer is equivalent to importing from @swagger-api/apidom-json-pointer/legacy.

import { evaluate } from '@swagger-api/apidom-json-pointer';

or

import { evaluate } from '@swagger-api/apidom-json-pointer/legacy';

Evaluating

import { ObjectElement } from '@swagger-api/apidom-core';
import { evaluate } from '@swagger-api/apidom-json-pointer';

const apidom = new ObjectElement({ a: { b: 'c' } });
const result =  evaluate('/a/b', apidom);
// => StringElement('c')

Parsing

Parses JSON Pointer into list of tokens.

import { parse } from '@swagger-api/apidom-json-pointer';

const tokens = parse('/a/b'); // => ['a', 'b']

Compiling

Compiles list of tokens into JSON Pointer.

import { compile } from '@swagger-api/apidom-json-pointer';

const jsonPointer = compile(['a', 'b']); // => '/a/b'

Escaping

Escapes/unescapes tokens of JSON Pointer.

import { escape, unescape } from '@swagger-api/apidom-json-pointer';

escape('~a/'); // => '~0a~1'
unescape('~0a~1'); // => '~a/'

Transforming URI to JSON Pointer

Handles case of URI Fragment Identifier Representation.

import { uriToPointer } from '@swagger-api/apidom-json-pointer';

uriToPointer('https://example.com/path/#/a/b'); // => '/a/b'

Invalid JSON Pointers

If invalid JSON Pointer is supplied to parse or evaluate functions, InvalidJsonPointerError is thrown.

import { InvalidJsonPointerError } from '@swagger-api/apidom-json-pointer';

If valid JSON Pointer is supplied to evaluate function and the pointer cannot be evaluated against ApiDOM fragment, EvaluationJsonPointerError is thrown.

import { EvaluationJsonPointerError } from '@swagger-api/apidom-json-pointer';

Readme

Keywords

none

Package Sidebar

Install

npm i @swagger-api/apidom-json-pointer

Weekly Downloads

553,606

Version

1.0.0-beta.35

License

Apache-2.0

Unpacked Size

444 kB

Total Files

33

Last publish

Collaborators

  • swagger-api