@stoplight/json

WebJar for @stoplight/json

License

License

Apache-2.0
Categories

Categories

JSON Data
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

stoplight__json
Last Version

Last Version

3.11.0
Release Date

Release Date

Type

Type

jar
Description

Description

@stoplight/json
WebJar for @stoplight/json
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/stoplightio/json

Download stoplight__json

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/stoplight__json/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>stoplight__json</artifactId>
    <version>3.11.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/stoplight__json/
implementation 'org.webjars.npm:stoplight__json:3.11.0'
// https://jarcasting.com/artifacts/org.webjars.npm/stoplight__json/
implementation ("org.webjars.npm:stoplight__json:3.11.0")
'org.webjars.npm:stoplight__json:jar:3.11.0'
<dependency org="org.webjars.npm" name="stoplight__json" rev="3.11.0">
  <artifact name="stoplight__json" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='stoplight__json', version='3.11.0')
)
libraryDependencies += "org.webjars.npm" % "stoplight__json" % "3.11.0"
[org.webjars.npm/stoplight__json "3.11.0"]

Dependencies

compile (5)

Group / Artifact Type Version
org.webjars.npm : jsonc-parser jar [2.2.1,2.3)
org.webjars.npm : stoplight__ordered-object-literal jar [1.0.1,2)
org.webjars.npm : lodash jar [4.17.15,5)
org.webjars.npm : stoplight__types jar [11.9.0,12)
org.webjars.npm : safe-stable-stringify jar [1.1.0,2)

Project Modules

There are no modules declared in this project.

@stoplight/json

Maintainability Test Coverage

Useful functions when working with JSON.

Installation

Supported in modern browsers and node.

# latest stable version
yarn add @stoplight/json

Usage

  • parseWithPointers: Like JSON.parse(val) but also returns parsing errors as well as full ast with line information.
  • pathToPointer: Turns an array of path segments into a json pointer IE ['paths', '/user', 'get'] -> #/paths/~1user/get.
  • pointerToPath: Turns a json pointer into an array of path segments IE #/paths/~1user/get -> ['paths', '/user', 'get'].
  • safeParse: Like JSON.parse(val) but does not throw on invalid JSON.
  • safeStringify: Like JSON.stringify(val) but handles circular references.
  • startsWith: Like native JS x.startsWith(y) but works with strings AND arrays.
  • trimStart: Like lodash.startsWith(x, y) but works with strings AND arrays.
  • getJsonPathForPosition: Computes JSON path for given position.
  • getLocationForJsonPath: Retrieves location of node matching given JSON path.

Example parseWithPointers

import { parseWithPointers } from "@stoplight/json";

const result = parseWithPointers('{"foo": "bar"}');

console.log(result.data); // => the {foo: "bar"} JS object
console.log(result.pointers); // => the source map with a single "#/foo" pointer that has position info for the foo property
// basic example of getJsonPathForPosition and getLocationForJsonPath
import { getJsonPathForPosition, getLocationForJsonPath, parseWithPointers } from "@stoplight/json";

const result = parseWithPointers(`{
  "hello": "world",
  "address": {
    "street": 123
  }
}`);

const path = getJsonPathForPosition(result, { line: 3, character: 15 }); // line and character are 0-based
console.log(path); // -> ["address", "street"];

const position = getLocationForJsonPath(result, ["address"]);
console.log(position.range.start); // { line: 2, character: 13 } line and character are 0-based
console.log(position.range.end); // { line: 4, character: 3 } line and character are 0-based

Contributing

  1. Clone repo.
  2. Create / checkout feature/{name}, chore/{name}, or fix/{name} branch.
  3. Install deps: yarn.
  4. Make your changes.
  5. Run tests: yarn test.prod.
  6. Stage relevant files to git.
  7. Commit: yarn commit. NOTE: Commits that don't follow the conventional format will be rejected. yarn commit creates this format for you, or you can put it together manually and then do a regular git commit.
  8. Push: git push.
  9. Open PR targeting the next branch.
org.webjars.npm

Stoplight

Stoplight leverages your OpenAPI documents to drive the entire API development process

Versions

Version
3.11.0