@mischnic/json-sourcemap
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

@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

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<string, Mapping>;
};

The default tabWidth is 4.

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

Readme

Keywords

none

Package Sidebar

Install

npm i @mischnic/json-sourcemap

Weekly Downloads

414,349

Version

0.1.1

License

MIT

Unpacked Size

14.5 kB

Total Files

8

Last publish

Collaborators

  • mischnic