blob: 5f57b44d9de28590abe2346b7703d508ee126388 [file] [log] [blame]
"use strict";
var _index = require("./index");
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _index2.default)("AssignmentPattern", {
visitor: ["left", "right"],
aliases: ["Pattern", "LVal"],
fields: {
left: {
validate: (0, _index.assertNodeType)("Identifier")
},
right: {
validate: (0, _index.assertNodeType)("Expression")
},
decorators: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Decorator")))
}
}
});
(0, _index2.default)("ArrayPattern", {
visitor: ["elements", "typeAnnotation"],
aliases: ["Pattern", "LVal"],
fields: {
elements: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Identifier", "Pattern", "RestElement")))
},
decorators: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Decorator")))
}
}
});
(0, _index2.default)("ArrowFunctionExpression", {
builder: ["params", "body", "async"],
visitor: ["params", "body", "returnType", "typeParameters"],
aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
fields: {
params: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("LVal")))
},
body: {
validate: (0, _index.assertNodeType)("BlockStatement", "Expression")
},
async: {
validate: (0, _index.assertValueType)("boolean"),
default: false
}
}
});
(0, _index2.default)("ClassBody", {
visitor: ["body"],
fields: {
body: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("ClassMethod", "ClassProperty")))
}
}
});
(0, _index2.default)("ClassDeclaration", {
builder: ["id", "superClass", "body", "decorators"],
visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"],
aliases: ["Scopable", "Class", "Statement", "Declaration", "Pureish"],
fields: {
id: {
validate: (0, _index.assertNodeType)("Identifier")
},
body: {
validate: (0, _index.assertNodeType)("ClassBody")
},
superClass: {
optional: true,
validate: (0, _index.assertNodeType)("Expression")
},
decorators: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Decorator")))
}
}
});
(0, _index2.default)("ClassExpression", {
inherits: "ClassDeclaration",
aliases: ["Scopable", "Class", "Expression", "Pureish"],
fields: {
id: {
optional: true,
validate: (0, _index.assertNodeType)("Identifier")
},
body: {
validate: (0, _index.assertNodeType)("ClassBody")
},
superClass: {
optional: true,
validate: (0, _index.assertNodeType)("Expression")
},
decorators: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Decorator")))
}
}
});
(0, _index2.default)("ExportAllDeclaration", {
visitor: ["source"],
aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"],
fields: {
source: {
validate: (0, _index.assertNodeType)("StringLiteral")
}
}
});
(0, _index2.default)("ExportDefaultDeclaration", {
visitor: ["declaration"],
aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"],
fields: {
declaration: {
validate: (0, _index.assertNodeType)("FunctionDeclaration", "ClassDeclaration", "Expression")
}
}
});
(0, _index2.default)("ExportNamedDeclaration", {
visitor: ["declaration", "specifiers", "source"],
aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"],
fields: {
declaration: {
validate: (0, _index.assertNodeType)("Declaration"),
optional: true
},
specifiers: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("ExportSpecifier")))
},
source: {
validate: (0, _index.assertNodeType)("StringLiteral"),
optional: true
}
}
});
(0, _index2.default)("ExportSpecifier", {
visitor: ["local", "exported"],
aliases: ["ModuleSpecifier"],
fields: {
local: {
validate: (0, _index.assertNodeType)("Identifier")
},
exported: {
validate: (0, _index.assertNodeType)("Identifier")
}
}
});
(0, _index2.default)("ForOfStatement", {
visitor: ["left", "right", "body"],
aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
fields: {
left: {
validate: (0, _index.assertNodeType)("VariableDeclaration", "LVal")
},
right: {
validate: (0, _index.assertNodeType)("Expression")
},
body: {
validate: (0, _index.assertNodeType)("Statement")
}
}
});
(0, _index2.default)("ImportDeclaration", {
visitor: ["specifiers", "source"],
aliases: ["Statement", "Declaration", "ModuleDeclaration"],
fields: {
specifiers: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier")))
},
source: {
validate: (0, _index.assertNodeType)("StringLiteral")
}
}
});
(0, _index2.default)("ImportDefaultSpecifier", {
visitor: ["local"],
aliases: ["ModuleSpecifier"],
fields: {
local: {
validate: (0, _index.assertNodeType)("Identifier")
}
}
});
(0, _index2.default)("ImportNamespaceSpecifier", {
visitor: ["local"],
aliases: ["ModuleSpecifier"],
fields: {
local: {
validate: (0, _index.assertNodeType)("Identifier")
}
}
});
(0, _index2.default)("ImportSpecifier", {
visitor: ["local", "imported"],
aliases: ["ModuleSpecifier"],
fields: {
local: {
validate: (0, _index.assertNodeType)("Identifier")
},
imported: {
validate: (0, _index.assertNodeType)("Identifier")
},
importKind: {
validate: (0, _index.assertOneOf)(null, "type", "typeof")
}
}
});
(0, _index2.default)("MetaProperty", {
visitor: ["meta", "property"],
aliases: ["Expression"],
fields: {
meta: {
validate: (0, _index.assertValueType)("string")
},
property: {
validate: (0, _index.assertValueType)("string")
}
}
});
(0, _index2.default)("ClassMethod", {
aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"],
builder: ["kind", "key", "params", "body", "computed", "static"],
visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
fields: {
kind: {
validate: (0, _index.chain)((0, _index.assertValueType)("string"), (0, _index.assertOneOf)("get", "set", "method", "constructor")),
default: "method"
},
computed: {
default: false,
validate: (0, _index.assertValueType)("boolean")
},
static: {
default: false,
validate: (0, _index.assertValueType)("boolean")
},
key: {
validate: function validate(node, key, val) {
var expectedTypes = node.computed ? ["Expression"] : ["Identifier", "StringLiteral", "NumericLiteral"];
_index.assertNodeType.apply(undefined, expectedTypes)(node, key, val);
}
},
params: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("LVal")))
},
body: {
validate: (0, _index.assertNodeType)("BlockStatement")
},
generator: {
default: false,
validate: (0, _index.assertValueType)("boolean")
},
async: {
default: false,
validate: (0, _index.assertValueType)("boolean")
}
}
});
(0, _index2.default)("ObjectPattern", {
visitor: ["properties", "typeAnnotation"],
aliases: ["Pattern", "LVal"],
fields: {
properties: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("RestProperty", "Property")))
},
decorators: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Decorator")))
}
}
});
(0, _index2.default)("SpreadElement", {
visitor: ["argument"],
aliases: ["UnaryLike"],
fields: {
argument: {
validate: (0, _index.assertNodeType)("Expression")
}
}
});
(0, _index2.default)("Super", {
aliases: ["Expression"]
});
(0, _index2.default)("TaggedTemplateExpression", {
visitor: ["tag", "quasi"],
aliases: ["Expression"],
fields: {
tag: {
validate: (0, _index.assertNodeType)("Expression")
},
quasi: {
validate: (0, _index.assertNodeType)("TemplateLiteral")
}
}
});
(0, _index2.default)("TemplateElement", {
builder: ["value", "tail"],
fields: {
value: {},
tail: {
validate: (0, _index.assertValueType)("boolean"),
default: false
}
}
});
(0, _index2.default)("TemplateLiteral", {
visitor: ["quasis", "expressions"],
aliases: ["Expression", "Literal"],
fields: {
quasis: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("TemplateElement")))
},
expressions: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Expression")))
}
}
});
(0, _index2.default)("YieldExpression", {
builder: ["argument", "delegate"],
visitor: ["argument"],
aliases: ["Expression", "Terminatorless"],
fields: {
delegate: {
validate: (0, _index.assertValueType)("boolean"),
default: false
},
argument: {
optional: true,
validate: (0, _index.assertNodeType)("Expression")
}
}
});