@types/json-to-ast
Version:
TypeScript definitions for json-to-ast
70 lines (57 loc) • 1.46 kB
TypeScript
declare namespace parse {
interface Options {
/**
* Appends location information.
*
* @default true
*/
loc?: boolean | undefined;
/**
* Appends source information to node’s location.
*
* @default null
*/
source?: string | undefined;
}
type ValueNode = ObjectNode | ArrayNode | LiteralNode;
interface Position {
line: number;
column: number;
offset: number;
}
interface Location {
start: Position;
end: Position;
source: string | null;
}
interface ASTNode {
type: string;
loc?: Location | undefined;
}
interface ObjectNode extends ASTNode {
type: "Object";
children: PropertyNode[];
}
interface PropertyNode extends ASTNode {
type: "Property";
key: IdentifierNode;
value: ValueNode;
}
interface IdentifierNode extends ASTNode {
type: "Identifier";
value: string;
raw: string;
}
interface ArrayNode extends ASTNode {
type: "Array";
children: ValueNode[];
}
interface LiteralNode extends ASTNode {
type: "Literal";
value: string | number | boolean | null;
raw: string;
}
}
declare function parse(json: string, settings?: parse.Options): parse.ValueNode;
export = parse;
export as namespace jsonToAst;