index.d.ts 7.7 KB

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