|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import type { Token, Comment } from "../types";
- export interface Locations {
- loc: SourceLocation;
- range: [number, number];
- }
- interface BaseJSONNode extends Locations {
- type: string;
- }
- export interface SourceLocation {
- start: Position;
- end: Position;
- }
- export interface Position {
- line: number;
- column: number;
- }
- export declare type JSONNode = JSONProgram | JSONExpressionStatement | JSONExpression | JSONProperty | JSONIdentifier | JSONTemplateLiteral | JSONTemplateElement;
- export interface JSONProgram extends BaseJSONNode {
- type: "Program";
- body: [JSONExpressionStatement];
- comments: Comment[];
- tokens: Token[];
- parent: null;
- }
- export interface JSONExpressionStatement extends BaseJSONNode {
- type: "JSONExpressionStatement";
- expression: JSONExpression;
- parent: JSONProgram;
- }
- export declare type JSONExpression = JSONArrayExpression | JSONObjectExpression | JSONLiteral | JSONUnaryExpression | JSONNumberIdentifier | JSONUndefinedIdentifier | JSONTemplateLiteral;
- export interface JSONArrayExpression extends BaseJSONNode {
- type: "JSONArrayExpression";
- elements: (JSONExpression | null)[];
- parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
- }
- export interface JSONObjectExpression extends BaseJSONNode {
- type: "JSONObjectExpression";
- properties: JSONProperty[];
- parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
- }
- export interface JSONProperty extends BaseJSONNode {
- type: "JSONProperty";
- key: JSONIdentifier | JSONStringLiteral | JSONNumberLiteral;
- value: JSONExpression;
- kind: "init";
- method: false;
- shorthand: false;
- computed: false;
- parent: JSONObjectExpression;
- }
- export interface JSONIdentifier extends BaseJSONNode {
- type: "JSONIdentifier";
- name: string;
- parent?: JSONArrayExpression | JSONProperty | JSONExpressionStatement | JSONUnaryExpression;
- }
- export interface JSONNumberIdentifier extends JSONIdentifier {
- name: "Infinity" | "NaN";
- }
- export interface JSONUndefinedIdentifier extends JSONIdentifier {
- name: "undefined";
- }
- interface JSONLiteralBase extends BaseJSONNode {
- type: "JSONLiteral";
- raw: string;
- parent?: JSONArrayExpression | JSONProperty | JSONExpressionStatement | JSONUnaryExpression;
- }
- export interface JSONStringLiteral extends JSONLiteralBase {
- value: string;
- regex: null;
- bigint: null;
- }
- export interface JSONNumberLiteral extends JSONLiteralBase {
- value: number;
- regex: null;
- bigint: null;
- }
- export interface JSONKeywordLiteral extends JSONLiteralBase {
- value: boolean | null;
- regex: null;
- bigint: null;
- }
- export interface JSONRegExpLiteral extends JSONLiteralBase {
- value: null;
- regex: {
- pattern: string;
- flags: string;
- };
- bigint: null;
- }
- export interface JSONBigIntLiteral extends JSONLiteralBase {
- value: null;
- regex: null;
- bigint: string;
- }
- export declare type JSONLiteral = JSONStringLiteral | JSONNumberLiteral | JSONKeywordLiteral | JSONRegExpLiteral | JSONBigIntLiteral;
- export interface JSONUnaryExpression extends BaseJSONNode {
- type: "JSONUnaryExpression";
- operator: "-" | "+";
- prefix: true;
- argument: JSONNumberLiteral | JSONNumberIdentifier;
- parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
- }
- export interface JSONTemplateLiteral extends BaseJSONNode {
- type: "JSONTemplateLiteral";
- quasis: [JSONTemplateElement];
- expressions: [];
- parent: JSONArrayExpression | JSONProperty | JSONExpressionStatement;
- }
- export interface JSONTemplateElement extends BaseJSONNode {
- type: "JSONTemplateElement";
- tail: boolean;
- value: {
- cooked: string;
- raw: string;
- };
- parent: JSONTemplateLiteral;
- }
- export {};
|