UNPKG

faster-babel-types

Version:
2,400 lines (2,250 loc) 95.3 kB
// src/comment.ts function addComments(node, type, comments) { const key = `${type}Comments`; if (node[key]) { if (type === "leading") { node[key] = comments.concat(node[key]); } else { node[key].push.apply(node[key], comments); } } else { node[key] = comments; } return node; } function addComment(node, type, comment) { return addComments(node, type, [comment]); } // src/is-node-type.ts function is(type, node) { return node != null && node.type === type; } // src/assert-node-type.ts function assert(type, node) { if (is(type, node)) { throw new Error( 'Expected type "' + type + '" but instead got "' + node.type + '".' ); } } // src/nodes/flow/expressions/typecast-expression.ts var TYPE = "TypeCastExpression"; function typeCastExpression(expression, typeAnnotation2) { return { type: TYPE, expression, typeAnnotation: typeAnnotation2 }; } function isTypeCastExpression(node) { return is(TYPE, node); } function assertTypeCastExpression(node) { assert(TYPE, node); } // src/nodes/flow/misc/any-type-annotation.ts var TYPE2 = "AnyTypeAnnotation"; function anyTypeAnnotation() { return { type: TYPE2 }; } function isAnyTypeAnnotation(node) { return is(TYPE2, node); } function assertAnyTypeAnnotation(node) { assert(TYPE2, node); } // src/nodes/flow/misc/array-type-annotation.ts var TYPE3 = "ArrayTypeAnnotation"; function arrayTypeAnnotation(elementType) { return { type: TYPE3, elementType }; } function isArrayTypeAnnotation(node) { return is(TYPE3, node); } function assertArrayTypeAnnotation(node) { assert(TYPE3, node); } // src/nodes/flow/misc/boolean-literal-type-annotation.ts var TYPE4 = "BooleanLiteralTypeAnnotation"; function booleanLiteralTypeAnnotation(value) { return { type: TYPE4, value }; } function isBooleanLiteralTypeAnnotation(node) { return is(TYPE4, node); } function assertBooleanLiteralTypeAnnotation(node) { assert(TYPE4, node); } // src/nodes/flow/misc/boolean-type-annotation.ts var TYPE5 = "BooleanTypeAnnotation"; function booleanTypeAnnotation() { return { type: TYPE5 }; } function isBooleanTypeAnnotation(node) { return is(TYPE5, node); } function assertBooleanTypeAnnotation(node) { assert(TYPE5, node); } // src/nodes/flow/misc/empty-type-annotation.ts var TYPE6 = "EmptyTypeAnnotation"; function emptyTypeAnnotation() { return { type: TYPE6 }; } function isEmptyTypeAnnotation(node) { return is(TYPE6, node); } function assertEmptyTypeAnnotation(node) { assert(TYPE6, node); } // src/nodes/flow/misc/enum-boolean-body.ts var TYPE7 = "EnumBooleanBody"; function enumBooleanBody(members) { return { type: TYPE7, members, explicitType: false, hasUnknownMembers: false }; } function isEnumBooleanBody(node) { return is(TYPE7, node); } function assertEnumBooleanBody(node) { assert(TYPE7, node); } // src/nodes/flow/misc/enum-boolean-member.ts var TYPE8 = "EnumBooleanMember"; function enumBooleanMember(id) { return { type: TYPE8, id, init: null }; } function isEnumBooleanMember(node) { return is(TYPE8, node); } function assertEnumBooleanMember(node) { assert(TYPE8, node); } // src/nodes/flow/misc/enum-defaulted-member.ts var TYPE9 = "EnumDefaultedMember"; function enumDefaultedMember(id) { return { type: TYPE9, id }; } function isEnumDefaultedMember(node) { return is(TYPE9, node); } function assertEnumDefaultedMember(node) { assert(TYPE9, node); } // src/nodes/flow/misc/enum-number-body.ts var TYPE10 = "EnumNumberBody"; function enumNumberBody(members) { return { type: TYPE10, members, explicitType: false, hasUnknownMembers: false }; } function isEnumNumberBody(node) { return is(TYPE10, node); } function assertEnumNumberBody(node) { assert(TYPE10, node); } // src/nodes/flow/misc/enum-number-member.ts var TYPE11 = "EnumNumberMember"; function enumNumberMember(id, init) { return { type: TYPE11, id, init }; } function isEnumNumberMember(node) { return is(TYPE11, node); } function assertEnumNumberMember(node) { assert(TYPE11, node); } // src/nodes/flow/misc/enum-string-body.ts var TYPE12 = "EnumStringBody"; function enumStringBody(members) { return { type: TYPE12, members, explicitType: false, hasUnknownMembers: false }; } function isEnumStringBody(node) { return is(TYPE12, node); } function assertEnumStringBody(node) { assert(TYPE12, node); } // src/nodes/flow/misc/enum-string-member.ts var TYPE13 = "EnumStringMember"; function enumStringMember(id, init) { return { type: TYPE13, id, init }; } function isEnumStringMember(node) { return is(TYPE13, node); } function assertEnumStringMember(node) { assert(TYPE13, node); } // src/nodes/flow/misc/enum-symbol-body.ts var TYPE14 = "EnumSymbolBody"; function enumSymbolBody(members) { return { type: TYPE14, members, hasUnknownMembers: false }; } function isEnumSymbolBody(node) { return is(TYPE14, node); } function assertEnumSymbolBody(node) { assert(TYPE14, node); } // src/nodes/flow/misc/exists-type-annotation.ts var TYPE15 = "ExistsTypeAnnotation"; function existsTypeAnnotation() { return { type: TYPE15 }; } function isExistsTypeAnnotation(node) { return is(TYPE15, node); } function assertExistsTypeAnnotation(node) { assert(TYPE15, node); } // src/nodes/flow/misc/function-type-annotation.ts var TYPE16 = "FunctionTypeAnnotation"; function functionTypeAnnotation(typeParameters, params, rest, returnType) { return { type: TYPE16, typeParameters, params, rest, returnType }; } function isFunctionTypeAnnotation(node) { return is(TYPE16, node); } function assertFunctionTypeAnnotation(node) { assert(TYPE16, node); } // src/nodes/flow/misc/function-type-param.ts var TYPE17 = "FunctionTypeParam"; function functionTypeParam(name, typeAnnotation2) { return { type: TYPE17, name, typeAnnotation: typeAnnotation2 }; } function isFunctionTypeParam(node) { return is(TYPE17, node); } function assertFunctionTypeParam(node) { assert(TYPE17, node); } // src/nodes/flow/misc/generic-type-annotation.ts var TYPE18 = "GenericTypeAnnotation"; function genericTypeAnnotation(id, typeParameters = null) { return { type: TYPE18, id, typeParameters }; } function isGenericTypeAnnotation(node) { return is(TYPE18, node); } function assertGenericTypeAnnotation(node) { assert(TYPE18, node); } // src/nodes/flow/misc/indexed-access-type.ts var TYPE19 = "IndexedAccessType"; function indexedAccessType(objectType, indexType) { return { type: TYPE19, objectType, indexType }; } function isIndexedAccessType(node) { return is(TYPE19, node); } function assertIndexedAccessType(node) { assert(TYPE19, node); } // src/nodes/flow/misc/interface-extends.ts var TYPE20 = "InterfaceExtends"; function interfaceExtends(id, typeParameters = null) { return { type: TYPE20, id, typeParameters }; } function isInterfaceExtends(node) { return is(TYPE20, node); } function assertInterfaceExtends(node) { assert(TYPE20, node); } // src/nodes/flow/misc/interface-type-annotation.ts var TYPE21 = "InterfaceTypeAnnotation"; function interfaceTypeAnnotation(interfaceExtends2, body) { return { type: TYPE21, extends: interfaceExtends2, body }; } function isInterfaceTypeAnnotation(node) { return is(TYPE21, node); } function assertInterfaceTypeAnnotation(node) { assert(TYPE21, node); } // src/nodes/flow/misc/intersection-type-annotation.ts var TYPE22 = "IntersectionTypeAnnotation"; function intersectionTypeAnnotation(types) { return { type: TYPE22, types }; } function isIntersectionTypeAnnotation(node) { return is(TYPE22, node); } function assertIntersectionTypeAnnotation(node) { assert(TYPE22, node); } // src/nodes/flow/misc/mixed-type-annotation.ts var TYPE23 = "MixedTypeAnnotation"; function mixedTypeAnnotation() { return { type: TYPE23 }; } function isMixedTypeAnnotation(node) { return is(TYPE23, node); } function assertMixedTypeAnnotation(node) { assert(TYPE23, node); } // src/nodes/flow/misc/null-literal-type-annotation.ts var TYPE24 = "NullLiteralTypeAnnotation"; function nullLiteralTypeAnnotation() { return { type: TYPE24 }; } function isNullLiteralTypeAnnotation(node) { return is(TYPE24, node); } function assertNullLiteralTypeAnnotation(node) { assert(TYPE24, node); } // src/nodes/flow/misc/nullable-type-annotation.ts var TYPE25 = "NullableTypeAnnotation"; function nullableTypeAnnotation(typeAnnotation2) { return { type: TYPE25, typeAnnotation: typeAnnotation2 }; } function isNullableTypeAnnotation(node) { return is(TYPE25, node); } function assertNullableTypeAnnotation(node) { assert(TYPE25, node); } // src/nodes/flow/misc/number-literal-type-annotation.ts var TYPE26 = "NumberLiteralTypeAnnotation"; function numberLiteralTypeAnnotation(value) { return { type: TYPE26, value }; } function isNumberLiteralTypeAnnotation(node) { return is(TYPE26, node); } function assertNumberLiteralTypeAnnotation(node) { assert(TYPE26, node); } // src/nodes/flow/misc/number-type-annotation.ts var TYPE27 = "NumberTypeAnnotation"; function numberTypeAnnotation() { return { type: TYPE27 }; } function isNumberTypeAnnotation(node) { return is(TYPE27, node); } function assertNumberTypeAnnotation(node) { assert(TYPE27, node); } // src/nodes/flow/misc/object-type-annotation.ts var TYPE28 = "ObjectTypeAnnotation"; function objectTypeAnnotation(properties, indexers = [], callProperties = [], internalSlots = [], exact = false) { return { type: TYPE28, properties, indexers, callProperties, internalSlots, exact }; } function isObjectTypeAnnotation(node) { return is(TYPE28, node); } function assertObjectTypeAnnotation(node) { assert(TYPE28, node); } // src/nodes/flow/misc/object-type-call-property.ts var TYPE29 = "ObjectTypeCallProperty"; function objectTypeCallProperty(value) { return { type: TYPE29, value, static: false }; } function isObjectTypeCallProperty(node) { return is(TYPE29, node); } function assertObjectTypeCallProperty(node) { assert(TYPE29, node); } // src/nodes/flow/misc/object-type-indexer.ts var TYPE30 = "ObjectTypeIndexer"; function objectTypeIndexer(id, key, value, variance2 = null) { return { type: TYPE30, id, key, value, variance: variance2, static: false }; } function isObjectTypeIndexer(node) { return is(TYPE30, node); } function assertObjectTypeIndexer(node) { assert(TYPE30, node); } // src/nodes/flow/misc/object-type-internal-slot.ts var TYPE31 = "ObjectTypeInternalSlot"; function objectTypeInternalSlot(id, value, optional, isStatic, method) { return { type: TYPE31, id, value, optional, static: isStatic, method }; } function isObjectTypeInternalSlot(node) { return is(TYPE31, node); } function assertObjectTypeInternalSlot(node) { assert(TYPE31, node); } // src/nodes/flow/misc/object-type-property.ts var TYPE32 = "ObjectTypeProperty"; function objectTypeProperty(key, value, variance2 = null) { return { type: TYPE32, key, value, variance: variance2, kind: "init", method: false, optional: false, proto: false, static: false }; } function isObjectTypeProperty(node) { return is(TYPE32, node); } function assertObjectTypeProperty(node) { assert(TYPE32, node); } // src/nodes/flow/misc/object-type-spread-property.ts var TYPE33 = "ObjectTypeSpreadProperty"; function objectTypeSpreadProperty(argument) { return { type: TYPE33, argument }; } function isObjectTypeSpreadProperty(node) { return is(TYPE33, node); } function assertObjectTypeSpreadProperty(node) { assert(TYPE33, node); } // src/nodes/flow/misc/optional-indexed-access-type.ts var TYPE34 = "OptionalIndexedAccessType"; function optionalIndexedAccessType(objectType, indexType) { return { type: TYPE34, objectType, indexType, optional: false }; } function isOptionalIndexedAccessType(node) { return is(TYPE34, node); } function assertOptionalIndexedAccessType(node) { assert(TYPE34, node); } // src/nodes/flow/misc/qualified-type-identifier.ts var TYPE35 = "QualifiedTypeIdentifier"; function qualifiedTypeIdentifier(id, qualification) { return { type: TYPE35, id, qualification }; } function isQualifiedTypeIdentifier(node) { return is(TYPE35, node); } function assertQualifiedTypeIdentifier(node) { assert(TYPE35, node); } // src/nodes/flow/misc/string-literal-type-annotation.ts var TYPE36 = "StringLiteralTypeAnnotation"; function stringLiteralTypeAnnotation(value) { return { type: TYPE36, value }; } function isStringLiteralTypeAnnotation(node) { return is(TYPE36, node); } function assertStringLiteralTypeAnnotation(node) { assert(TYPE36, node); } // src/nodes/flow/misc/string-type-annotation.ts var TYPE37 = "StringTypeAnnotation"; function stringTypeAnnotation() { return { type: TYPE37 }; } function isStringTypeAnnotation(node) { return is(TYPE37, node); } function assertStringTypeAnnotation(node) { assert(TYPE37, node); } // src/nodes/flow/misc/symbol-type-annotation.ts var TYPE38 = "SymbolTypeAnnotation"; function symbolTypeAnnotation() { return { type: TYPE38 }; } function isSymbolTypeAnnotation(node) { return is(TYPE38, node); } function assertSymbolTypeAnnotation(node) { assert(TYPE38, node); } // src/nodes/flow/misc/this-type-annotation.ts var TYPE39 = "ThisTypeAnnotation"; function thisTypeAnnotation() { return { type: TYPE39 }; } function isThisTypeAnnotation(node) { return is(TYPE39, node); } function assertThisTypeAnnotation(node) { assert(TYPE39, node); } // src/nodes/flow/misc/tuple-type-annotation.ts var TYPE40 = "TupleTypeAnnotation"; function tupleTypeAnnotation(types) { return { type: TYPE40, types }; } function isTupleTypeAnnotation(node) { return is(TYPE40, node); } function assertTupleTypeAnnotation(node) { assert(TYPE40, node); } // src/nodes/flow/misc/type-annotation.ts var TYPE41 = "TypeAnnotation"; function typeAnnotation(typeAnnotation2) { return { type: TYPE41, typeAnnotation: typeAnnotation2 }; } function isTypeAnnotation(node) { return is(TYPE41, node); } function assertTypeAnnotation(node) { assert(TYPE41, node); } // src/nodes/flow/misc/typeof-type-annotation.ts var TYPE42 = "TypeofTypeAnnotation"; function typeofTypeAnnotation(argument) { return { type: TYPE42, argument }; } function isTypeofTypeAnnotation(node) { return is(TYPE42, node); } function assertTypeofTypeAnnotation(node) { assert(TYPE42, node); } // src/nodes/flow/misc/union-type-annotation.ts var TYPE43 = "UnionTypeAnnotation"; function unionTypeAnnotation(types) { return { type: TYPE43, types }; } function isUnionTypeAnnotation(node) { return is(TYPE43, node); } function assertUnionTypeAnnotation(node) { assert(TYPE43, node); } // src/nodes/flow/misc/variance.ts var TYPE44 = "Variance"; function variance(kind) { return { type: TYPE44, kind }; } function isVariance(node) { return is(TYPE44, node); } function assertVariance(node) { assert(TYPE44, node); } // src/nodes/flow/misc/void-type-annotation.ts var TYPE45 = "VoidTypeAnnotation"; function voidTypeAnnotation() { return { type: TYPE45 }; } function isVoidTypeAnnotation(node) { return is(TYPE45, node); } function assertVoidTypeAnnotation(node) { assert(TYPE45, node); } // src/nodes/flow/statements/declare-class.ts var TYPE46 = "DeclareClass"; function declareClass(id, typeParameters, interfaceExtends2, body) { return { type: TYPE46, id, typeParameters, extends: interfaceExtends2, body }; } function isDeclareClass(node) { return is(TYPE46, node); } function assertDeclareClass(node) { assert(TYPE46, node); } // src/nodes/flow/statements/declare-export-all-declaration.ts var TYPE47 = "DeclareExportAllDeclaration"; function declareExportAllDeclaration(source) { return { type: TYPE47, source }; } function isDeclareExportAllDeclaration(node) { return is(TYPE47, node); } function assertDeclareExportAllDeclaration(node) { assert(TYPE47, node); } // src/nodes/flow/statements/declare-export-declaration.ts var TYPE48 = "DeclareExportDeclaration"; function declareExportDeclaration(declaration, specifiers, source) { return { type: TYPE48, declaration, specifiers, source }; } function isDeclareExportDeclaration(node) { return is(TYPE48, node); } function assertDeclareExportDeclaration(node) { assert(TYPE48, node); } // src/nodes/flow/statements/declare-function.ts var TYPE49 = "DeclareFunction"; function declareFunction(id) { return { type: TYPE49, id }; } function isDeclareFunction(node) { return is(TYPE49, node); } function assertDeclareFunction(node) { assert(TYPE49, node); } // src/nodes/flow/statements/declare-interface.ts var TYPE50 = "DeclareInterface"; function declareInterface(id, typeParameters, interfaceExtends2, body) { return { type: TYPE50, id, typeParameters, extends: interfaceExtends2, body }; } function isDeclareInterface(node) { return is(TYPE50, node); } function assertDeclareInterface(node) { assert(TYPE50, node); } // src/nodes/flow/statements/declare-module.ts var TYPE51 = "DeclareModule"; function declareModule(id, body, kind) { return { type: TYPE51, id, body, kind }; } function isDeclareModule(node) { return is(TYPE51, node); } function assertDeclareModule(node) { assert(TYPE51, node); } // src/nodes/flow/statements/declare-module-exports.ts var TYPE52 = "DeclareModuleExports"; function declareModuleExports(typeAnnotation2) { return { type: TYPE52, typeAnnotation: typeAnnotation2 }; } function isDeclareModuleExports(node) { return is(TYPE52, node); } function assertDeclareModuleExports(node) { assert(TYPE52, node); } // src/nodes/flow/statements/declare-opaque-type.ts var TYPE53 = "DeclareOpaqueType"; function declareOpaqueType(id, typeParameters, supertype) { return { type: TYPE53, id, typeParameters, supertype }; } function isDeclareOpaqueType(node) { return is(TYPE53, node); } function assertDeclareOpaqueType(node) { assert(TYPE53, node); } // src/nodes/flow/statements/declare-type-alias.ts var TYPE54 = "DeclareTypeAlias"; function declareTypeAlias(id, typeParameters, right) { return { type: TYPE54, id, typeParameters, right }; } function isDeclareTypeAlias(node) { return is(TYPE54, node); } function assertDeclareTypeAlias(node) { assert(TYPE54, node); } // src/nodes/flow/statements/declare-variable.ts var TYPE55 = "DeclareVariable"; function declareVariable(id) { return { type: TYPE55, id }; } function isDeclareVariable(node) { return is(TYPE55, node); } function assertDeclareVariable(node) { assert(TYPE55, node); } // src/nodes/flow/statements/enum-declaration.ts var TYPE56 = "EnumDeclaration"; function enumDeclaration(id, body) { return { type: TYPE56, id, body }; } function isEnumDeclaration(node) { return is(TYPE56, node); } function assertEnumDeclaration(node) { assert(TYPE56, node); } // src/nodes/flow/statements/interface-declaration.ts var TYPE57 = "InterfaceDeclaration"; function interfaceDeclaration(id, typeParameters, interfaceExtends2, body) { return { type: TYPE57, id, typeParameters, extends: interfaceExtends2, body }; } function isInterfaceDeclaration(node) { return is(TYPE57, node); } function assertInterfaceDeclaration(node) { assert(TYPE57, node); } // src/nodes/flow/statements/opaque-type.ts var TYPE58 = "OpaqueType"; function opaqueType(id, typeParameters, supertype, impltype) { return { type: TYPE58, id, typeParameters, supertype, impltype }; } function isOpaqueType(node) { return is(TYPE58, node); } function assertOpaqueType(node) { assert(TYPE58, node); } // src/nodes/flow/statements/type-alias.ts var TYPE59 = "TypeAlias"; function typeAlias(id, typeParameters, right) { return { type: TYPE59, id, typeParameters, right }; } function isTypeAlias(node) { return is(TYPE59, node); } function assertTypeAlias(node) { assert(TYPE59, node); } // src/nodes/javascript/expressions/array-expression.ts var TYPE60 = "ArrayExpression"; function arrayExpression(elements = []) { return { type: TYPE60, elements }; } function isArrayExpression(node) { return is(TYPE60, node); } function assertArrayExpression(node) { assert(TYPE60, node); } // src/nodes/javascript/expressions/arrow-function-expression.ts var TYPE61 = "ArrowFunctionExpression"; function arrowFunctionExpression(params, body, async = false) { return { type: TYPE61, params, body, async, expression: null // ??? originally they use null }; } function isArrowFunctionExpression(node) { return is(TYPE61, node); } function assertArrowFunctionExpression(node) { assert(TYPE61, node); } // src/nodes/javascript/expressions/assignment-expression.ts var TYPE62 = "AssignmentExpression"; function assignmentExpression(operator, left, right) { return { type: TYPE62, operator, left, right }; } function isAssignmentExpression(node) { return is(TYPE62, node); } function assertAssignmentExpression(node) { assert(TYPE62, node); } // src/nodes/javascript/expressions/await-expression.ts var TYPE63 = "AwaitExpression"; function awaitExpression(argument) { return { type: TYPE63, argument }; } function isAwaitExpression(node) { return is(TYPE63, node); } function assertAwaitExpression(node) { assert(TYPE63, node); } // src/nodes/javascript/expressions/bigint-literal.ts var TYPE64 = "BigIntLiteral"; function bigIntLiteral(value) { return { type: TYPE64, value }; } function isBigIntLiteral(node) { return is(TYPE64, node); } function assertBigIntLiteral(node) { assert(TYPE64, node); } // src/nodes/javascript/expressions/binary-expression.ts var TYPE65 = "BinaryExpression"; function binaryExpression(operator, left, right) { return { type: TYPE65, operator, left, right }; } function isBinaryExpression(node) { return is(TYPE65, node); } function assertBinaryExpression(node) { assert(TYPE65, node); } // src/nodes/javascript/expressions/bind-expression.ts var TYPE66 = "BindExpression"; function bindExpression(object, callee) { return { type: TYPE66, object, callee }; } function isBindExpression(node) { return is(TYPE66, node); } function assertBindExpression(node) { assert(TYPE66, node); } // src/nodes/javascript/expressions/boolean-literal.ts var TYPE67 = "BooleanLiteral"; function booleanLiteral(value) { return { type: TYPE67, value }; } function isBooleanLiteral(node) { return is(TYPE67, node); } function assertBooleanLiteral(node) { assert(TYPE67, node); } // src/nodes/javascript/expressions/call-expression.ts var TYPE68 = "CallExpression"; function callExpression(callee, args) { return { type: TYPE68, callee, arguments: args }; } function isCallExpression(node) { return is(TYPE68, node); } function assertCallExpression(node) { assert(TYPE68, node); } // src/nodes/javascript/expressions/class-expression.ts var TYPE69 = "ClassExpression"; function classExpression(id, superClass, body, decorators = null) { return { type: TYPE69, id, superClass, body, decorators }; } function isClassExpression(node) { return is(TYPE69, node); } function assertClassExpression(node) { assert(TYPE69, node); } // src/nodes/javascript/expressions/conditional-expression.ts var TYPE70 = "ConditionalExpression"; function conditionalExpression(test, consequent, alternate) { return { type: TYPE70, test, consequent, alternate }; } function isConditionalExpression(node) { return is(TYPE70, node); } function assertConditionalExpression(node) { assert(TYPE70, node); } // src/nodes/javascript/expressions/decimal-literal.ts var TYPE71 = "DecimalLiteral"; function decimalLiteral(value) { return { type: TYPE71, value }; } function isDecimalLiteral(node) { return is(TYPE71, node); } function assertDecimalLiteral(node) { assert(TYPE71, node); } // src/nodes/javascript/expressions/do-expression.ts var TYPE72 = "DoExpression"; function doExpression(body, async = false) { return { type: TYPE72, body, async }; } function isDoExpression(node) { return is(TYPE72, node); } function assertDoExpression(node) { assert(TYPE72, node); } // src/nodes/javascript/expressions/function-expression.ts var TYPE73 = "FunctionExpression"; function functionExpression(id, params, body, generator = false, async = false) { return { type: TYPE73, id, params, body, generator, async }; } function isFunctionExpression(node) { return is(TYPE73, node); } function assertFunctionExpression(node) { assert(TYPE73, node); } // src/nodes/javascript/expressions/identifier.ts var TYPE74 = "Identifier"; function identifier(name) { return { type: TYPE74, name }; } function isIdentifier(node) { return is(TYPE74, node); } function assertIdentifier(node) { assert(TYPE74, node); } // src/nodes/javascript/expressions/import.ts var TYPE75 = "Import"; function _import() { return { type: TYPE75 }; } function isImport(node) { return is(TYPE75, node); } function assertImport(node) { assert(TYPE75, node); } // src/nodes/javascript/expressions/import-expression.ts var TYPE76 = "ImportExpression"; function importExpression(source, options = null) { return { type: TYPE76, source, options }; } function isImportExpression(node) { return is(TYPE76, node); } function assertImportExpression(node) { assert(TYPE76, node); } // src/nodes/javascript/expressions/logical-expression.ts var TYPE77 = "LogicalExpression"; function logicalExpression(operator, left, right) { return { type: TYPE77, operator, left, right }; } function isLogicalExpression(node) { return is(TYPE77, node); } function assertLogicalExpression(node) { assert(TYPE77, node); } // src/nodes/javascript/expressions/member-expression.ts var TYPE78 = "MemberExpression"; function memberExpression(object, property, computed = false, optional = false) { return { type: TYPE78, object, property, computed, optional }; } function isMemberExpression(node) { return is(TYPE78, node); } function assertMemberExpression(node) { assert(TYPE78, node); } // src/nodes/javascript/expressions/meta-property.ts var TYPE79 = "MetaProperty"; function metaProperty(meta, property) { return { type: TYPE79, meta, property }; } function isMetaProperty(node) { return is(TYPE79, node); } function assertMetaProperty(node) { assert(TYPE79, node); } // src/nodes/javascript/expressions/module-expression.ts var TYPE80 = "ModuleExpression"; function moduleExpression(body) { return { type: TYPE80, body }; } function isModuleExpression(node) { return is(TYPE80, node); } function assertModuleExpression(node) { assert(TYPE80, node); } // src/nodes/javascript/expressions/new-expression.ts var TYPE81 = "NewExpression"; function newExpression(callee, args) { return { type: TYPE81, callee, arguments: args }; } function isNewExpression(node) { return is(TYPE81, node); } function assertNewExpression(node) { assert(TYPE81, node); } // src/nodes/javascript/expressions/null-literal.ts var TYPE82 = "NullLiteral"; function nullLiteral() { return { type: TYPE82 }; } function isNullLiteral(node) { return is(TYPE82, node); } function assertNullLiteral(node) { assert(TYPE82, node); } // src/nodes/javascript/expressions/numeric-literal.ts var TYPE83 = "NumericLiteral"; function numericLiteral(value) { return { type: TYPE83, value }; } function isNumericLiteral(node) { return is(TYPE83, node); } function assertNumericLiteral(node) { assert(TYPE83, node); } // src/nodes/javascript/expressions/object-expression.ts var TYPE84 = "ObjectExpression"; function objectExpression(properties) { return { type: TYPE84, properties }; } function isObjectExpression(node) { return is(TYPE84, node); } function assertObjectExpression(node) { assert(TYPE84, node); } // src/nodes/javascript/expressions/optional-call-expression.ts var TYPE85 = "OptionalCallExpression"; function optionalCallExpression(callee, args, optional) { return { type: TYPE85, callee, arguments: args, optional }; } function isOptionalCallExpression(node) { return is(TYPE85, node); } function assertOptionalCallExpression(node) { assert(TYPE85, node); } // src/nodes/javascript/expressions/optional-member-expression.ts var TYPE86 = "OptionalMemberExpression"; function optionalMemberExpression(object, property, computed = false, optional = false) { return { type: TYPE86, object, property, computed, optional }; } function isOptionalMemberExpression(node) { return is(TYPE86, node); } function assertOptionalMemberExpression(node) { assert(TYPE86, node); } // src/nodes/javascript/expressions/parenthesized-expression.ts var TYPE87 = "ParenthesizedExpression"; function parenthesizedExpression(expression) { return { type: TYPE87, expression }; } function isParenthesizedExpression(node) { return is(TYPE87, node); } function assertParenthesizedExpression(node) { assert(TYPE87, node); } // src/nodes/javascript/expressions/pipeline-bare-function.ts var TYPE88 = "PipelineBareFunction"; function pipelineBareFunction(callee) { return { type: TYPE88, callee }; } function isPipelineBareFunction(node) { return is(TYPE88, node); } function assertPipelineBareFunction(node) { assert(TYPE88, node); } // src/nodes/javascript/expressions/pipeline-primary-topic-reference.ts var TYPE89 = "PipelinePrimaryTopicReference"; function pipelinePrimaryTopicReference() { return { type: TYPE89 }; } function isPipelinePrimaryTopicReference(node) { return is(TYPE89, node); } function assertPipelinePrimaryTopicReference(node) { assert(TYPE89, node); } // src/nodes/javascript/expressions/pipeline-topic-expression.ts var TYPE90 = "PipelineTopicExpression"; function pipelineTopicExpression(expression) { return { type: TYPE90, expression }; } function isPipelineTopicExpression(node) { return is(TYPE90, node); } function assertPipelineTopicExpression(node) { assert(TYPE90, node); } // src/nodes/javascript/expressions/record-expression.ts var TYPE91 = "RecordExpression"; function recordExpression(properties) { return { type: TYPE91, properties }; } function isRecordExpression(node) { return is(TYPE91, node); } function assertRecordExpression(node) { assert(TYPE91, node); } // src/nodes/javascript/expressions/regexp-literal.ts var TYPE92 = "RegExpLiteral"; function regExpLiteral(pattern, flags = "") { return { type: TYPE92, pattern, flags }; } function isRegExpLiteral(node) { return is(TYPE92, node); } function assertRegExpLiteral(node) { assert(TYPE92, node); } // src/nodes/javascript/expressions/sequence-expression.ts var TYPE93 = "SequenceExpression"; function sequenceExpression(expressions) { return { type: TYPE93, expressions }; } function isSequenceExpression(node) { return is(TYPE93, node); } function assertSequenceExpression(node) { assert(TYPE93, node); } // src/nodes/javascript/expressions/string-literal.ts var TYPE94 = "StringLiteral"; function stringLiteral(value) { return { type: TYPE94, value }; } function isStringLiteral(node) { return is(TYPE94, node); } function assertStringLiteral(node) { assert(TYPE94, node); } // src/nodes/javascript/expressions/super.ts var TYPE95 = "Super"; function _super() { return { type: TYPE95 }; } function isSuper(node) { return is(TYPE95, node); } function assertSuper(node) { assert(TYPE95, node); } // src/nodes/javascript/expressions/tagged-template-expression.ts var TYPE96 = "TaggedTemplateExpression"; function taggedTemplateExpression(tag, quasi) { return { type: TYPE96, tag, quasi }; } function isTaggedTemplateExpression(node) { return is(TYPE96, node); } function assertTaggedTemplateExpression(node) { assert(TYPE96, node); } // src/nodes/javascript/expressions/template-literal.ts var TYPE97 = "TemplateLiteral"; function templateLiteral(quasis, expressions) { return { type: TYPE97, quasis, expressions }; } function isTemplateLiteral(node) { return is(TYPE97, node); } function assertTemplateLiteral(node) { assert(TYPE97, node); } // src/nodes/javascript/expressions/this-expression.ts var TYPE98 = "ThisExpression"; function thisExpression() { return { type: TYPE98 }; } function isThisExpression(node) { return is(TYPE98, node); } function assertThisExpression(node) { assert(TYPE98, node); } // src/nodes/javascript/expressions/topic-reference.ts var TYPE99 = "TopicReference"; function topicReference() { return { type: TYPE99 }; } function isTopicReference(node) { return is(TYPE99, node); } function assertTopicReference(node) { assert(TYPE99, node); } // src/nodes/javascript/expressions/tuple-expression.ts var TYPE100 = "TupleExpression"; function tupleExpression(elements = []) { return { type: TYPE100, elements }; } function isTupleExpression(node) { return is(TYPE100, node); } function assertTupleExpression(node) { assert(TYPE100, node); } // src/nodes/javascript/expressions/unary-expression.ts var TYPE101 = "UnaryExpression"; function unaryExpression(operator, argument, prefix = true) { return { type: TYPE101, operator, argument, prefix }; } function isUnaryExpression(node) { return is(TYPE101, node); } function assertUnaryExpression(node) { assert(TYPE101, node); } // src/nodes/javascript/expressions/update-expression.ts var TYPE102 = "UpdateExpression"; function updateExpression(operator, argument, prefix = false) { return { type: TYPE102, operator, argument, prefix }; } function isUpdateExpression(node) { return is(TYPE102, node); } function assertUpdateExpression(node) { assert(TYPE102, node); } // src/nodes/javascript/expressions/yield-expression.ts var TYPE103 = "YieldExpression"; function yieldExpression(argument = null, delegate = false) { return { type: TYPE103, argument, delegate }; } function isYieldExpression(node) { return is(TYPE103, node); } function assertYieldExpression(node) { assert(TYPE103, node); } // src/nodes/javascript/misc/argument-placeholder.ts var TYPE104 = "ArgumentPlaceholder"; function argumentPlaceholder() { return { type: TYPE104 }; } function isArgumentPlaceholder(node) { return is(TYPE104, node); } function assertArgumentPlaceholder(node) { assert(TYPE104, node); } // src/nodes/javascript/misc/array-pattern.ts var TYPE105 = "ArrayPattern"; function arrayPattern(elements) { return { type: TYPE105, elements }; } function isArrayPattern(node) { return is(TYPE105, node); } function assertArrayPattern(node) { assert(TYPE105, node); } // src/nodes/javascript/misc/assignment-pattern.ts var TYPE106 = "AssignmentPattern"; function assignmentPattern(left, right) { return { type: TYPE106, left, right }; } function isAssignmentPattern(node) { return is(TYPE106, node); } function assertAssignmentPattern(node) { assert(TYPE106, node); } // src/nodes/javascript/misc/catch-clause.ts var TYPE107 = "CatchClause"; function catchClause(param, body) { return { type: TYPE107, param, body }; } function isCatchClause(node) { return is(TYPE107, node); } function assertCatchClause(node) { assert(TYPE107, node); } // src/nodes/javascript/misc/class-accessor-property.ts var TYPE108 = "ClassAccessorProperty"; function classAccessorProperty(key, value = null, typeAnnotation2 = null, decorators = null, computed = false, isStatic = false) { return { type: TYPE108, key, value, typeAnnotation: typeAnnotation2, decorators, computed, static: isStatic }; } function isClassAccessorProperty(node) { return is(TYPE108, node); } function assertClassAccessorProperty(node) { assert(TYPE108, node); } // src/nodes/javascript/misc/class-body.ts var TYPE109 = "ClassBody"; function classBody(body) { return { type: TYPE109, body }; } function isClassBody(node) { return is(TYPE109, node); } function assertClassBody(node) { assert(TYPE109, node); } // src/nodes/javascript/misc/class-method.ts var TYPE110 = "ClassMethod"; function classMethod(kind, key, params, body, computed = false, isStatic = false, generator = false, async = false) { return { type: TYPE110, kind, key, params, body, computed, static: isStatic, generator, async }; } function isClassMethod(node) { return is(TYPE110, node); } function assertClassMethod(node) { assert(TYPE110, node); } // src/nodes/javascript/misc/class-private-method.ts var TYPE111 = "ClassPrivateMethod"; function classPrivateMethod(kind, key, params, body, computed = false, isStatic = false, generator = false, async = false) { return { type: TYPE111, kind, key, params, body, computed, static: isStatic, generator, async }; } function isClassPrivateMethod(node) { return is(TYPE111, node); } function assertClassPrivateMethod(node) { assert(TYPE111, node); } // src/nodes/javascript/misc/class-private-property.ts var TYPE112 = "ClassPrivateProperty"; function classPrivateProperty(key, value, decorators, isStatic = false) { return { type: TYPE112, key, value, decorators, static: isStatic }; } function isClassPrivateProperty(node) { return is(TYPE112, node); } function assertClassPrivateProperty(node) { assert(TYPE112, node); } // src/nodes/javascript/misc/class-property.ts var TYPE113 = "ClassProperty"; function classProperty(key, value, typeAnnotation2, decorators, computed = false, isStatic = false) { return { type: TYPE113, key, value, typeAnnotation: typeAnnotation2, decorators, computed, static: isStatic }; } function isClassProperty(node) { return is(TYPE113, node); } function assertClassProperty(node) { assert(TYPE113, node); } // src/nodes/javascript/misc/decorator.ts var TYPE114 = "Decorator"; function decorator(expression) { return { type: TYPE114, expression }; } function isDecorator(node) { return is(TYPE114, node); } function assertDecorator(node) { assert(TYPE114, node); } // src/nodes/javascript/misc/directive.ts var TYPE115 = "Directive"; function directive(value) { return { type: TYPE115, value }; } function isDirective(node) { return is(TYPE115, node); } function assertDirective(node) { assert(TYPE115, node); } // src/nodes/javascript/misc/directive-literal.ts var TYPE116 = "DirectiveLiteral"; function directiveLiteral(value) { return { type: TYPE116, value }; } function isDirectiveLiteral(node) { return is(TYPE116, node); } function assertDirectiveLiteral(node) { assert(TYPE116, node); } // src/nodes/javascript/misc/export-default-specifier.ts var TYPE117 = "ExportDefaultSpecifier"; function exportDefaultSpecifier(exported) { return { type: TYPE117, exported }; } function isExportDefaultSpecifier(node) { return is(TYPE117, node); } function assertExportDefaultSpecifier(node) { assert(TYPE117, node); } // src/nodes/javascript/misc/export-namespace-specifier.ts var TYPE118 = "ExportNamespaceSpecifier"; function exportNamespaceSpecifier(exported) { return { type: TYPE118, exported }; } function isExportNamespaceSpecifier(node) { return is(TYPE118, node); } function assertExportNamespaceSpecifier(node) { assert(TYPE118, node); } // src/nodes/javascript/misc/export-specifier.ts var TYPE119 = "ExportSpecifier"; function exportSpecifier(local, exported) { return { type: TYPE119, local, exported }; } function isExportSpecifier(node) { return is(TYPE119, node); } function assertExportSpecifier(node) { assert(TYPE119, node); } // src/nodes/javascript/misc/import-default-specifier.ts var TYPE120 = "ImportDefaultSpecifier"; function importDefaultSpecifier(local) { return { type: TYPE120, local }; } function isImportDefaultSpecifier(node) { return is(TYPE120, node); } function assertImportDefaultSpecifier(node) { assert(TYPE120, node); } // src/nodes/javascript/misc/import-namespace-specifier.ts var TYPE121 = "ImportNamespaceSpecifier"; function importNamespaceSpecifier(local) { return { type: TYPE121, local }; } function isImportNamespaceSpecifier(node) { return is(TYPE121, node); } function assertImportNamespaceSpecifier(node) { assert(TYPE121, node); } // src/nodes/javascript/misc/import-specifier.ts var TYPE122 = "ImportSpecifier"; function importSpecifier(local, imported) { return { type: TYPE122, local, imported }; } function isImportSpecifier(node) { return is(TYPE122, node); } function assertImportSpecifier(node) { assert(TYPE122, node); } // src/nodes/javascript/misc/object-method.ts var TYPE123 = "ObjectMethod"; function objectMethod(kind, key, params, body, computed = false, generator = false, async = false) { return { type: TYPE123, kind, key, params, body, computed, generator, async }; } function isObjectMethod(node) { return is(TYPE123, node); } function assertObjectMethod(node) { assert(TYPE123, node); } // src/nodes/javascript/misc/object-pattern.ts var TYPE124 = "ObjectPattern"; function objectPattern(properties) { return { type: TYPE124, properties }; } function isObjectPattern(node) { return is(TYPE124, node); } function assertObjectPattern(node) { assert(TYPE124, node); } // src/nodes/javascript/misc/object-property.ts var TYPE125 = "ObjectProperty"; function objectProperty(key, value, computed = false, shorthand = false, decorators = null) { return { type: TYPE125, key, value, computed, shorthand, decorators }; } function isObjectProperty(node) { return is(TYPE125, node); } function assertObjectProperty(node) { assert(TYPE125, node); } // src/nodes/javascript/misc/private-name.ts var TYPE126 = "PrivateName"; function privateName(id) { return { type: TYPE126, id }; } function isPrivateName(node) { return is(TYPE126, node); } function assertPrivateName(node) { assert(TYPE126, node); } // src/nodes/javascript/misc/rest-element.ts var TYPE127 = "RestElement"; function restElement(argument) { return { type: TYPE127, argument }; } function isRestElement(node) { return is(TYPE127, node); } function assertRestElement(node) { assert(TYPE127, node); } // src/nodes/javascript/misc/spread-element.ts var TYPE128 = "SpreadElement"; function spreadElement(argument) { return { type: TYPE128, argument }; } function isSpreadElement(node) { return is(TYPE128, node); } function assertSpreadElement(node) { assert(TYPE128, node); } // src/nodes/javascript/misc/static-block.ts var TYPE129 = "StaticBlock"; function staticBlock(body) { return { type: TYPE129, body }; } function isStaticBlock(node) { return is(TYPE129, node); } function assertStaticBlock(node) { assert(TYPE129, node); } // src/nodes/javascript/misc/switch-case.ts var TYPE130 = "SwitchCase"; function switchCase(test, consequent) { return { type: TYPE130, test, consequent }; } function isSwitchCase(node) { return is(TYPE130, node); } function assertSwitchCase(node) { assert(TYPE130, node); } // src/nodes/javascript/misc/template-element.ts var TYPE131 = "TemplateElement"; function templateElement(value, tail = false) { return { type: TYPE131, value, tail }; } function isTemplateElement(node) { return is(TYPE131, node); } function assertTemplateElement(node) { assert(TYPE131, node); } // src/nodes/javascript/misc/v8-intrinsic-identifier.ts var TYPE132 = "V8IntrinsicIdentifier"; function v8IntrinsicIdentifier(name) { return { type: TYPE132, name }; } function isV8IntrinsicIdentifier(node) { return is(TYPE132, node); } function assertV8IntrinsicIdentifier(node) { assert(TYPE132, node); } // src/nodes/javascript/misc/variable-declarator.ts var TYPE133 = "VariableDeclarator"; function variableDeclarator(id, init = null) { return { type: TYPE133, id, init }; } function isVariableDeclarator(node) { return is(TYPE133, node); } function assertVariableDeclarator(node) { assert(TYPE133, node); } // src/nodes/javascript/statements/block-statement.ts var TYPE134 = "BlockStatement"; function blockStatement(body, directives = []) { return { type: TYPE134, body, directives }; } function isBlockStatement(node) { return is(TYPE134, node); } function assertBlockStatement(node) { assert(TYPE134, node); } // src/nodes/javascript/statements/break-statement.ts var TYPE135 = "BreakStatement"; function breakStatement(label = null) { return { type: TYPE135, label }; } function isBreakStatement(node) { return is(TYPE135, node); } function assertBreakStatement(node) { assert(TYPE135, node); } // src/nodes/javascript/statements/class-declaration.ts var TYPE136 = "ClassDeclaration"; function classDeclaration(id, superClass, body, decorators = null) { return { type: TYPE136, id, superClass, body, decorators }; } function isClassDeclaration(node) { return is(TYPE136, node); } function assertClassDeclaration(node) { assert(TYPE136, node); } // src/nodes/javascript/statements/continue-statement.ts var TYPE137 = "ContinueStatement"; function continueStatement(label = null) { return { type: TYPE137, label }; } function isContinueStatement(node) { return is(TYPE137, node); } function assertContinueStatement(node) { assert(TYPE137, node); } // src/nodes/javascript/statements/debugger-statement.ts var TYPE138 = "DebuggerStatement"; function debuggerStatement() { return { type: TYPE138 }; } function isDebuggerStatement(node) { return is(TYPE138, node); } function assertDebuggerStatement(node) { assert(TYPE138, node); } // src/nodes/javascript/statements/do-while-statement.ts var TYPE139 = "DoWhileStatement"; function doWhileStatement(test, body) { return { type: TYPE139, test, body }; } function isDoWhileStatement(node) { return is(TYPE139, node); } function assertDoWhileStatement(node) { assert(TYPE139, node); } // src/nodes/javascript/statements/empty-statement.ts var TYPE140 = "EmptyStatement"; function emptyStatement() { return { type: TYPE140 }; } function isEmptyStatement(node) { return is(TYPE140, node); } function assertEmptyStatement(node) { assert(TYPE140, node); } // src/nodes/javascript/statements/export-all-declaration.ts var TYPE141 = "ExportAllDeclaration"; function exportAllDeclaration(source) { return { type: TYPE141, source }; } function isExportAllDeclaration(node) { return is(TYPE141, node); } function assertExportAllDeclaration(node) { assert(TYPE141, node); } // src/nodes/javascript/statements/export-named-declaration.ts var TYPE142 = "ExportNamedDeclaration"; function exportNamedDeclaration(declaration = null, specifiers = [], source = null) { return { type: TYPE142, declaration, specifiers, source }; } function isExportNamedDeclaration(node) { return is(TYPE142, node); } function assertExportNamedDeclaration(node) { assert(TYPE142, node); } // src/nodes/javascript/statements/expression-statement.ts var TYPE143 = "ExpressionStatement"; function expressionStatement(expression) { return { type: TYPE143, expression }; } function isExpressionStatement(node) { return is(TYPE143, node); } function assertExpressionStatement(node) { assert(TYPE143, node); } // src/nodes/javascript/statements/for-in-statement.ts var TYPE144 = "ForInStatement"; function forInStatement(left, right, body) { return { type: TYPE144, left, right, body }; } function isForInStatement(node) { return is(TYPE144, node); } function assertForInStatement(node) { assert(TYPE144, node); } // src/nodes/javascript/statements/for-of-statement.ts var TYPE145 = "ForOfStatement"; function forOfStatement(left, right, body, isAwait) { return { type: TYPE145, left, right, body, await: isAwait }; } function isForOfStatement(node) { return is(TYPE145, node); } function assertForOfStatement(node) { assert(TYPE145, node); } // src/nodes/javascript/statements/for-statement.ts var TYPE146 = "ForStatement"; function forStatement(init, test, update, body) { return { type: TYPE146, init, test, update, body }; } function isForStatement(node) { return is(TYPE146, node); } function assertForStatement(node) { assert(TYPE146, node); } // src/nodes/javascript/statements/function-declaration.ts var TYPE147 = "FunctionDeclaration"; function functionDeclaration(id, params, body, generator = false, async = false) { return { type: TYPE147, id, params, body, generator, async }; } function isFunctionDeclaration(node) { return is(TYPE147, node); } function assertFunctionDeclaration(node) { assert(TYPE147, node); } // src/nodes/javascript/statements/if-statement.ts var TYPE148 = "IfStatement"; function ifStatement(test, consequent, alternate = null) { return { type: TYPE148, test, consequent, alternate }; } function isIfStatement(node) { return is(TYPE148, node); } function assertIfStatement(node)