Skip to content

Latest commit

 

History

History

json-sourcemap

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

@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;
		useJSON5?: boolean;
	}
): {
	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.