1 parent
30857cd5fc
commit
5c462cc8e1
3 files changed
-247
No files matched your search
@@ -10,7 +10,6 @@
|
||||
"license": "MIT",
|
||||
"main": "./index.js",
|
||||
"dependencies": {
|
||||
"ast-types": "0.9.8",
|
||||
"babel-code-frame": "6.22.0",
|
||||
"babylon": "7.0.0-beta.10",
|
||||
"chalk": "1.1.3",
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("ast-types/fork")([
|
||||
// This core module of AST types captures ES5 as it is parsed today by
|
||||
// git://github.com/ariya/esprima.git#master.
|
||||
require("ast-types/def/core"),
|
||||
|
||||
// Feel free to add to or remove from this list of extension modules to
|
||||
// configure the precise type hierarchy that you need.
|
||||
require("ast-types/def/es6"),
|
||||
require("ast-types/def/es7"),
|
||||
require("ast-types/def/mozilla"),
|
||||
require("ast-types/def/e4x"),
|
||||
require("ast-types/def/jsx"),
|
||||
require("ast-types/def/flow"),
|
||||
require("ast-types/def/esprima"),
|
||||
require("ast-types/def/babel"),
|
||||
require("ast-types/def/babel6"),
|
||||
require("./typescript-ast-nodes.js")
|
||||
]);
|
||||
@@ -1,226 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function(fork) {
|
||||
fork.use(require("ast-types/def/es7"));
|
||||
|
||||
const types = fork.use(require("ast-types/lib/types"));
|
||||
const def = types.Type.def;
|
||||
const or = types.Type.or;
|
||||
const defaults = fork.use(require("ast-types/lib/shared")).defaults;
|
||||
|
||||
// Putting it here while it's being merged upstream
|
||||
// https://github.com/benjamn/ast-types/pull/221
|
||||
def("ObjectTypeSpreadProperty")
|
||||
.bases("Node")
|
||||
.build("argument")
|
||||
.field("argument", def("Type"));
|
||||
|
||||
// Ambient
|
||||
def("TSAmbientVariableDefinition").bases("VariableDeclaration");
|
||||
|
||||
def("TSInterfaceDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("name", "typeParameters", "members")
|
||||
.field("name", def("Identifier"))
|
||||
.field(
|
||||
"typeParameters",
|
||||
or(def("TypeParameterDeclaration"), null),
|
||||
defaults["null"]
|
||||
)
|
||||
.field("members", [def("TSSignature")]);
|
||||
|
||||
def("TSKeyword").bases("Node");
|
||||
|
||||
def("TSType").bases("Node");
|
||||
|
||||
def("TSTupleType")
|
||||
.build("elementTypes")
|
||||
.field("elementTypes", [def("TSType")])
|
||||
.bases("Node");
|
||||
|
||||
def("TSArrayType")
|
||||
.build("elementType")
|
||||
.field("elementType", def("TSType"))
|
||||
.bases("Node");
|
||||
|
||||
def("TSQualifiedName")
|
||||
.build("left", "right")
|
||||
.field("left", def("TSType"))
|
||||
.field("right", def("TSType"))
|
||||
.bases("Node");
|
||||
|
||||
def("TypeElement").bases("Node");
|
||||
|
||||
def("TSSignature")
|
||||
.bases("TypeElement")
|
||||
.build("typeParameters", "parameters", "typeAnnotation")
|
||||
.field(
|
||||
"typeParameters",
|
||||
or(def("TypeParameterDeclaration"), null),
|
||||
defaults["null"]
|
||||
)
|
||||
.field("parameters", [def("Identifier")])
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
|
||||
def("TSAnyKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSBooleanKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSNeverKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSNumberKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSObjectKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSReadonlyKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSStringKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSSymbolKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSUndefinedKeyword").bases("TSKeyword");
|
||||
|
||||
def("TSVoidKeyword").bases("TSKeyword");
|
||||
|
||||
// Types
|
||||
def("TSConstructorType").bases("TSType");
|
||||
|
||||
def("TSFunctionType")
|
||||
.bases("TSSignature")
|
||||
.build("parameters", "typeAnnotation", "typeParameters");
|
||||
|
||||
def("TSIntersectionType")
|
||||
.bases("TSType")
|
||||
.build("types")
|
||||
.field("types", [def("TSType")]);
|
||||
|
||||
def("TSParenthesizedType").bases("TSType");
|
||||
|
||||
def("TSThisType").bases("TSType");
|
||||
|
||||
def("TSUnionType")
|
||||
.bases("TSType")
|
||||
.build("types")
|
||||
.field("types", [def("TSType")]);
|
||||
|
||||
def("TSTypeLiteral")
|
||||
.bases("TSType")
|
||||
.build("members")
|
||||
.field("members", [def("TSSignature")]);
|
||||
|
||||
def("TSTypeOperator").bases("TSType");
|
||||
|
||||
def("TSTypeReference")
|
||||
.bases("TSType")
|
||||
.build("typeName", "typeParameters")
|
||||
.field("typeName", def("Identifier"))
|
||||
.field("typeParameters", def("TSType"));
|
||||
|
||||
def("TSFirstTypeNode")
|
||||
.bases("Node")
|
||||
.build("id", "typeAnnotation")
|
||||
.field("id", def("Identifier"))
|
||||
.field("typeAnnotation", def("TSType"));
|
||||
|
||||
// Signatures
|
||||
def("TSCallSignature")
|
||||
.bases("TSSignature")
|
||||
.build("typeParameters", "parameters", "typeAnnotation");
|
||||
|
||||
def("TSConstructSignature")
|
||||
.bases("TSSignature")
|
||||
.build("typeParameters", "parameters", "typeAnnotation");
|
||||
|
||||
def("TSIndexSignature")
|
||||
.bases("TSSignature")
|
||||
.build("typeParameters", "parameters", "typeAnnotation");
|
||||
|
||||
def("TSMethodSignature")
|
||||
.bases("TSSignature")
|
||||
.build("name", "typeParameters", "parameters", "typeAnnotation")
|
||||
.field("name", def("Identifier"));
|
||||
|
||||
def("TSPropertySignature")
|
||||
.build("modifiers", "name", "questionToken", "typeAnnotation")
|
||||
.field("name", def("Identifier"))
|
||||
.field("typeAnnotation", def("TypeAnnotation"))
|
||||
.bases("TSSignature");
|
||||
|
||||
def("TSAsExpression")
|
||||
.build("expression")
|
||||
.field("expression", def("Node"))
|
||||
.bases("Expression");
|
||||
|
||||
def("TSNamespaceExportDeclaration")
|
||||
.bases("Declaration")
|
||||
// needs more like `modefiers` and `decorators`
|
||||
.build("name");
|
||||
|
||||
def("TSEnumDeclaration")
|
||||
.bases("Declaration")
|
||||
.build("name", "members")
|
||||
.field("name", def("Identifier"));
|
||||
|
||||
def("TSEnumMember").build("name").field("name", def("Identifier"));
|
||||
|
||||
def("TSImportEqualsDeclaration")
|
||||
.build("name", "moduleReference")
|
||||
.build("expression")
|
||||
.field("name", def("Identifier"))
|
||||
.field("moduleReference", def("TSExternalModuleReference"))
|
||||
.field("expression", def("Literal"))
|
||||
.bases("Declaration");
|
||||
|
||||
def("TSNamespaceFunctionDeclaration")
|
||||
.build("id", "body")
|
||||
.field("id", def("Identifier"))
|
||||
.field("body", def("BlockStatement"))
|
||||
.bases("Declaration");
|
||||
|
||||
def("TSInterfaceDeclaration")
|
||||
.build("body", "heritage", "id")
|
||||
.field("body", def("TSInterfaceBody"))
|
||||
.field("heritage", def("TSHeritageClause"))
|
||||
.field("id", def("Identifier"))
|
||||
.bases("Node");
|
||||
|
||||
def("TSInterfaceBody")
|
||||
.build("body")
|
||||
.field("body", [def("TSPropertySignature")])
|
||||
.bases("Node");
|
||||
|
||||
def("TSModuleDeclaration")
|
||||
.build("modifiers", "name", "body")
|
||||
.bases("Declaration")
|
||||
.field("name", or(def("Identifier"), def("Literal")));
|
||||
|
||||
def("TSDeclareKeyword").build();
|
||||
|
||||
def("TSModuleBlock").build("body").bases("Node");
|
||||
|
||||
def("TSAbstractMethodDefinition").build().bases("Node");
|
||||
|
||||
def("TSAbstractClassProperty").build("key", "value").bases("Node");
|
||||
|
||||
def("TSAbstractClassDeclaration").build().bases("ClassDeclaration");
|
||||
|
||||
def("TSInterfaceHeritage")
|
||||
.build("id", "typeParameters")
|
||||
.field("id", def("Identifier"))
|
||||
.field("typeParameters", def("TSType"));
|
||||
|
||||
def("TSDecorator")
|
||||
.build("expression")
|
||||
.field("expression", def("Identifier"))
|
||||
.bases("Node");
|
||||
|
||||
def("TSTypeParameter").build("name").field("name", def("Identifier"));
|
||||
|
||||
def("TSParameterProperty").build("accessibility", "isReadonly", "parameters");
|
||||
|
||||
def("TSTypeAssertionExpression")
|
||||
.build("expression", "typeAnnotation")
|
||||
.field("expression", def("Identifier"))
|
||||
.field("typeAnnotation", def("TSType"))
|
||||
.bases("Expression");
|
||||
};
|
||||
Reference in new issue
Block a user