index.d.ts 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. // Generated by typings
  2. // Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/estree/estree.d.ts
  3. // Type definitions for ESTree AST specification
  4. // Project: https://github.com/estree/estree
  5. // Definitions by: RReverser <https://github.com/RReverser>
  6. // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
  7. declare namespace ESTree {
  8. interface Node {
  9. type: string;
  10. loc?: SourceLocation;
  11. range?: [number, number];
  12. }
  13. interface SourceLocation {
  14. source?: string;
  15. start: Position;
  16. end: Position;
  17. }
  18. interface Position {
  19. line: number;
  20. column: number;
  21. }
  22. interface Program extends Node {
  23. body: Array<Statement | ModuleDeclaration>;
  24. sourceType: string;
  25. }
  26. interface Function extends Node {
  27. id?: Identifier;
  28. params: Array<Pattern>;
  29. body: BlockStatement | Expression;
  30. generator: boolean;
  31. }
  32. interface Statement extends Node {}
  33. interface EmptyStatement extends Statement {}
  34. interface BlockStatement extends Statement {
  35. body: Array<Statement>;
  36. }
  37. interface ExpressionStatement extends Statement {
  38. expression: Expression;
  39. }
  40. interface IfStatement extends Statement {
  41. test: Expression;
  42. consequent: Statement;
  43. alternate?: Statement;
  44. }
  45. interface LabeledStatement extends Statement {
  46. label: Identifier;
  47. body: Statement;
  48. }
  49. interface BreakStatement extends Statement {
  50. label?: Identifier;
  51. }
  52. interface ContinueStatement extends Statement {
  53. label?: Identifier;
  54. }
  55. interface WithStatement extends Statement {
  56. object: Expression;
  57. body: Statement;
  58. }
  59. interface SwitchStatement extends Statement {
  60. discriminant: Expression;
  61. cases: Array<SwitchCase>;
  62. }
  63. interface ReturnStatement extends Statement {
  64. argument?: Expression;
  65. }
  66. interface ThrowStatement extends Statement {
  67. argument: Expression;
  68. }
  69. interface TryStatement extends Statement {
  70. block: BlockStatement;
  71. handler?: CatchClause;
  72. finalizer?: BlockStatement;
  73. }
  74. interface WhileStatement extends Statement {
  75. test: Expression;
  76. body: Statement;
  77. }
  78. interface DoWhileStatement extends Statement {
  79. body: Statement;
  80. test: Expression;
  81. }
  82. interface ForStatement extends Statement {
  83. init?: VariableDeclaration | Expression;
  84. test?: Expression;
  85. update?: Expression;
  86. body: Statement;
  87. }
  88. interface ForInStatement extends Statement {
  89. left: VariableDeclaration | Expression;
  90. right: Expression;
  91. body: Statement;
  92. }
  93. interface DebuggerStatement extends Statement {}
  94. interface Declaration extends Statement {}
  95. interface FunctionDeclaration extends Function, Declaration {
  96. id: Identifier;
  97. }
  98. interface VariableDeclaration extends Declaration {
  99. declarations: Array<VariableDeclarator>;
  100. kind: string;
  101. }
  102. interface VariableDeclarator extends Node {
  103. id: Pattern;
  104. init?: Expression;
  105. }
  106. interface Expression extends Node {}
  107. interface ThisExpression extends Expression {}
  108. interface ArrayExpression extends Expression {
  109. elements: Array<Expression | SpreadElement>;
  110. }
  111. interface ObjectExpression extends Expression {
  112. properties: Array<Property>;
  113. }
  114. interface Property extends Node {
  115. key: Expression;
  116. value: Expression;
  117. kind: string;
  118. method: boolean;
  119. shorthand: boolean;
  120. computed: boolean;
  121. }
  122. interface FunctionExpression extends Function, Expression {}
  123. interface SequenceExpression extends Expression {
  124. expressions: Array<Expression>;
  125. }
  126. interface UnaryExpression extends Expression {
  127. operator: UnaryOperator;
  128. prefix: boolean;
  129. argument: Expression;
  130. }
  131. interface BinaryExpression extends Expression {
  132. operator: BinaryOperator;
  133. left: Expression;
  134. right: Expression;
  135. }
  136. interface AssignmentExpression extends Expression {
  137. operator: AssignmentOperator;
  138. left: Pattern | MemberExpression;
  139. right: Expression;
  140. }
  141. interface UpdateExpression extends Expression {
  142. operator: UpdateOperator;
  143. argument: Expression;
  144. prefix: boolean;
  145. }
  146. interface LogicalExpression extends Expression {
  147. operator: LogicalOperator;
  148. left: Expression;
  149. right: Expression;
  150. }
  151. interface ConditionalExpression extends Expression {
  152. test: Expression;
  153. alternate: Expression;
  154. consequent: Expression;
  155. }
  156. interface CallExpression extends Expression {
  157. callee: Expression | Super;
  158. arguments: Array<Expression | SpreadElement>;
  159. }
  160. interface NewExpression extends CallExpression {}
  161. interface MemberExpression extends Expression, Pattern {
  162. object: Expression | Super;
  163. property: Expression;
  164. computed: boolean;
  165. }
  166. interface Pattern extends Node {}
  167. interface SwitchCase extends Node {
  168. test?: Expression;
  169. consequent: Array<Statement>;
  170. }
  171. interface CatchClause extends Node {
  172. param: Pattern;
  173. body: BlockStatement;
  174. }
  175. interface Identifier extends Node, Expression, Pattern {
  176. name: string;
  177. }
  178. interface Literal extends Node, Expression {
  179. value?: string | boolean | number | RegExp;
  180. }
  181. interface RegExpLiteral extends Literal {
  182. regex: {
  183. pattern: string;
  184. flags: string;
  185. };
  186. }
  187. type UnaryOperator = string;
  188. type BinaryOperator = string;
  189. type LogicalOperator = string;
  190. type AssignmentOperator = string;
  191. type UpdateOperator = string;
  192. interface ForOfStatement extends ForInStatement {}
  193. interface Super extends Node {}
  194. interface SpreadElement extends Node {
  195. argument: Expression;
  196. }
  197. interface ArrowFunctionExpression extends Function, Expression {
  198. expression: boolean;
  199. }
  200. interface YieldExpression extends Expression {
  201. argument?: Expression;
  202. delegate: boolean;
  203. }
  204. interface TemplateLiteral extends Expression {
  205. quasis: Array<TemplateElement>;
  206. expressions: Array<Expression>;
  207. }
  208. interface TaggedTemplateExpression extends Expression {
  209. tag: Expression;
  210. quasi: TemplateLiteral;
  211. }
  212. interface TemplateElement extends Node {
  213. tail: boolean;
  214. value: {
  215. cooked: string;
  216. raw: string;
  217. };
  218. }
  219. interface AssignmentProperty extends Property {
  220. value: Pattern;
  221. kind: string;
  222. method: boolean;
  223. }
  224. interface ObjectPattern extends Pattern {
  225. properties: Array<AssignmentProperty>;
  226. }
  227. interface ArrayPattern extends Pattern {
  228. elements: Array<Pattern>;
  229. }
  230. interface RestElement extends Pattern {
  231. argument: Pattern;
  232. }
  233. interface AssignmentPattern extends Pattern {
  234. left: Pattern;
  235. right: Expression;
  236. }
  237. interface Class extends Node {
  238. id?: Identifier;
  239. superClass: Expression;
  240. body: ClassBody;
  241. }
  242. interface ClassBody extends Node {
  243. body: Array<MethodDefinition>;
  244. }
  245. interface MethodDefinition extends Node {
  246. key: Expression;
  247. value: FunctionExpression;
  248. kind: string;
  249. computed: boolean;
  250. static: boolean;
  251. }
  252. interface ClassDeclaration extends Class, Declaration {
  253. id: Identifier;
  254. }
  255. interface ClassExpression extends Class, Expression {}
  256. interface MetaProperty extends Expression {
  257. meta: Identifier;
  258. property: Identifier;
  259. }
  260. interface ModuleDeclaration extends Node {}
  261. interface ModuleSpecifier extends Node {
  262. local: Identifier;
  263. }
  264. interface ImportDeclaration extends ModuleDeclaration {
  265. specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>;
  266. source: Literal;
  267. }
  268. interface ImportSpecifier extends ModuleSpecifier {
  269. imported: Identifier;
  270. }
  271. interface ImportDefaultSpecifier extends ModuleSpecifier {}
  272. interface ImportNamespaceSpecifier extends ModuleSpecifier {}
  273. interface ExportNamedDeclaration extends ModuleDeclaration {
  274. declaration?: Declaration;
  275. specifiers: Array<ExportSpecifier>;
  276. source?: Literal;
  277. }
  278. interface ExportSpecifier extends ModuleSpecifier {
  279. exported: Identifier;
  280. }
  281. interface ExportDefaultDeclaration extends ModuleDeclaration {
  282. declaration: Declaration | Expression;
  283. }
  284. interface ExportAllDeclaration extends ModuleDeclaration {
  285. source: Literal;
  286. }
  287. }