* Backport #6031

* Backport #6031

* Rebase on master, rerun scripts

* Update flowconfig
This commit is contained in:
jbrown215 2017-08-15 17:42:01 -04:00 committed by Henry Zhu
parent d375d80001
commit f4716dc816
4 changed files with 116 additions and 77 deletions

View File

@ -1,6 +1,7 @@
[ignore] [ignore]
.*/packages/.*/lib .*/packages/.*/lib
.*/packages/.*/test .*/packages/.*/test
.*/node_modules/conventional-changelog-core/
[include] [include]
packages/*/src packages/*/src

View File

@ -68,8 +68,8 @@ declare class BabelNodeDirectiveLiteral extends BabelNode {
declare class BabelNodeBlockStatement extends BabelNode { declare class BabelNodeBlockStatement extends BabelNode {
type: "BlockStatement"; type: "BlockStatement";
directives?: any;
body: any; body: any;
directives?: any;
} }
declare class BabelNodeBreakStatement extends BabelNode { declare class BabelNodeBreakStatement extends BabelNode {
@ -231,8 +231,8 @@ declare class BabelNodeNewExpression extends BabelNode {
declare class BabelNodeProgram extends BabelNode { declare class BabelNodeProgram extends BabelNode {
type: "Program"; type: "Program";
directives?: any;
body: any; body: any;
directives?: any;
} }
declare class BabelNodeObjectExpression extends BabelNode { declare class BabelNodeObjectExpression extends BabelNode {
@ -243,22 +243,22 @@ declare class BabelNodeObjectExpression extends BabelNode {
declare class BabelNodeObjectMethod extends BabelNode { declare class BabelNodeObjectMethod extends BabelNode {
type: "ObjectMethod"; type: "ObjectMethod";
kind?: any; kind?: any;
computed?: boolean;
key: any; key: any;
decorators?: any;
body: BabelNodeBlockStatement;
generator?: boolean;
async?: boolean;
params: any; params: any;
body: BabelNodeBlockStatement;
computed?: boolean;
async?: boolean;
decorators?: any;
generator?: boolean;
returnType?: any; returnType?: any;
typeParameters?: any; typeParameters?: any;
} }
declare class BabelNodeObjectProperty extends BabelNode { declare class BabelNodeObjectProperty extends BabelNode {
type: "ObjectProperty"; type: "ObjectProperty";
computed?: boolean;
key: any; key: any;
value: BabelNodeExpression | BabelNodePattern | BabelNodeRestElement; value: BabelNodeExpression | BabelNodePattern | BabelNodeRestElement;
computed?: boolean;
shorthand?: boolean; shorthand?: boolean;
decorators?: any; decorators?: any;
} }
@ -266,8 +266,8 @@ declare class BabelNodeObjectProperty extends BabelNode {
declare class BabelNodeRestElement extends BabelNode { declare class BabelNodeRestElement extends BabelNode {
type: "RestElement"; type: "RestElement";
argument: BabelNodeLVal; argument: BabelNodeLVal;
decorators?: any;
typeAnnotation: any; typeAnnotation: any;
decorators?: any;
} }
declare class BabelNodeReturnStatement extends BabelNode { declare class BabelNodeReturnStatement extends BabelNode {
@ -303,24 +303,24 @@ declare class BabelNodeThrowStatement extends BabelNode {
declare class BabelNodeTryStatement extends BabelNode { declare class BabelNodeTryStatement extends BabelNode {
type: "TryStatement"; type: "TryStatement";
body?: ?BabelNodeBlockStatement; block: any;
handler?: any; handler?: any;
finalizer?: ?BabelNodeBlockStatement; finalizer?: ?BabelNodeBlockStatement;
block: any; body?: ?BabelNodeBlockStatement;
} }
declare class BabelNodeUnaryExpression extends BabelNode { declare class BabelNodeUnaryExpression extends BabelNode {
type: "UnaryExpression"; type: "UnaryExpression";
prefix?: boolean;
argument: BabelNodeExpression;
operator: "void" | "delete" | "!" | "+" | "-" | "++" | "--" | "~" | "typeof"; operator: "void" | "delete" | "!" | "+" | "-" | "++" | "--" | "~" | "typeof";
argument: BabelNodeExpression;
prefix?: boolean;
} }
declare class BabelNodeUpdateExpression extends BabelNode { declare class BabelNodeUpdateExpression extends BabelNode {
type: "UpdateExpression"; type: "UpdateExpression";
prefix?: boolean;
argument: BabelNodeExpression;
operator: "++" | "--"; operator: "++" | "--";
argument: BabelNodeExpression;
prefix?: boolean;
} }
declare class BabelNodeVariableDeclaration extends BabelNode { declare class BabelNodeVariableDeclaration extends BabelNode {
@ -357,8 +357,8 @@ declare class BabelNodeAssignmentPattern extends BabelNode {
declare class BabelNodeArrayPattern extends BabelNode { declare class BabelNodeArrayPattern extends BabelNode {
type: "ArrayPattern"; type: "ArrayPattern";
elements: any; elements: any;
decorators?: any;
typeAnnotation: any; typeAnnotation: any;
decorators?: any;
} }
declare class BabelNodeArrowFunctionExpression extends BabelNode { declare class BabelNodeArrowFunctionExpression extends BabelNode {
@ -378,23 +378,23 @@ declare class BabelNodeClassBody extends BabelNode {
declare class BabelNodeClassDeclaration extends BabelNode { declare class BabelNodeClassDeclaration extends BabelNode {
type: "ClassDeclaration"; type: "ClassDeclaration";
id: BabelNodeIdentifier; id: BabelNodeIdentifier;
body: BabelNodeClassBody;
superClass?: ?BabelNodeExpression; superClass?: ?BabelNodeExpression;
body: BabelNodeClassBody;
decorators: any; decorators: any;
mixins?: any; mixins?: any;
typeParameters?: any;
superTypeParameters?: any; superTypeParameters?: any;
typeParameters?: any;
} }
declare class BabelNodeClassExpression extends BabelNode { declare class BabelNodeClassExpression extends BabelNode {
type: "ClassExpression"; type: "ClassExpression";
id?: ?BabelNodeIdentifier; id?: ?BabelNodeIdentifier;
body: BabelNodeClassBody;
superClass?: ?BabelNodeExpression; superClass?: ?BabelNodeExpression;
body: BabelNodeClassBody;
decorators: any; decorators: any;
mixins?: any; mixins?: any;
typeParameters?: any;
superTypeParameters?: any; superTypeParameters?: any;
typeParameters?: any;
} }
declare class BabelNodeExportAllDeclaration extends BabelNode { declare class BabelNodeExportAllDeclaration extends BabelNode {
@ -459,13 +459,13 @@ declare class BabelNodeMetaProperty extends BabelNode {
declare class BabelNodeClassMethod extends BabelNode { declare class BabelNodeClassMethod extends BabelNode {
type: "ClassMethod"; type: "ClassMethod";
kind?: any; kind?: any;
computed?: boolean;
key: any; key: any;
params: any; params: any;
body: BabelNodeBlockStatement; body: BabelNodeBlockStatement;
generator?: boolean; computed?: boolean;
async?: boolean; async?: boolean;
decorators?: any; decorators?: any;
generator?: boolean;
returnType?: any; returnType?: any;
typeParameters?: any; typeParameters?: any;
} }
@ -473,8 +473,8 @@ declare class BabelNodeClassMethod extends BabelNode {
declare class BabelNodeObjectPattern extends BabelNode { declare class BabelNodeObjectPattern extends BabelNode {
type: "ObjectPattern"; type: "ObjectPattern";
properties: any; properties: any;
decorators?: any;
typeAnnotation: any; typeAnnotation: any;
decorators?: any;
} }
declare class BabelNodeSpreadElement extends BabelNode { declare class BabelNodeSpreadElement extends BabelNode {
@ -506,8 +506,8 @@ declare class BabelNodeTemplateLiteral extends BabelNode {
declare class BabelNodeYieldExpression extends BabelNode { declare class BabelNodeYieldExpression extends BabelNode {
type: "YieldExpression"; type: "YieldExpression";
delegate?: boolean;
argument?: ?BabelNodeExpression; argument?: ?BabelNodeExpression;
delegate?: boolean;
} }
declare class BabelNodeAnyTypeAnnotation extends BabelNode { declare class BabelNodeAnyTypeAnnotation extends BabelNode {
@ -539,11 +539,11 @@ declare class BabelNodeClassImplements extends BabelNode {
declare class BabelNodeClassProperty extends BabelNode { declare class BabelNodeClassProperty extends BabelNode {
type: "ClassProperty"; type: "ClassProperty";
computed?: boolean;
key: any; key: any;
value: any; value: any;
typeAnnotation: any; typeAnnotation: any;
decorators: any; decorators: any;
computed?: boolean;
} }
declare class BabelNodeDeclareClass extends BabelNode { declare class BabelNodeDeclareClass extends BabelNode {
@ -595,6 +595,13 @@ declare class BabelNodeDeclareVariable extends BabelNode {
id: any; id: any;
} }
declare class BabelNodeDeclareExportDeclaration extends BabelNode {
type: "DeclareExportDeclaration";
declaration: any;
specifiers: any;
source: any;
}
declare class BabelNodeExistentialTypeParam extends BabelNode { declare class BabelNodeExistentialTypeParam extends BabelNode {
type: "ExistentialTypeParam"; type: "ExistentialTypeParam";
} }
@ -819,8 +826,8 @@ declare class BabelNodeJSXNamespacedName extends BabelNode {
declare class BabelNodeJSXOpeningElement extends BabelNode { declare class BabelNodeJSXOpeningElement extends BabelNode {
type: "JSXOpeningElement"; type: "JSXOpeningElement";
name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression; name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression;
selfClosing?: boolean;
attributes: any; attributes: any;
selfClosing?: boolean;
} }
declare class BabelNodeJSXSpreadAttribute extends BabelNode { declare class BabelNodeJSXSpreadAttribute extends BabelNode {
@ -899,7 +906,7 @@ type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression;
type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeForAwaitStatement; type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeForAwaitStatement;
type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeForAwaitStatement; type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeForAwaitStatement;
type BabelNodeBlock = BabelNodeBlockStatement | BabelNodeProgram; type BabelNodeBlock = BabelNodeBlockStatement | BabelNodeProgram;
type BabelNodeStatement = BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeReturnStatement | BabelNodeSwitchStatement | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeVariableDeclaration | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias | BabelNodeOpaqueType | BabelNodeForAwaitStatement; type BabelNodeStatement = BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeReturnStatement | BabelNodeSwitchStatement | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeVariableDeclaration | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias | BabelNodeOpaqueType | BabelNodeForAwaitStatement;
type BabelNodeTerminatorless = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement | BabelNodeYieldExpression | BabelNodeAwaitExpression; type BabelNodeTerminatorless = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement | BabelNodeYieldExpression | BabelNodeAwaitExpression;
type BabelNodeCompletionStatement = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement; type BabelNodeCompletionStatement = BabelNodeBreakStatement | BabelNodeContinueStatement | BabelNodeReturnStatement | BabelNodeThrowStatement;
type BabelNodeConditional = BabelNodeConditionalExpression | BabelNodeIfStatement; type BabelNodeConditional = BabelNodeConditionalExpression | BabelNodeIfStatement;
@ -911,7 +918,7 @@ type BabelNodeForXStatement = BabelNodeForInStatement | BabelNodeForOfStatement
type BabelNodeFunction = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod; type BabelNodeFunction = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod;
type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod; type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod;
type BabelNodePureish = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression; type BabelNodePureish = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression;
type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias | BabelNodeOpaqueType; type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias | BabelNodeOpaqueType;
type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern;
type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeTemplateLiteral; type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeTemplateLiteral;
type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXOpeningElement | BabelNodeJSXText; type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXOpeningElement | BabelNodeJSXText;
@ -925,9 +932,9 @@ type BabelNodeClass = BabelNodeClassDeclaration | BabelNodeClassExpression;
type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration; type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration;
type BabelNodeExportDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration; type BabelNodeExportDeclaration = BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration;
type BabelNodeModuleSpecifier = BabelNodeExportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeExportDefaultSpecifier | BabelNodeExportNamespaceSpecifier; type BabelNodeModuleSpecifier = BabelNodeExportSpecifier | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeExportDefaultSpecifier | BabelNodeExportNamespaceSpecifier;
type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeExistentialTypeParam | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumericLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeOpaqueType | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeQualifiedTypeIdentifier | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation; type BabelNodeFlow = BabelNodeAnyTypeAnnotation | BabelNodeArrayTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeBooleanLiteralTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeClassImplements | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeExistentialTypeParam | BabelNodeFunctionTypeAnnotation | BabelNodeFunctionTypeParam | BabelNodeGenericTypeAnnotation | BabelNodeInterfaceExtends | BabelNodeInterfaceDeclaration | BabelNodeIntersectionTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNullableTypeAnnotation | BabelNodeNumericLiteralTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringLiteralTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeTupleTypeAnnotation | BabelNodeTypeofTypeAnnotation | BabelNodeTypeAlias | BabelNodeOpaqueType | BabelNodeTypeAnnotation | BabelNodeTypeCastExpression | BabelNodeTypeParameter | BabelNodeTypeParameterDeclaration | BabelNodeTypeParameterInstantiation | BabelNodeObjectTypeAnnotation | BabelNodeObjectTypeCallProperty | BabelNodeObjectTypeIndexer | BabelNodeObjectTypeProperty | BabelNodeObjectTypeSpreadProperty | BabelNodeQualifiedTypeIdentifier | BabelNodeUnionTypeAnnotation | BabelNodeVoidTypeAnnotation;
type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeVoidTypeAnnotation; type BabelNodeFlowBaseAnnotation = BabelNodeAnyTypeAnnotation | BabelNodeBooleanTypeAnnotation | BabelNodeNullLiteralTypeAnnotation | BabelNodeMixedTypeAnnotation | BabelNodeEmptyTypeAnnotation | BabelNodeNumberTypeAnnotation | BabelNodeStringTypeAnnotation | BabelNodeThisTypeAnnotation | BabelNodeVoidTypeAnnotation;
type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias | BabelNodeOpaqueType; type BabelNodeFlowDeclaration = BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeInterfaceDeclaration | BabelNodeTypeAlias | BabelNodeOpaqueType;
type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText; type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText;
declare module "babel-types" { declare module "babel-types" {
@ -936,7 +943,7 @@ declare module "babel-types" {
declare function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeBinaryExpression; declare function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeBinaryExpression;
declare function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; declare function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective;
declare function directiveLiteral(value: string): BabelNodeDirectiveLiteral; declare function directiveLiteral(value: string): BabelNodeDirectiveLiteral;
declare function blockStatement(directives?: any, body: any): BabelNodeBlockStatement; declare function blockStatement(body: any, directives?: any): BabelNodeBlockStatement;
declare function breakStatement(label?: ?BabelNodeIdentifier): BabelNodeBreakStatement; declare function breakStatement(label?: ?BabelNodeIdentifier): BabelNodeBreakStatement;
declare function callExpression(callee: BabelNodeExpression, _arguments: any): BabelNodeCallExpression; declare function callExpression(callee: BabelNodeExpression, _arguments: any): BabelNodeCallExpression;
declare function catchClause(param: BabelNodeIdentifier, body: BabelNodeBlockStatement): BabelNodeCatchClause; declare function catchClause(param: BabelNodeIdentifier, body: BabelNodeBlockStatement): BabelNodeCatchClause;
@ -962,30 +969,30 @@ declare module "babel-types" {
declare function logicalExpression(operator: "||" | "&&", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression; declare function logicalExpression(operator: "||" | "&&", left: BabelNodeExpression, right: BabelNodeExpression): BabelNodeLogicalExpression;
declare function memberExpression(object: BabelNodeExpression, property: any, computed?: boolean): BabelNodeMemberExpression; declare function memberExpression(object: BabelNodeExpression, property: any, computed?: boolean): BabelNodeMemberExpression;
declare function newExpression(callee: BabelNodeExpression, _arguments: any): BabelNodeNewExpression; declare function newExpression(callee: BabelNodeExpression, _arguments: any): BabelNodeNewExpression;
declare function program(directives?: any, body: any): BabelNodeProgram; declare function program(body: any, directives?: any): BabelNodeProgram;
declare function objectExpression(properties: any): BabelNodeObjectExpression; declare function objectExpression(properties: any): BabelNodeObjectExpression;
declare function objectMethod(kind?: any, computed?: boolean, key: any, decorators?: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, params: any, returnType?: any, typeParameters?: any): BabelNodeObjectMethod; declare function objectMethod(kind?: any, key: any, params: any, body: BabelNodeBlockStatement, computed?: boolean, async?: boolean, decorators?: any, generator?: boolean, returnType?: any, typeParameters?: any): BabelNodeObjectMethod;
declare function objectProperty(computed?: boolean, key: any, value: BabelNodeExpression | BabelNodePattern | BabelNodeRestElement, shorthand?: boolean, decorators?: any): BabelNodeObjectProperty; declare function objectProperty(key: any, value: BabelNodeExpression | BabelNodePattern | BabelNodeRestElement, computed?: boolean, shorthand?: boolean, decorators?: any): BabelNodeObjectProperty;
declare function restElement(argument: BabelNodeLVal, decorators?: any, typeAnnotation: any): BabelNodeRestElement; declare function restElement(argument: BabelNodeLVal, typeAnnotation: any, decorators?: any): BabelNodeRestElement;
declare function returnStatement(argument?: ?BabelNodeExpression): BabelNodeReturnStatement; declare function returnStatement(argument?: ?BabelNodeExpression): BabelNodeReturnStatement;
declare function sequenceExpression(expressions: any): BabelNodeSequenceExpression; declare function sequenceExpression(expressions: any): BabelNodeSequenceExpression;
declare function switchCase(test?: ?BabelNodeExpression, consequent: any): BabelNodeSwitchCase; declare function switchCase(test?: ?BabelNodeExpression, consequent: any): BabelNodeSwitchCase;
declare function switchStatement(discriminant: BabelNodeExpression, cases: any): BabelNodeSwitchStatement; declare function switchStatement(discriminant: BabelNodeExpression, cases: any): BabelNodeSwitchStatement;
declare function thisExpression(): BabelNodeThisExpression; declare function thisExpression(): BabelNodeThisExpression;
declare function throwStatement(argument: BabelNodeExpression): BabelNodeThrowStatement; declare function throwStatement(argument: BabelNodeExpression): BabelNodeThrowStatement;
declare function tryStatement(body?: ?BabelNodeBlockStatement, handler?: any, finalizer?: ?BabelNodeBlockStatement, block: any): BabelNodeTryStatement; declare function tryStatement(block: any, handler?: any, finalizer?: ?BabelNodeBlockStatement, body?: ?BabelNodeBlockStatement): BabelNodeTryStatement;
declare function unaryExpression(prefix?: boolean, argument: BabelNodeExpression, operator: "void" | "delete" | "!" | "+" | "-" | "++" | "--" | "~" | "typeof"): BabelNodeUnaryExpression; declare function unaryExpression(operator: "void" | "delete" | "!" | "+" | "-" | "++" | "--" | "~" | "typeof", argument: BabelNodeExpression, prefix?: boolean): BabelNodeUnaryExpression;
declare function updateExpression(prefix?: boolean, argument: BabelNodeExpression, operator: "++" | "--"): BabelNodeUpdateExpression; declare function updateExpression(operator: "++" | "--", argument: BabelNodeExpression, prefix?: boolean): BabelNodeUpdateExpression;
declare function variableDeclaration(kind: any, declarations: any): BabelNodeVariableDeclaration; declare function variableDeclaration(kind: any, declarations: any): BabelNodeVariableDeclaration;
declare function variableDeclarator(id: BabelNodeLVal, init?: ?BabelNodeExpression): BabelNodeVariableDeclarator; declare function variableDeclarator(id: BabelNodeLVal, init?: ?BabelNodeExpression): BabelNodeVariableDeclarator;
declare function whileStatement(test: BabelNodeExpression, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWhileStatement; declare function whileStatement(test: BabelNodeExpression, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWhileStatement;
declare function withStatement(object: any, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWithStatement; declare function withStatement(object: any, body: BabelNodeBlockStatement | BabelNodeStatement): BabelNodeWithStatement;
declare function assignmentPattern(left: BabelNodeIdentifier, right: BabelNodeExpression, decorators?: any): BabelNodeAssignmentPattern; declare function assignmentPattern(left: BabelNodeIdentifier, right: BabelNodeExpression, decorators?: any): BabelNodeAssignmentPattern;
declare function arrayPattern(elements: any, decorators?: any, typeAnnotation: any): BabelNodeArrayPattern; declare function arrayPattern(elements: any, typeAnnotation: any, decorators?: any): BabelNodeArrayPattern;
declare function arrowFunctionExpression(params: any, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean, returnType?: any, typeParameters?: any): BabelNodeArrowFunctionExpression; declare function arrowFunctionExpression(params: any, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean, returnType?: any, typeParameters?: any): BabelNodeArrowFunctionExpression;
declare function classBody(body: any): BabelNodeClassBody; declare function classBody(body: any): BabelNodeClassBody;
declare function classDeclaration(id: BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, mixins?: any, typeParameters?: any, superTypeParameters?: any, _implements?: any): BabelNodeClassDeclaration; declare function classDeclaration(id: BabelNodeIdentifier, superClass?: ?BabelNodeExpression, body: BabelNodeClassBody, decorators: any, _implements?: any, mixins?: any, superTypeParameters?: any, typeParameters?: any): BabelNodeClassDeclaration;
declare function classExpression(id?: ?BabelNodeIdentifier, body: BabelNodeClassBody, superClass?: ?BabelNodeExpression, decorators: any, mixins?: any, typeParameters?: any, superTypeParameters?: any, _implements?: any): BabelNodeClassExpression; declare function classExpression(id?: ?BabelNodeIdentifier, superClass?: ?BabelNodeExpression, body: BabelNodeClassBody, decorators: any, _implements?: any, mixins?: any, superTypeParameters?: any, typeParameters?: any): BabelNodeClassExpression;
declare function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; declare function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration;
declare function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; declare function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration;
declare function exportNamedDeclaration(declaration?: ?BabelNodeDeclaration, specifiers: any, source?: ?BabelNodeStringLiteral): BabelNodeExportNamedDeclaration; declare function exportNamedDeclaration(declaration?: ?BabelNodeDeclaration, specifiers: any, source?: ?BabelNodeStringLiteral): BabelNodeExportNamedDeclaration;
@ -996,20 +1003,20 @@ declare module "babel-types" {
declare function importNamespaceSpecifier(local: BabelNodeIdentifier): BabelNodeImportNamespaceSpecifier; declare function importNamespaceSpecifier(local: BabelNodeIdentifier): BabelNodeImportNamespaceSpecifier;
declare function importSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier, importKind?: null | "type" | "typeof"): BabelNodeImportSpecifier; declare function importSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier, importKind?: null | "type" | "typeof"): BabelNodeImportSpecifier;
declare function metaProperty(meta: string, property: string): BabelNodeMetaProperty; declare function metaProperty(meta: string, property: string): BabelNodeMetaProperty;
declare function classMethod(kind?: any, computed?: boolean, _static?: boolean, key: any, params: any, body: BabelNodeBlockStatement, generator?: boolean, async?: boolean, decorators?: any, returnType?: any, typeParameters?: any): BabelNodeClassMethod; declare function classMethod(kind?: any, key: any, params: any, body: BabelNodeBlockStatement, computed?: boolean, _static?: boolean, async?: boolean, decorators?: any, generator?: boolean, returnType?: any, typeParameters?: any): BabelNodeClassMethod;
declare function objectPattern(properties: any, decorators?: any, typeAnnotation: any): BabelNodeObjectPattern; declare function objectPattern(properties: any, typeAnnotation: any, decorators?: any): BabelNodeObjectPattern;
declare function spreadElement(argument: BabelNodeExpression): BabelNodeSpreadElement; declare function spreadElement(argument: BabelNodeExpression): BabelNodeSpreadElement;
declare function taggedTemplateExpression(tag: BabelNodeExpression, quasi: BabelNodeTemplateLiteral): BabelNodeTaggedTemplateExpression; declare function taggedTemplateExpression(tag: BabelNodeExpression, quasi: BabelNodeTemplateLiteral): BabelNodeTaggedTemplateExpression;
declare function templateElement(value: any, tail?: boolean): BabelNodeTemplateElement; declare function templateElement(value: any, tail?: boolean): BabelNodeTemplateElement;
declare function templateLiteral(quasis: any, expressions: any): BabelNodeTemplateLiteral; declare function templateLiteral(quasis: any, expressions: any): BabelNodeTemplateLiteral;
declare function yieldExpression(delegate?: boolean, argument?: ?BabelNodeExpression): BabelNodeYieldExpression; declare function yieldExpression(argument?: ?BabelNodeExpression, delegate?: boolean): BabelNodeYieldExpression;
declare function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation; declare function anyTypeAnnotation(): BabelNodeAnyTypeAnnotation;
declare function arrayTypeAnnotation(elementType: any): BabelNodeArrayTypeAnnotation; declare function arrayTypeAnnotation(elementType: any): BabelNodeArrayTypeAnnotation;
declare function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation; declare function booleanTypeAnnotation(): BabelNodeBooleanTypeAnnotation;
declare function booleanLiteralTypeAnnotation(): BabelNodeBooleanLiteralTypeAnnotation; declare function booleanLiteralTypeAnnotation(): BabelNodeBooleanLiteralTypeAnnotation;
declare function nullLiteralTypeAnnotation(): BabelNodeNullLiteralTypeAnnotation; declare function nullLiteralTypeAnnotation(): BabelNodeNullLiteralTypeAnnotation;
declare function classImplements(id: any, typeParameters: any): BabelNodeClassImplements; declare function classImplements(id: any, typeParameters: any): BabelNodeClassImplements;
declare function classProperty(computed?: boolean, key: any, value: any, typeAnnotation: any, decorators: any): BabelNodeClassProperty; declare function classProperty(key: any, value: any, typeAnnotation: any, decorators: any, computed?: boolean): BabelNodeClassProperty;
declare function declareClass(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareClass; declare function declareClass(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareClass;
declare function declareFunction(id: any): BabelNodeDeclareFunction; declare function declareFunction(id: any): BabelNodeDeclareFunction;
declare function declareInterface(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareInterface; declare function declareInterface(id: any, typeParameters: any, _extends: any, body: any): BabelNodeDeclareInterface;
@ -1018,6 +1025,7 @@ declare module "babel-types" {
declare function declareTypeAlias(id: any, typeParameters: any, right: any): BabelNodeDeclareTypeAlias; declare function declareTypeAlias(id: any, typeParameters: any, right: any): BabelNodeDeclareTypeAlias;
declare function declareOpaqueType(id: any, typeParameters: any, supertype: any): BabelNodeDeclareOpaqueType; declare function declareOpaqueType(id: any, typeParameters: any, supertype: any): BabelNodeDeclareOpaqueType;
declare function declareVariable(id: any): BabelNodeDeclareVariable; declare function declareVariable(id: any): BabelNodeDeclareVariable;
declare function declareExportDeclaration(declaration: any, specifiers: any, source: any): BabelNodeDeclareExportDeclaration;
declare function existentialTypeParam(): BabelNodeExistentialTypeParam; declare function existentialTypeParam(): BabelNodeExistentialTypeParam;
declare function functionTypeAnnotation(typeParameters: any, params: any, rest: any, returnType: any): BabelNodeFunctionTypeAnnotation; declare function functionTypeAnnotation(typeParameters: any, params: any, rest: any, returnType: any): BabelNodeFunctionTypeAnnotation;
declare function functionTypeParam(name: any, typeAnnotation: any): BabelNodeFunctionTypeParam; declare function functionTypeParam(name: any, typeAnnotation: any): BabelNodeFunctionTypeParam;
@ -1059,7 +1067,7 @@ declare module "babel-types" {
declare function jSXIdentifier(name: string): BabelNodeJSXIdentifier; declare function jSXIdentifier(name: string): BabelNodeJSXIdentifier;
declare function jSXMemberExpression(object: BabelNodeJSXMemberExpression | BabelNodeJSXIdentifier, property: BabelNodeJSXIdentifier): BabelNodeJSXMemberExpression; declare function jSXMemberExpression(object: BabelNodeJSXMemberExpression | BabelNodeJSXIdentifier, property: BabelNodeJSXIdentifier): BabelNodeJSXMemberExpression;
declare function jSXNamespacedName(namespace: BabelNodeJSXIdentifier, name: BabelNodeJSXIdentifier): BabelNodeJSXNamespacedName; declare function jSXNamespacedName(namespace: BabelNodeJSXIdentifier, name: BabelNodeJSXIdentifier): BabelNodeJSXNamespacedName;
declare function jSXOpeningElement(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression, selfClosing?: boolean, attributes: any): BabelNodeJSXOpeningElement; declare function jSXOpeningElement(name: BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression, attributes: any, selfClosing?: boolean): BabelNodeJSXOpeningElement;
declare function jSXSpreadAttribute(argument: BabelNodeExpression): BabelNodeJSXSpreadAttribute; declare function jSXSpreadAttribute(argument: BabelNodeExpression): BabelNodeJSXSpreadAttribute;
declare function jSXText(value: string): BabelNodeJSXText; declare function jSXText(value: string): BabelNodeJSXText;
declare function noop(): BabelNodeNoop; declare function noop(): BabelNodeNoop;
@ -1067,7 +1075,6 @@ declare module "babel-types" {
declare function awaitExpression(argument: BabelNodeExpression): BabelNodeAwaitExpression; declare function awaitExpression(argument: BabelNodeExpression): BabelNodeAwaitExpression;
declare function forAwaitStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForAwaitStatement; declare function forAwaitStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement): BabelNodeForAwaitStatement;
declare function bindExpression(object: any, callee: any): BabelNodeBindExpression; declare function bindExpression(object: any, callee: any): BabelNodeBindExpression;
declare function import(): BabelNodeImport;
declare function decorator(expression: BabelNodeExpression): BabelNodeDecorator; declare function decorator(expression: BabelNodeExpression): BabelNodeDecorator;
declare function doExpression(body: BabelNodeBlockStatement): BabelNodeDoExpression; declare function doExpression(body: BabelNodeBlockStatement): BabelNodeDoExpression;
declare function exportDefaultSpecifier(exported: BabelNodeIdentifier): BabelNodeExportDefaultSpecifier; declare function exportDefaultSpecifier(exported: BabelNodeIdentifier): BabelNodeExportDefaultSpecifier;
@ -1162,6 +1169,7 @@ declare module "babel-types" {
declare function isDeclareTypeAlias(node: Object, opts?: Object): boolean; declare function isDeclareTypeAlias(node: Object, opts?: Object): boolean;
declare function isDeclareOpaqueType(node: Object, opts?: Object): boolean; declare function isDeclareOpaqueType(node: Object, opts?: Object): boolean;
declare function isDeclareVariable(node: Object, opts?: Object): boolean; declare function isDeclareVariable(node: Object, opts?: Object): boolean;
declare function isDeclareExportDeclaration(node: Object, opts?: Object): boolean;
declare function isExistentialTypeParam(node: Object, opts?: Object): boolean; declare function isExistentialTypeParam(node: Object, opts?: Object): boolean;
declare function isFunctionTypeAnnotation(node: Object, opts?: Object): boolean; declare function isFunctionTypeAnnotation(node: Object, opts?: Object): boolean;
declare function isFunctionTypeParam(node: Object, opts?: Object): boolean; declare function isFunctionTypeParam(node: Object, opts?: Object): boolean;

View File

@ -407,6 +407,21 @@ Aliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`
--- ---
### declareExportDeclaration
```javascript
t.declareExportDeclaration(declaration, specifiers, source)
```
See also `t.isDeclareExportDeclaration(node, opts)` and `t.assertDeclareExportDeclaration(node, opts)`.
Aliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`
- `declaration` (required)
- `specifiers` (required)
- `source` (required)
---
### declareFunction ### declareFunction
```javascript ```javascript
t.declareFunction(id) t.declareFunction(id)

View File

@ -52,20 +52,31 @@ for (var type in t.NODE_FIELDS) {
var struct = ['type: "' + type + '";']; var struct = ['type: "' + type + '";'];
var args = []; var args = [];
for (var fieldName in fields) { Object.keys(t.NODE_FIELDS[type])
var field = fields[fieldName]; .sort((fieldA, fieldB) => {
const indexA = t.BUILDER_KEYS[type].indexOf(fieldA);
const indexB = t.BUILDER_KEYS[type].indexOf(fieldB);
if (indexA === indexB) return fieldA < fieldB ? -1 : 1;
if (indexA === -1) return 1;
if (indexB === -1) return -1;
return indexA - indexB;
})
.forEach(fieldName => {
const field = fields[fieldName];
var suffix = ""; let suffix = "";
if (field.optional || field.default != null) suffix += "?"; if (field.optional || field.default != null) suffix += "?";
var typeAnnotation = "any"; let typeAnnotation = "any";
var validate = field.validate; const validate = field.validate;
if (validate) { if (validate) {
if (validate.oneOf) { if (validate.oneOf) {
typeAnnotation = validate.oneOf.map(function (val) { typeAnnotation = validate.oneOf
.map(function(val) {
return JSON.stringify(val); return JSON.stringify(val);
}).join(" | "); })
.join(" | ");
} }
if (validate.type) { if (validate.type) {
@ -77,7 +88,9 @@ for (var type in t.NODE_FIELDS) {
} }
if (validate.oneOfNodeTypes) { if (validate.oneOfNodeTypes) {
var types = validate.oneOfNodeTypes.map(type => `${NODE_PREFIX}${type}`); const types = validate.oneOfNodeTypes.map(
type => `${NODE_PREFIX}${type}`
);
typeAnnotation = types.join(" | "); typeAnnotation = types.join(" | ");
if (suffix === "?") typeAnnotation = "?" + typeAnnotation; if (suffix === "?") typeAnnotation = "?" + typeAnnotation;
} }
@ -88,16 +101,18 @@ for (var type in t.NODE_FIELDS) {
} }
args.push(t.toBindingIdentifierName(fieldName) + suffix); args.push(t.toBindingIdentifierName(fieldName) + suffix);
if (!t.isValidIdentifier(fieldName)) continue;
if (t.isValidIdentifier(fieldName)) {
struct.push(fieldName + suffix + ";"); struct.push(fieldName + suffix + ";");
} }
});
code += `declare class ${NODE_PREFIX}${type} extends ${NODE_PREFIX} { code += `declare class ${NODE_PREFIX}${type} extends ${NODE_PREFIX} {
${struct.join("\n ").trim()} ${struct.join("\n ").trim()}
}\n\n`; }\n\n`;
// Flow chokes on super() :/ // Flow chokes on super() and import() :/
if (type !== 'Super') { if (type !== "Super" && type !== "Import") {
lines.push(`declare function ${type[0].toLowerCase() + type.slice(1)}(${args.join(", ")}): ${NODE_PREFIX}${type};`); lines.push(`declare function ${type[0].toLowerCase() + type.slice(1)}(${args.join(", ")}): ${NODE_PREFIX}${type};`);
} }
} }