An open API service indexing awesome lists of open source software.

https://github.com/mischnic/json-sourcemap

Generate positions for values in JSON and JSON5 strings
https://github.com/mischnic/json-sourcemap

json json5

Last synced: 2 months ago
JSON representation

Generate positions for values in JSON and JSON5 strings

Awesome Lists containing this project

README

          

# @mischnic/json-sourcemap

Generate positions for values in JSON and JSON5 strings.

Inspired by and mostly API-compatible with https://github.com/epoberezkin/json-source-map.

## Usage

```ts
type Position = {
line: number;
column: number;
pos: number;
};

type Mapping =
| {
value: Position;
valueEnd: Position;
}
| {
value: Position;
valueEnd: Position;
key?: Position;
keyEnd?: Position;
};

export function parse(
json: string,
reviver?: (key: any, value: any) => any,
options?: {
tabWidth?: number;
dialect?: "JSON5" | "JSON";
}
): {
data: any;
pointers: Record;
};
```

The default `tabWidth` is 4.

The `valueEnd` and `keyEnd` positions are exclusive. `line`, `column` and `pos` are 0-based.