diff --git a/deno/bootstrap/ts_morph_bootstrap.d.ts b/deno/bootstrap/ts_morph_bootstrap.d.ts index 24eb8b400..9f1b6e3eb 100644 --- a/deno/bootstrap/ts_morph_bootstrap.d.ts +++ b/deno/bootstrap/ts_morph_bootstrap.d.ts @@ -138,7 +138,7 @@ export interface ResolutionHost { * Factory used to create a resolution host. * @remarks The compiler options are retrieved via a function in order to get the project's current compiler options. */ -export declare type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; +export type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; /** Collection of reusable resolution hosts. */ export declare const ResolutionHosts: { diff --git a/deno/common/ts_morph_common.d.ts b/deno/common/ts_morph_common.d.ts index d2f3c2c4e..24aabffd0 100644 --- a/deno/common/ts_morph_common.d.ts +++ b/deno/common/ts_morph_common.d.ts @@ -121,7 +121,7 @@ export declare class LocaleStringComparer implements Comparer { /** Static instance for reuse. */ static readonly instance: LocaleStringComparer; /** @inheritdoc */ - compareTo(a: string, b: string): 1 | -1 | 0; + compareTo(a: string, b: string): 0 | 1 | -1; } /** @@ -282,7 +282,7 @@ export interface ResolutionHost { * Factory used to create a resolution host. * @remarks The compiler options are retrieved via a function in order to get the project's current compiler options. */ -export declare type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; +export type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; /** Collection of reusable resolution hosts. */ export declare const ResolutionHosts: { @@ -750,7 +750,7 @@ export declare class RealFileSystemHost implements FileSystemHost { } /** Nominal type to denote a file path that has been standardized. */ -export declare type StandardizedFilePath = string & { +export type StandardizedFilePath = string & { _standardizedFilePathBrand: undefined; }; @@ -1036,7 +1036,7 @@ export declare function deepClone(objToClone: T): T; /** * Event container subscription type */ -export declare type EventContainerSubscription = (arg: EventArgType) => void; +export type EventContainerSubscription = (arg: EventArgType) => void; /** * Event container for event subscriptions. diff --git a/deno/ts_morph.d.ts b/deno/ts_morph.d.ts index 77d9db287..45a96bd16 100644 --- a/deno/ts_morph.d.ts +++ b/deno/ts_morph.d.ts @@ -132,7 +132,7 @@ export interface ResolutionHost { * Factory used to create a resolution host. * @remarks The compiler options are retrieved via a function in order to get the project's current compiler options. */ -export declare type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; +export type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; /** Collection of reusable resolution hosts. */ export declare const ResolutionHosts: { deno: ResolutionHostFactory; @@ -757,9 +757,9 @@ export interface SourceFileCreateOptions { scriptKind?: ScriptKind; } -export declare type Constructor = new (...args: any[]) => T; -export declare type InstanceOf = T extends new (...args: any[]) => infer U ? U : never; -export declare type WriterFunction = (writer: CodeBlockWriter) => void; +export type Constructor = new (...args: any[]) => T; +export type InstanceOf = T extends new (...args: any[]) => infer U ? U : never; +export type WriterFunction = (writer: CodeBlockWriter) => void; /** * Creates a wrapped node from a compiler node. * @param node - Node to create a wrapped node from. @@ -822,7 +822,7 @@ export interface PrintNodeOptions { scriptKind?: ScriptKind; } -export declare type SourceFileReferencingNodes = ImportDeclaration | ExportDeclaration | ImportEqualsDeclaration | CallExpression; +export type SourceFileReferencingNodes = ImportDeclaration | ExportDeclaration | ImportEqualsDeclaration | CallExpression; export interface CompilerOptionsFromTsConfigOptions { encoding?: string; @@ -866,44 +866,44 @@ export declare class Writers { static returnStatement(value: WriterFunctionOrValue): WriterFunction; } -export declare type WriterFunctionOrValue = string | number | WriterFunction; -export declare type AssertionKey = Identifier | StringLiteral; -export declare type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier; -export declare type ModuleName = Identifier | StringLiteral; -export declare type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; -export declare type ArrayBindingElement = BindingElement | OmittedExpression; -export declare type BindingName = Identifier | BindingPattern; -export declare type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; -export declare type BooleanLiteral = TrueLiteral | FalseLiteral; -export declare type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement; -export declare type EntityNameExpression = Identifier | PropertyAccessExpression; -export declare type DeclarationName = Identifier | PrivateIdentifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression; -export declare type EntityName = Identifier | QualifiedName; -export declare type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; -export declare type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; -export declare type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; -export declare type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; +export type WriterFunctionOrValue = string | number | WriterFunction; +export type AssertionKey = Identifier | StringLiteral; +export type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier; +export type ModuleName = Identifier | StringLiteral; +export type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; +export type ArrayBindingElement = BindingElement | OmittedExpression; +export type BindingName = Identifier | BindingPattern; +export type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; +export type BooleanLiteral = TrueLiteral | FalseLiteral; +export type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement; +export type EntityNameExpression = Identifier | PropertyAccessExpression; +export type DeclarationName = Identifier | PrivateIdentifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression; +export type EntityName = Identifier | QualifiedName; +export type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; +export type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; +export type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; +export type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; export interface JsxTagNamePropertyAccess extends PropertyAccessExpression { getExpression(): JsxTagNameExpression; } -export declare type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; -export declare type CaseOrDefaultClause = CaseClause | DefaultClause; -export declare type ModuleReference = EntityName | ExternalModuleReference; -export declare type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; -export declare type TypeElementTypes = PropertySignature | MethodSignature | ConstructSignatureDeclaration | CallSignatureDeclaration | IndexSignatureDeclaration; -export declare type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; +export type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; +export type CaseOrDefaultClause = CaseClause | DefaultClause; +export type ModuleReference = EntityName | ExternalModuleReference; +export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; +export type TypeElementTypes = PropertySignature | MethodSignature | ConstructSignatureDeclaration | CallSignatureDeclaration | IndexSignatureDeclaration; +export type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; /** * Local target declarations. * @remarks This may be missing some types. Please open an issue if this returns a type not listed here. */ -export declare type LocalTargetDeclarations = SourceFile | ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | ExportAssignment; +export type LocalTargetDeclarations = SourceFile | ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | ExportAssignment; /** * Declarations that can be exported from a module. * @remarks This may be missing some types. Please open an issue if this returns a type not listed here. */ -export declare type ExportedDeclarations = ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | Expression | SourceFile; +export type ExportedDeclarations = ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | Expression | SourceFile; export declare function AmbientableNode>(Base: T): Constructor & T; export interface AmbientableNode { @@ -922,7 +922,7 @@ export interface AmbientableNode { setHasDeclareKeyword(value?: boolean): this; } -declare type AmbientableNodeExtensionType = Node & ModifierableNode; +type AmbientableNodeExtensionType = Node & ModifierableNode; export declare function ArgumentedNode>(Base: T): Constructor & T; export interface ArgumentedNode { @@ -962,7 +962,7 @@ export interface ArgumentedNode { removeArgument(index: number): this; } -declare type ArgumentedNodeExtensionType = Node; }>; export declare function AsyncableNode>(Base: T): Constructor & T; @@ -981,7 +981,7 @@ export interface AsyncableNode { setIsAsync(value: boolean): this; } -declare type AsyncableNodeExtensionType = Node & ModifierableNode; +type AsyncableNodeExtensionType = Node & ModifierableNode; export declare function AwaitableNode>(Base: T): Constructor & T; export interface AwaitableNode { @@ -998,7 +998,7 @@ export interface AwaitableNode { setIsAwaited(value: boolean): this; } -declare type AwaitableNodeExtensionType = Node; export declare function BodiedNode>(Base: T): Constructor & T; @@ -1015,7 +1015,7 @@ export interface BodiedNode { getBodyText(): string; } -declare type BodiedNodeExtensionType = Node; export declare function BodyableNode>(Base: T): Constructor & T; @@ -1040,7 +1040,7 @@ export interface BodyableNode { removeBody(): this; } -declare type BodyableNodeExtensionType = Node; export declare function ChildOrderableNode>(Base: T): Constructor & T; @@ -1050,7 +1050,7 @@ export interface ChildOrderableNode { setOrder(order: number): this; } -declare type ChildOrderableNodeExtensionType = Node; +type ChildOrderableNodeExtensionType = Node; export declare function DecoratableNode>(Base: T): Constructor & T; export interface DecoratableNode { @@ -1100,7 +1100,7 @@ export interface DecoratableNode { insertDecorators(index: number, structures: ReadonlyArray>): Decorator[]; } -declare type DecoratableNodeExtensionType = Node & ModifierableNode; +type DecoratableNodeExtensionType = Node & ModifierableNode; export declare function DotDotDotTokenableNode>(Base: T): Constructor & T; export interface DotDotDotTokenableNode { @@ -1110,7 +1110,7 @@ export interface DotDotDotTokenableNode { getDotDotDotTokenOrThrow(message?: string | (() => string)): Node; } -declare type DotDotDotTokenableNodeExtensionType = Node; export declare function ExclamationTokenableNode>(Base: T): Constructor & T; @@ -1129,7 +1129,7 @@ export interface ExclamationTokenableNode { setHasExclamationToken(value: boolean): this; } -declare type ExclamationTokenableNodeExtensionType = Node; export declare function ExportableNode>(Base: T): Constructor & T; @@ -1149,7 +1149,7 @@ export interface ExportableNode extends ExportGetableNode { setIsExported(value: boolean): this; } -declare type ExportableNodeExtensionType = Node & ModifierableNode; +type ExportableNodeExtensionType = Node & ModifierableNode; export declare function ExportGetableNode>(Base: T): Constructor & T; export interface ExportGetableNode { @@ -1173,7 +1173,7 @@ export interface ExportGetableNode { isNamedExport(): boolean; } -declare type ExportGetableNodeExtensionType = Node; +type ExportGetableNodeExtensionType = Node; export declare function ExtendsClauseableNode>(Base: T): Constructor & T; export interface ExtendsClauseableNode { @@ -1211,7 +1211,7 @@ export interface ExtendsClauseableNode { removeExtends(extendsNode: ExpressionWithTypeArguments): this; } -declare type ExtendsClauseableNodeExtensionType = Node & HeritageClauseableNode; +type ExtendsClauseableNodeExtensionType = Node & HeritageClauseableNode; export declare function GeneratorableNode>(Base: T): Constructor & T; export interface GeneratorableNode { @@ -1228,7 +1228,7 @@ export interface GeneratorableNode { setIsGenerator(value: boolean): this; } -declare type GeneratorableNodeExtensionType = Node; export declare function HeritageClauseableNode>(Base: T): Constructor & T; @@ -1248,7 +1248,7 @@ export interface HeritageClauseableNode { getHeritageClauseByKindOrThrow(kind: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword): HeritageClause; } -declare type HeritageClauseableNodeExtensionType = Node; }>; export declare function ImplementsClauseableNode>(Base: T): Constructor & T; @@ -1288,7 +1288,7 @@ export interface ImplementsClauseableNode { removeImplements(implementsNode: ExpressionWithTypeArguments): this; } -declare type ImplementsClauseableNodeExtensionType = Node & HeritageClauseableNode; +type ImplementsClauseableNodeExtensionType = Node & HeritageClauseableNode; export declare function InitializerExpressionableNode>(Base: T): Constructor & T; export interface InitializerExpressionableNode extends InitializerExpressionGetableNode { @@ -1301,7 +1301,7 @@ export interface InitializerExpressionableNode extends InitializerExpressionGeta setInitializer(textOrWriterFunction: string | WriterFunction): this; } -declare type InitializerExpressionableNodeExtensionType = Node; export declare function InitializerExpressionGetableNode>(Base: T): Constructor & T; @@ -1319,7 +1319,7 @@ export interface InitializerExpressionGetableNode { getInitializerOrThrow(message?: string | (() => string)): Expression; } -declare type InitializerExpressionGetableNodeExtensionType = Node; export declare function JSDocableNode>(Base: T): Constructor & T; @@ -1351,7 +1351,7 @@ export interface JSDocableNode { insertJsDocs(index: number, structures: ReadonlyArray | string | WriterFunction>): JSDoc[]; } -declare type JSDocableNodeExtensionType = Node; }>; export declare function LiteralLikeNode>(Base: T): Constructor & T; @@ -1365,7 +1365,7 @@ export interface LiteralLikeNode { hasExtendedUnicodeEscape(): boolean; } -declare type LiteralLikeNodeExtensionType = Node; +type LiteralLikeNodeExtensionType = Node; export declare function ModifierableNode>(Base: T): Constructor & T; export interface ModifierableNode { @@ -1399,8 +1399,8 @@ export interface ModifierableNode { toggleModifier(text: ModifierTexts, value?: boolean): this; } -declare type ModifierableNodeExtensionType = Node; -export declare type ModifierTexts = "export" | "default" | "declare" | "abstract" | "public" | "protected" | "private" | "readonly" | "static" | "async" | "const" | "override" | "in" | "out" | "accessor"; +type ModifierableNodeExtensionType = Node; +export type ModifierTexts = "export" | "default" | "declare" | "abstract" | "public" | "protected" | "private" | "readonly" | "static" | "async" | "const" | "override" | "in" | "out" | "accessor"; export declare function ModuledNode>(Base: T): Constructor & T; export interface ModuledNode { @@ -1541,34 +1541,34 @@ export interface ModuledNode { removeDefaultExport(defaultExportSymbol?: Symbol | undefined): this; } -declare type ModuledNodeExtensionType = Node & StatementedNode; +type ModuledNodeExtensionType = Node & StatementedNode; export declare function AssertionKeyNamedNode>(Base: T): Constructor & T; export interface AssertionKeyNamedNode extends AssertionKeyNamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type AssertionKeyNamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type AssertionKeyNamedNodeSpecific = NamedNodeSpecificBase; +type AssertionKeyNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type AssertionKeyNamedNodeSpecific = NamedNodeSpecificBase; export declare function BindingNamedNode>(Base: T): Constructor & T; export interface BindingNamedNode extends BindingNamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type BindingNamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type BindingNamedNodeSpecific = NamedNodeSpecificBase; +type BindingNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type BindingNamedNodeSpecific = NamedNodeSpecificBase; export declare function ModuleNamedNode>(Base: T): Constructor & T; export interface ModuleNamedNode extends ModuleNamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type ModuleNamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type ModuleNamedNodeSpecific = NamedNodeSpecificBase; +type ModuleNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type ModuleNamedNodeSpecific = NamedNodeSpecificBase; export declare function NameableNode>(Base: T): Constructor & T; export interface NameableNode extends NameableNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type NameableNodeExtensionType = Node; @@ -1590,8 +1590,8 @@ export declare function NamedNode> export interface NamedNode extends NamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type NamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type NamedNodeSpecific = NamedNodeSpecificBase; +type NamedNodeExtensionType = NamedNodeBaseExtensionType; +export type NamedNodeSpecific = NamedNodeSpecificBase; export declare function NamedNodeBase>>(Base: U): Constructor>> & U; export interface NamedNodeSpecificBase { @@ -1601,7 +1601,7 @@ export interface NamedNodeSpecificBase { getName(): string; } -declare type NamedNodeBaseExtensionType = Node = Node; export declare function PropertyNamedNode>(Base: T): Constructor & T; @@ -1609,8 +1609,8 @@ export declare function PropertyNamedNode; -export declare type PropertyNamedNodeSpecific = NamedNodeSpecificBase; +type PropertyNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type PropertyNamedNodeSpecific = NamedNodeSpecificBase; export declare function ReferenceFindableNode>(Base: T): Constructor & T; export interface ReferenceFindableNode { @@ -1620,7 +1620,7 @@ export interface ReferenceFindableNode { findReferencesAsNodes(): Node[]; } -declare type ReferenceFindableNodeExtensionType = Node; export declare function RenameableNode>(Base: T): Constructor & T; @@ -1634,7 +1634,7 @@ export interface RenameableNode { rename(newName: string, options?: RenameOptions): this; } -declare type RenameableNodeExtensionType = Node; +type RenameableNodeExtensionType = Node; export declare function OverrideableNode>(Base: T): Constructor & T; export interface OverrideableNode { @@ -1651,7 +1651,7 @@ export interface OverrideableNode { setHasOverrideKeyword(value: boolean): this; } -declare type OverrideableNodeExtensionType = Node & ModifierableNode; +type OverrideableNodeExtensionType = Node & ModifierableNode; export declare function ParameteredNode>(Base: T): Constructor & T; export interface ParameteredNode { @@ -1701,7 +1701,7 @@ export interface ParameteredNode { insertParameter(index: number, structure: OptionalKind): ParameterDeclaration; } -declare type ParameteredNodeExtensionType = Node; }>; export declare function QuestionDotTokenableNode>(Base: T): Constructor & T; @@ -1720,7 +1720,7 @@ export interface QuestionDotTokenableNode { setHasQuestionDotToken(value: boolean): this; } -declare type QuestionDotTokenableNodeExtensionType = Node; export declare function QuestionTokenableNode>(Base: T): Constructor & T; @@ -1739,7 +1739,7 @@ export interface QuestionTokenableNode { setHasQuestionToken(value: boolean): this; } -declare type QuestionTokenableNodeExtensionType = Node; export declare function ReadonlyableNode>(Base: T): Constructor & T; @@ -1758,7 +1758,7 @@ export interface ReadonlyableNode { setIsReadonly(value: boolean): this; } -declare type ReadonlyableNodeExtensionType = Node & ModifierableNode; +type ReadonlyableNodeExtensionType = Node & ModifierableNode; export declare function ReturnTypedNode>(Base: T): Constructor & T; export interface ReturnTypedNode { @@ -1779,7 +1779,7 @@ export interface ReturnTypedNode { getSignature(): Signature; } -declare type ReturnTypedNodeExtensionType = Node; +type ReturnTypedNodeExtensionType = Node; export declare function ScopeableNode>(Base: T): Constructor & T; export interface ScopeableNode { @@ -1796,7 +1796,7 @@ export interface ScopeableNode { hasScopeKeyword(): boolean; } -declare type ScopeableNodeExtensionType = Node & ModifierableNode; +type ScopeableNodeExtensionType = Node & ModifierableNode; export declare function ScopedNode>(Base: T): Constructor & T; export interface ScopedNode { @@ -1811,13 +1811,13 @@ export interface ScopedNode { hasScopeKeyword(): boolean; } -declare type ScopedNodeExtensionType = Node & ModifierableNode; +type ScopedNodeExtensionType = Node & ModifierableNode; export declare function SignaturedDeclaration>(Base: T): Constructor & T; export interface SignaturedDeclaration extends ParameteredNode, ReturnTypedNode { } -declare type SignaturedDeclarationExtensionType = Node; +type SignaturedDeclarationExtensionType = Node; export declare function StaticableNode>(Base: T): Constructor & T; export interface StaticableNode { @@ -1834,7 +1834,7 @@ export interface StaticableNode { setIsStatic(value: boolean): this; } -declare type StaticableNodeExtensionType = Node & ModifierableNode; +type StaticableNodeExtensionType = Node & ModifierableNode; export declare function TextInsertableNode>(Base: T): Constructor & T; export interface TextInsertableNode { @@ -1866,7 +1866,7 @@ export interface TextInsertableNode { removeText(pos: number, end: number): this; } -declare type TextInsertableNodeExtensionType = Node; +type TextInsertableNodeExtensionType = Node; export declare function TypeArgumentedNode>(Base: T): Constructor & T; export interface TypeArgumentedNode { @@ -1906,7 +1906,7 @@ export interface TypeArgumentedNode { removeTypeArgument(index: number): this; } -declare type TypeArgumentedNodeExtensionType = Node; }>; export declare function TypedNode>(Base: T): Constructor & T; @@ -1925,7 +1925,7 @@ export interface TypedNode { removeType(): this; } -declare type TypedNodeExtensionType = Node; export declare function TypeElementMemberedNode>(Base: T): Constructor & T; @@ -2149,7 +2149,7 @@ export interface TypeElementMemberedNode { getMembersWithComments(): (TypeElementTypes | CommentTypeElement)[]; } -declare type TypeElementMemberedNodeExtensionType = Node; }>; export declare function TypeParameteredNode>(Base: T): Constructor & T; @@ -2201,7 +2201,7 @@ export interface TypeParameteredNode { insertTypeParameters(index: number, structures: ReadonlyArray | string>): TypeParameterDeclaration[]; } -declare type TypeParameteredNodeExtensionType = Node; }>; export declare function UnwrappableNode>(Base: T): Constructor & T; @@ -2211,7 +2211,7 @@ export interface UnwrappableNode { unwrap(): void; } -declare type UnwrappableNodeExtensionType = Node; +type UnwrappableNodeExtensionType = Node; export declare class ArrayBindingPattern extends Node { /** Gets the array binding pattern's elements. */ @@ -2268,7 +2268,7 @@ export interface AbstractableNode { setIsAbstract(isAbstract: boolean): this; } -declare type AbstractableNodeExtensionType = Node & ModifierableNode; +type AbstractableNodeExtensionType = Node & ModifierableNode; export declare function ClassLikeDeclarationBase>(Base: T): Constructor & T; export interface ClassLikeDeclarationBase extends NameableNode, TextInsertableNode, ImplementsClauseableNode, HeritageClauseableNode, AbstractableNode, JSDocableNode, TypeParameteredNode, DecoratableNode, ModifierableNode, ClassLikeDeclarationBaseSpecific { @@ -2712,14 +2712,14 @@ interface ClassLikeDeclarationBaseSpecific { getDerivedClasses(): ClassDeclaration[]; } -export declare type ClassPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; -export declare type ClassInstancePropertyTypes = ClassPropertyTypes | ParameterDeclaration; -export declare type ClassInstanceMemberTypes = MethodDeclaration | ClassInstancePropertyTypes; -export declare type ClassStaticPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; -export declare type ClassStaticMemberTypes = MethodDeclaration | ClassStaticBlockDeclaration | ClassStaticPropertyTypes; -export declare type ClassMemberTypes = MethodDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | ClassStaticBlockDeclaration; -declare type ClassLikeDeclarationBaseExtensionType = Node; -declare type ClassLikeDeclarationBaseSpecificExtensionType = Node & HeritageClauseableNode & ModifierableNode & NameableNode; +export type ClassPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; +export type ClassInstancePropertyTypes = ClassPropertyTypes | ParameterDeclaration; +export type ClassInstanceMemberTypes = MethodDeclaration | ClassInstancePropertyTypes; +export type ClassStaticPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; +export type ClassStaticMemberTypes = MethodDeclaration | ClassStaticBlockDeclaration | ClassStaticPropertyTypes; +export type ClassMemberTypes = MethodDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | ClassStaticBlockDeclaration; +type ClassLikeDeclarationBaseExtensionType = Node; +type ClassLikeDeclarationBaseSpecificExtensionType = Node & HeritageClauseableNode & ModifierableNode & NameableNode; declare const ClassDeclarationBase: Constructor & Constructor & Constructor & Constructor & typeof Statement; export declare class ClassDeclaration extends ClassDeclarationBase { @@ -2986,8 +2986,8 @@ export declare class CompilerCommentObjectLiteralElement extends CompilerComment export declare class CompilerCommentEnumMember extends CompilerCommentNode implements ts.Node { } -export declare type NodePropertyToWrappedType> = NodeType[KeyName] extends ts.NodeArray | undefined ? CompilerNodeToWrappedType[] | undefined : NodeType[KeyName] extends ts.NodeArray ? CompilerNodeToWrappedType[] : NodeType[KeyName] extends ts.Node ? CompilerNodeToWrappedType : NonNullableNodeType extends ts.Node ? CompilerNodeToWrappedType | undefined : NodeType[KeyName]; -export declare type NodeParentType = NodeType extends ts.SourceFile ? undefined : ts.Node extends NodeType ? CompilerNodeToWrappedType | undefined : CompilerNodeToWrappedType; +export type NodePropertyToWrappedType> = NodeType[KeyName] extends ts.NodeArray | undefined ? CompilerNodeToWrappedType[] | undefined : NodeType[KeyName] extends ts.NodeArray ? CompilerNodeToWrappedType[] : NodeType[KeyName] extends ts.Node ? CompilerNodeToWrappedType : NonNullableNodeType extends ts.Node ? CompilerNodeToWrappedType | undefined : NodeType[KeyName]; +export type NodeParentType = NodeType extends ts.SourceFile ? undefined : ts.Node extends NodeType ? CompilerNodeToWrappedType | undefined : CompilerNodeToWrappedType; export declare class Node { /** Gets if the node is an AnyKeyword. */ @@ -4578,7 +4578,7 @@ export interface TransformTraversalControl { visitChildren(): ts.Node; } -export declare type CompilerNodeToWrappedType = T extends ts.ObjectDestructuringAssignment ? ObjectDestructuringAssignment : T extends ts.ArrayDestructuringAssignment ? ArrayDestructuringAssignment : T extends ts.SuperElementAccessExpression ? SuperElementAccessExpression : T extends ts.SuperPropertyAccessExpression ? SuperPropertyAccessExpression : T extends ts.AssignmentExpression ? AssignmentExpression> : T["kind"] extends keyof ImplementedKindToNodeMappings ? ImplementedKindToNodeMappings[T["kind"]] : T extends ts.SyntaxList ? SyntaxList : T extends ts.JSDocTypeExpression ? JSDocTypeExpression : T extends ts.JSDocType ? JSDocType : T extends ts.NodeWithTypeArguments ? NodeWithTypeArguments : T extends ts.TypeNode ? TypeNode : T extends ts.JSDocTag ? JSDocTag : T extends ts.LiteralExpression ? LiteralExpression : T extends ts.PrimaryExpression ? PrimaryExpression : T extends ts.MemberExpression ? MemberExpression : T extends ts.LeftHandSideExpression ? LeftHandSideExpression : T extends ts.UpdateExpression ? UpdateExpression : T extends ts.UnaryExpression ? UnaryExpression : T extends ts.Expression ? Expression : T extends ts.IterationStatement ? IterationStatement : T extends CompilerCommentStatement ? CommentStatement : T extends CompilerCommentClassElement ? CommentClassElement : T extends CompilerCommentTypeElement ? CommentTypeElement : T extends CompilerCommentObjectLiteralElement ? CommentObjectLiteralElement : T extends CompilerCommentEnumMember ? CommentEnumMember : T extends ts.TypeElement ? TypeElement : T extends ts.Statement ? Statement : T extends ts.ClassElement ? ClassElement : T extends ts.ObjectLiteralElement ? ObjectLiteralElement : Node; +export type CompilerNodeToWrappedType = T extends ts.ObjectDestructuringAssignment ? ObjectDestructuringAssignment : T extends ts.ArrayDestructuringAssignment ? ArrayDestructuringAssignment : T extends ts.SuperElementAccessExpression ? SuperElementAccessExpression : T extends ts.SuperPropertyAccessExpression ? SuperPropertyAccessExpression : T extends ts.AssignmentExpression ? AssignmentExpression> : T["kind"] extends keyof ImplementedKindToNodeMappings ? ImplementedKindToNodeMappings[T["kind"]] : T extends ts.SyntaxList ? SyntaxList : T extends ts.JSDocTypeExpression ? JSDocTypeExpression : T extends ts.JSDocType ? JSDocType : T extends ts.NodeWithTypeArguments ? NodeWithTypeArguments : T extends ts.TypeNode ? TypeNode : T extends ts.JSDocTag ? JSDocTag : T extends ts.LiteralExpression ? LiteralExpression : T extends ts.PrimaryExpression ? PrimaryExpression : T extends ts.MemberExpression ? MemberExpression : T extends ts.LeftHandSideExpression ? LeftHandSideExpression : T extends ts.UpdateExpression ? UpdateExpression : T extends ts.UnaryExpression ? UnaryExpression : T extends ts.Expression ? Expression : T extends ts.IterationStatement ? IterationStatement : T extends CompilerCommentStatement ? CommentStatement : T extends CompilerCommentClassElement ? CommentClassElement : T extends CompilerCommentTypeElement ? CommentTypeElement : T extends CompilerCommentObjectLiteralElement ? CommentObjectLiteralElement : T extends CompilerCommentEnumMember ? CommentEnumMember : T extends ts.TypeElement ? TypeElement : T extends ts.Statement ? Statement : T extends ts.ClassElement ? ClassElement : T extends ts.ObjectLiteralElement ? ObjectLiteralElement : Node; declare const DecoratorBase: Constructor & typeof Node; export declare class Decorator extends DecoratorBase { @@ -4698,7 +4698,7 @@ export interface JSDocPropertyLikeTag { isBracketed(): boolean; } -declare type JSDocPropertyLikeTagExtensionType = Node & JSDocTag; +type JSDocPropertyLikeTagExtensionType = Node & JSDocTag; export declare function JSDocTypeExpressionableTag>(Base: T): Constructor & T; export interface JSDocTypeExpressionableTag { @@ -4708,7 +4708,7 @@ export interface JSDocTypeExpressionableTag { getTypeExpressionOrThrow(message?: string | (() => string)): JSDocTypeExpression; } -declare type JSDocTypeExpressionableTagExtensionType = Node & JSDocTag; export declare function JSDocTypeParameteredTag>(Base: T): Constructor & T; @@ -4718,7 +4718,7 @@ export interface JSDocTypeParameteredTag { getTypeParameters(): TypeParameterDeclaration[]; } -declare type JSDocTypeParameteredTagExtensionType = Node; }> & JSDocTag; declare const JSDocBase: typeof Node; @@ -5472,7 +5472,7 @@ export interface ExpressionableNode { getExpressionIfKindOrThrow(kind: TKind): KindToExpressionMappings[TKind]; } -declare type ExpressionableNodeExtensionType = Node; export declare function BaseExpressionedNode, TExpression extends Node = CompilerNodeToWrappedType["compilerNode"]>>(Base: T): Constructor> & T; @@ -5502,7 +5502,7 @@ export declare function ExpressionedNode { } -declare type ExpressionedNodeExtensionType = Node; export declare function ImportExpressionedNode>(Base: T): Constructor & T; @@ -5510,7 +5510,7 @@ export declare function ImportExpressionedNode { } -declare type ImportExpressionedNodeExtensionType = Node; export declare function LeftHandSideExpressionedNode>(Base: T): Constructor & T; @@ -5518,7 +5518,7 @@ export declare function LeftHandSideExpressionedNode { } -declare type LeftHandSideExpressionedNodeExtensionType = Node; export declare function SuperExpressionedNode>(Base: T): Constructor & T; @@ -5526,7 +5526,7 @@ export declare function SuperExpressionedNode { } -declare type SuperExpressionedNodeExtensionType = Node; export declare function UnaryExpressionedNode>(Base: T): Constructor & T; @@ -5534,7 +5534,7 @@ export declare function UnaryExpressionedNode { } -declare type UnaryExpressionedNodeExtensionType = Node; declare const ImportExpressionBase: typeof PrimaryExpression; @@ -6105,7 +6105,7 @@ export declare function FunctionLikeDeclaration; +type FunctionLikeDeclarationExtensionType = Node; export declare function OverloadableNode>(Base: T): Constructor & T; /** Node that supports overloads. */ @@ -6122,7 +6122,7 @@ export interface OverloadableNode { isImplementation(): boolean; } -declare type OverloadableNodeExtensionType = Node & BodyableNode; +type OverloadableNodeExtensionType = Node & BodyableNode; declare const ParameterDeclarationBase: Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & typeof Node; export declare class ParameterDeclaration extends ParameterDeclarationBase { @@ -6355,7 +6355,7 @@ export interface JsxAttributedNode { insertAttributes(index: number, attributes: ReadonlyArray | OptionalKind>): JsxAttributeLike[]; } -declare type JsxAttributedNodeExtensionType = Node & JsxTagNamedNode; export declare function JsxTagNamedNode>(Base: T): Constructor & T; @@ -6365,7 +6365,7 @@ export interface JsxTagNamedNode { getTagNameNode(): JsxTagNameExpression; } -declare type JsxTagNamedNodeExtensionType = Node; declare const JsxAttributeBase: Constructor & typeof Node; @@ -7471,7 +7471,7 @@ export interface ModuleChildableNode { getParentModuleOrThrow(message?: string | (() => string)): ModuleDeclaration; } -declare type ModuleChildableNodeExtensionType = Node; +type ModuleChildableNodeExtensionType = Node; declare const ModuleDeclarationBase: Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & typeof Statement; export declare class ModuleDeclaration extends ModuleDeclarationBase { @@ -7910,7 +7910,7 @@ interface CommonIdentifierBase { getDefinitions(): DefinitionInfo[]; } -declare type CommonIdentifierBaseExtensionType = Node; declare const ComputedPropertyNameBase: Constructor & typeof Node; @@ -8579,7 +8579,7 @@ export interface StatementedNode { getVariableDeclarationOrThrow(findFunction: (declaration: VariableDeclaration) => boolean): VariableDeclaration; } -declare type StatementedNodeExtensionType = Node; +type StatementedNodeExtensionType = Node; export interface KindToNodeMappingsWithCommentStatements extends ImplementedKindToNodeMappings { [kind: number]: Node; @@ -10287,13 +10287,13 @@ export declare class ManipulationSettingsContainer extends SettingsContainer): void; } -export declare type StatementStructures = ClassDeclarationStructure | EnumDeclarationStructure | FunctionDeclarationStructure | InterfaceDeclarationStructure | ModuleDeclarationStructure | TypeAliasDeclarationStructure | ImportDeclarationStructure | ExportDeclarationStructure | ExportAssignmentStructure | VariableStatementStructure; -export declare type ClassMemberStructures = ConstructorDeclarationStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure | PropertyDeclarationStructure | ClassStaticBlockDeclarationStructure; -export declare type TypeElementMemberStructures = CallSignatureDeclarationStructure | ConstructSignatureDeclarationStructure | IndexSignatureDeclarationStructure | MethodSignatureStructure | PropertySignatureStructure; -export declare type InterfaceMemberStructures = TypeElementMemberStructures; -export declare type ObjectLiteralExpressionPropertyStructures = PropertyAssignmentStructure | ShorthandPropertyAssignmentStructure | SpreadAssignmentStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure; -export declare type JsxStructures = JsxAttributeStructure | JsxSpreadAttributeStructure | JsxElementStructure | JsxSelfClosingElementStructure; -export declare type Structures = AssertEntryStructure | StatementStructures | ClassMemberStructures | EnumMemberStructure | InterfaceMemberStructures | ObjectLiteralExpressionPropertyStructures | JsxStructures | FunctionDeclarationOverloadStructure | MethodDeclarationOverloadStructure | ConstructorDeclarationOverloadStructure | ParameterDeclarationStructure | TypeParameterDeclarationStructure | SourceFileStructure | ExportSpecifierStructure | ImportSpecifierStructure | VariableDeclarationStructure | JSDocStructure | JSDocTagStructure | DecoratorStructure; +export type StatementStructures = ClassDeclarationStructure | EnumDeclarationStructure | FunctionDeclarationStructure | InterfaceDeclarationStructure | ModuleDeclarationStructure | TypeAliasDeclarationStructure | ImportDeclarationStructure | ExportDeclarationStructure | ExportAssignmentStructure | VariableStatementStructure; +export type ClassMemberStructures = ConstructorDeclarationStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure | PropertyDeclarationStructure | ClassStaticBlockDeclarationStructure; +export type TypeElementMemberStructures = CallSignatureDeclarationStructure | ConstructSignatureDeclarationStructure | IndexSignatureDeclarationStructure | MethodSignatureStructure | PropertySignatureStructure; +export type InterfaceMemberStructures = TypeElementMemberStructures; +export type ObjectLiteralExpressionPropertyStructures = PropertyAssignmentStructure | ShorthandPropertyAssignmentStructure | SpreadAssignmentStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure; +export type JsxStructures = JsxAttributeStructure | JsxSpreadAttributeStructure | JsxElementStructure | JsxSelfClosingElementStructure; +export type Structures = AssertEntryStructure | StatementStructures | ClassMemberStructures | EnumMemberStructure | InterfaceMemberStructures | ObjectLiteralExpressionPropertyStructures | JsxStructures | FunctionDeclarationOverloadStructure | MethodDeclarationOverloadStructure | ConstructorDeclarationOverloadStructure | ParameterDeclarationStructure | TypeParameterDeclarationStructure | SourceFileStructure | ExportSpecifierStructure | ImportSpecifierStructure | VariableDeclarationStructure | JSDocStructure | JSDocTagStructure | DecoratorStructure; export interface AbstractableNodeStructure { isAbstract?: boolean; @@ -11006,7 +11006,7 @@ interface TypeParameterDeclarationSpecificStructure extends KindedStructure = Pick> & Partial>; /** diff --git a/deno/ts_morph.js b/deno/ts_morph.js index 63089ddde..525481122 100644 --- a/deno/ts_morph.js +++ b/deno/ts_morph.js @@ -6349,15 +6349,15 @@ class NodePrinter extends Printer { this.printTrailingTrivia(writer, structure); } printLeadingTrivia(writer, structure) { - const leadingTrivia = structure.leadingTrivia; - if (leadingTrivia != null) { + const leadingTrivia = structure === null || structure === void 0 ? void 0 : structure.leadingTrivia; + if (leadingTrivia) { this.printTrivia(writer, leadingTrivia); if (writer.isInComment()) writer.closeComment(); } } printTrailingTrivia(writer, structure) { - const trailingTrivia = structure.trailingTrivia; + const trailingTrivia = structure === null || structure === void 0 ? void 0 : structure.trailingTrivia; if (trailingTrivia != null) this.printTrivia(writer, trailingTrivia); } @@ -10440,8 +10440,8 @@ class ArrayBindingPattern extends Node { } } -const createBase$E = (ctor) => DotDotDotTokenableNode(InitializerExpressionableNode(BindingNamedNode(ctor))); -const BindingElementBase = createBase$E(Node); +const createBase$F = (ctor) => DotDotDotTokenableNode(InitializerExpressionableNode(BindingNamedNode(ctor))); +const BindingElementBase = createBase$F(Node); class BindingElement extends BindingElementBase { getPropertyNameNodeOrThrow(message) { return errors.throwIfNullOrUndefined(this.getPropertyNameNode(), message !== null && message !== void 0 ? message : "Expected to find a property name node.", this); @@ -10662,8 +10662,8 @@ function UnaryExpressionedNode(Base) { return BaseExpressionedNode(Base); } -const createBase$D = (ctor) => TypedNode(ExpressionedNode(ctor)); -const AsExpressionBase = createBase$D(Expression); +const createBase$E = (ctor) => TypedNode(ExpressionedNode(ctor)); +const AsExpressionBase = createBase$E(Expression); class AsExpression extends AsExpressionBase { } @@ -10671,8 +10671,8 @@ const AwaitExpressionBase = UnaryExpressionedNode(UnaryExpression); class AwaitExpression extends AwaitExpressionBase { } -const createBase$C = (ctor) => TypeArgumentedNode(ArgumentedNode(QuestionDotTokenableNode(LeftHandSideExpressionedNode(ctor)))); -const CallExpressionBase = createBase$C(LeftHandSideExpression); +const createBase$D = (ctor) => TypeArgumentedNode(ArgumentedNode(QuestionDotTokenableNode(LeftHandSideExpressionedNode(ctor)))); +const CallExpressionBase = createBase$D(LeftHandSideExpression); class CallExpression extends CallExpressionBase { getReturnType() { return this._context.typeChecker.getTypeAtLocation(this); @@ -10709,8 +10709,8 @@ const DeleteExpressionBase = UnaryExpressionedNode(UnaryExpression); class DeleteExpression extends DeleteExpressionBase { } -const createBase$B = (ctor) => QuestionDotTokenableNode(LeftHandSideExpressionedNode(ctor)); -const ElementAccessExpressionBase = createBase$B(MemberExpression); +const createBase$C = (ctor) => QuestionDotTokenableNode(LeftHandSideExpressionedNode(ctor)); +const ElementAccessExpressionBase = createBase$C(MemberExpression); class ElementAccessExpression extends ElementAccessExpressionBase { getArgumentExpression() { return this._getNodeFromCompilerNodeIfExists(this.compilerNode.argumentExpression); @@ -10735,8 +10735,8 @@ class MetaProperty extends MetaPropertyBase { } } -const createBase$A = (ctor) => TypeArgumentedNode(ArgumentedNode(LeftHandSideExpressionedNode(ctor))); -const NewExpressionBase = createBase$A(PrimaryExpression); +const createBase$B = (ctor) => TypeArgumentedNode(ArgumentedNode(LeftHandSideExpressionedNode(ctor))); +const NewExpressionBase = createBase$B(PrimaryExpression); class NewExpression extends NewExpressionBase { } @@ -10905,8 +10905,8 @@ class ObjectLiteralExpression extends ObjectLiteralExpressionBase { } } -const createBase$z = (ctor) => InitializerExpressionGetableNode(QuestionTokenableNode(PropertyNamedNode(ctor))); -const PropertyAssignmentBase = createBase$z(ObjectLiteralElement); +const createBase$A = (ctor) => InitializerExpressionGetableNode(QuestionTokenableNode(PropertyNamedNode(ctor))); +const PropertyAssignmentBase = createBase$A(ObjectLiteralElement); class PropertyAssignment extends PropertyAssignmentBase { removeInitializer() { const initializer = this.getInitializerOrThrow(); @@ -10957,8 +10957,8 @@ class PropertyAssignment extends PropertyAssignmentBase { } } -const createBase$y = (ctor) => InitializerExpressionGetableNode(QuestionTokenableNode(NamedNode(ctor))); -const ShorthandPropertyAssignmentBase = createBase$y(ObjectLiteralElement); +const createBase$z = (ctor) => InitializerExpressionGetableNode(QuestionTokenableNode(NamedNode(ctor))); +const ShorthandPropertyAssignmentBase = createBase$z(ObjectLiteralElement); class ShorthandPropertyAssignment extends ShorthandPropertyAssignmentBase { hasObjectAssignmentInitializer() { return this.compilerNode.objectAssignmentInitializer != null; @@ -11059,13 +11059,13 @@ class PrefixUnaryExpression extends PrefixUnaryExpressionBase { } } -const createBase$x = (ctor) => NamedNode(QuestionDotTokenableNode(LeftHandSideExpressionedNode(ctor))); -const PropertyAccessExpressionBase = createBase$x(MemberExpression); +const createBase$y = (ctor) => NamedNode(QuestionDotTokenableNode(LeftHandSideExpressionedNode(ctor))); +const PropertyAccessExpressionBase = createBase$y(MemberExpression); class PropertyAccessExpression extends PropertyAccessExpressionBase { } -const createBase$w = (ctor) => TypedNode(ExpressionedNode(ctor)); -const SatisfiesExpressionBase = createBase$w(Expression); +const createBase$x = (ctor) => TypedNode(ExpressionedNode(ctor)); +const SatisfiesExpressionBase = createBase$x(Expression); class SatisfiesExpression extends SatisfiesExpressionBase { } @@ -11089,8 +11089,8 @@ const ThisExpressionBase = PrimaryExpression; class ThisExpression extends ThisExpressionBase { } -const createBase$v = (ctor) => TypedNode(UnaryExpressionedNode(ctor)); -const TypeAssertionBase = createBase$v(UnaryExpression); +const createBase$w = (ctor) => TypedNode(UnaryExpressionedNode(ctor)); +const TypeAssertionBase = createBase$w(UnaryExpression); class TypeAssertion extends TypeAssertionBase { } @@ -11495,8 +11495,8 @@ function addBodyIfNotExists(node) { node.addBody(); } -const createBase$u = (ctor) => TextInsertableNode(StatementedNode(ctor)); -const BlockBase = createBase$u(Statement); +const createBase$v = (ctor) => TextInsertableNode(StatementedNode(ctor)); +const BlockBase = createBase$v(Statement); class Block extends BlockBase { } @@ -11527,8 +11527,8 @@ class CaseBlock extends CaseBlockBase { } } -const createBase$t = (ctor) => JSDocableNode(ExpressionedNode(TextInsertableNode(StatementedNode(ctor)))); -const CaseClauseBase = createBase$t(Node); +const createBase$u = (ctor) => JSDocableNode(ExpressionedNode(TextInsertableNode(StatementedNode(ctor)))); +const CaseClauseBase = createBase$u(Node); class CaseClause extends CaseClauseBase { remove() { removeClausedNodeChild(this); @@ -11566,8 +11566,8 @@ const DebuggerStatementBase = Statement; class DebuggerStatement extends DebuggerStatementBase { } -const createBase$s = (ctor) => TextInsertableNode(StatementedNode(ctor)); -const DefaultClauseBase = createBase$s(Node); +const createBase$t = (ctor) => TextInsertableNode(StatementedNode(ctor)); +const DefaultClauseBase = createBase$t(Node); class DefaultClause extends DefaultClauseBase { remove() { removeClausedNodeChild(this); @@ -12636,8 +12636,8 @@ function getErrorWhenNamespaceImportsExist() { return new errors.InvalidOperationError("Cannot add a named import to an import declaration that has a namespace import."); } -const createBase$r = (ctor) => ExportableNode(ModifierableNode(JSDocableNode(NamedNode(ctor)))); -const ImportEqualsDeclarationBase = createBase$r(Statement); +const createBase$s = (ctor) => ExportableNode(ModifierableNode(JSDocableNode(NamedNode(ctor)))); +const ImportEqualsDeclarationBase = createBase$s(Statement); class ImportEqualsDeclaration extends ImportEqualsDeclarationBase { isTypeOnly() { var _a; @@ -12844,8 +12844,8 @@ var ModuleDeclarationKind; ModuleDeclarationKind["Global"] = "global"; })(ModuleDeclarationKind || (ModuleDeclarationKind = {})); -const createBase$q = (ctor) => ModuledNode(UnwrappableNode(TextInsertableNode(BodyableNode(ModuleChildableNode(StatementedNode(JSDocableNode(AmbientableNode(ExportableNode(ModifierableNode(ModuleNamedNode(ctor))))))))))); -const ModuleDeclarationBase = createBase$q(Statement); +const createBase$r = (ctor) => ModuledNode(UnwrappableNode(TextInsertableNode(BodyableNode(ModuleChildableNode(StatementedNode(JSDocableNode(AmbientableNode(ExportableNode(ModifierableNode(ModuleNamedNode(ctor))))))))))); +const ModuleDeclarationBase = createBase$r(Statement); class ModuleDeclaration extends ModuleDeclarationBase { getName() { const nameNodesOrStringLit = this.getNameNodes(); @@ -13573,8 +13573,8 @@ function getReferencingNodeFromStringLiteral(literal) { return parent; } -const createBase$p = (ctor) => ModuleChildableNode(JSDocableNode(AmbientableNode(ExportableNode(ModifierableNode(ctor))))); -const VariableStatementBase = createBase$p(Statement); +const createBase$q = (ctor) => ModuleChildableNode(JSDocableNode(AmbientableNode(ExportableNode(ModifierableNode(ctor))))); +const VariableStatementBase = createBase$q(Statement); class VariableStatement extends VariableStatementBase { getDeclarationList() { return this._getNodeFromCompilerNode(this.compilerNode.declarationList); @@ -13638,8 +13638,8 @@ function FunctionLikeDeclaration(Base) { return JSDocableNode(TypeParameteredNode(SignaturedDeclaration(StatementedNode(ModifierableNode(Base))))); } -const createBase$o = (ctor) => TextInsertableNode(BodiedNode(AsyncableNode(FunctionLikeDeclaration(ctor)))); -const ArrowFunctionBase = createBase$o(Expression); +const createBase$p = (ctor) => TextInsertableNode(BodiedNode(AsyncableNode(FunctionLikeDeclaration(ctor)))); +const ArrowFunctionBase = createBase$p(Expression); class ArrowFunction extends ArrowFunctionBase { getEqualsGreaterThan() { return this._getNodeFromCompilerNode(this.compilerNode.equalsGreaterThanToken); @@ -13718,8 +13718,8 @@ function insertOverloads(opts) { return getRangeWithoutCommentsFromArray(parentSyntaxList.getChildren(), mainIndex, structures.length, opts.expectedSyntaxKind); } -const createBase$n = (ctor) => UnwrappableNode(TextInsertableNode(OverloadableNode(BodyableNode(AsyncableNode(GeneratorableNode(AmbientableNode(ExportableNode(FunctionLikeDeclaration(ModuleChildableNode(NameableNode(ctor))))))))))); -const FunctionDeclarationBase = createBase$n(Statement); +const createBase$o = (ctor) => UnwrappableNode(TextInsertableNode(OverloadableNode(BodyableNode(AsyncableNode(GeneratorableNode(AmbientableNode(ExportableNode(FunctionLikeDeclaration(ModuleChildableNode(NameableNode(ctor))))))))))); +const FunctionDeclarationBase = createBase$o(Statement); const createOverloadBase$2 = (ctor) => UnwrappableNode(TextInsertableNode(AsyncableNode(GeneratorableNode(SignaturedDeclaration(AmbientableNode(ModuleChildableNode(JSDocableNode(TypeParameteredNode(ExportableNode(ModifierableNode(ctor))))))))))); const FunctionDeclarationOverloadBase = createOverloadBase$2(Statement); class FunctionDeclaration extends FunctionDeclarationBase { @@ -13785,13 +13785,13 @@ class FunctionDeclaration extends FunctionDeclarationBase { } } -const createBase$m = (ctor) => JSDocableNode(TextInsertableNode(BodiedNode(AsyncableNode(GeneratorableNode(StatementedNode(TypeParameteredNode(SignaturedDeclaration(ModifierableNode(NameableNode(ctor)))))))))); -const FunctionExpressionBase = createBase$m(PrimaryExpression); +const createBase$n = (ctor) => JSDocableNode(TextInsertableNode(BodiedNode(AsyncableNode(GeneratorableNode(StatementedNode(TypeParameteredNode(SignaturedDeclaration(ModifierableNode(NameableNode(ctor)))))))))); +const FunctionExpressionBase = createBase$n(PrimaryExpression); class FunctionExpression extends FunctionExpressionBase { } -const createBase$l = (ctor) => OverrideableNode(QuestionTokenableNode(DecoratableNode(ScopeableNode(ReadonlyableNode(ModifierableNode(DotDotDotTokenableNode(TypedNode(InitializerExpressionableNode(BindingNamedNode(ctor)))))))))); -const ParameterDeclarationBase = createBase$l(Node); +const createBase$m = (ctor) => OverrideableNode(QuestionTokenableNode(DecoratableNode(ScopeableNode(ReadonlyableNode(ModifierableNode(DotDotDotTokenableNode(TypedNode(InitializerExpressionableNode(BindingNamedNode(ctor)))))))))); +const ParameterDeclarationBase = createBase$m(Node); class ParameterDeclaration extends ParameterDeclarationBase { isRestParameter() { return this.compilerNode.dotDotDotToken != null; @@ -13887,8 +13887,8 @@ class ClassElement extends Node { } } -const createBase$k = (ctor) => ChildOrderableNode(TextInsertableNode(OverrideableNode(OverloadableNode(BodyableNode(DecoratableNode(AbstractableNode(ScopedNode(QuestionTokenableNode(StaticableNode(AsyncableNode(GeneratorableNode(FunctionLikeDeclaration(PropertyNamedNode(ctor)))))))))))))); -const MethodDeclarationBase = createBase$k(ClassElement); +const createBase$l = (ctor) => ChildOrderableNode(TextInsertableNode(OverrideableNode(OverloadableNode(BodyableNode(DecoratableNode(AbstractableNode(ScopedNode(QuestionTokenableNode(StaticableNode(AsyncableNode(GeneratorableNode(FunctionLikeDeclaration(PropertyNamedNode(ctor)))))))))))))); +const MethodDeclarationBase = createBase$l(ClassElement); const createOverloadBase$1 = (ctor) => JSDocableNode(ChildOrderableNode(TextInsertableNode(OverrideableNode(ScopedNode(TypeParameteredNode(AbstractableNode(QuestionTokenableNode(StaticableNode(AsyncableNode(ModifierableNode(GeneratorableNode(SignaturedDeclaration(ctor))))))))))))); const MethodDeclarationOverloadBase = createOverloadBase$1(ClassElement); class MethodDeclaration extends MethodDeclarationBase { @@ -14446,8 +14446,8 @@ function insertChildren(classDeclaration, opts) { }); } -const createBase$j = (ctor) => ModuleChildableNode(AmbientableNode(ExportableNode(ClassLikeDeclarationBase(ctor)))); -const ClassDeclarationBase = createBase$j(Statement); +const createBase$k = (ctor) => ModuleChildableNode(AmbientableNode(ExportableNode(ClassLikeDeclarationBase(ctor)))); +const ClassDeclarationBase = createBase$k(Statement); class ClassDeclaration extends ClassDeclarationBase { set(structure) { callBaseSet(ClassDeclarationBase.prototype, this, structure); @@ -14606,8 +14606,8 @@ const ClassExpressionBase = ClassLikeDeclarationBase(PrimaryExpression); class ClassExpression extends ClassExpressionBase { } -const createBase$i = (ctor) => ChildOrderableNode(TextInsertableNode(StatementedNode(JSDocableNode(BodiedNode(ctor))))); -const ClassStaticBlockDeclarationBase = createBase$i(ClassElement); +const createBase$j = (ctor) => ChildOrderableNode(TextInsertableNode(StatementedNode(JSDocableNode(BodiedNode(ctor))))); +const ClassStaticBlockDeclarationBase = createBase$j(ClassElement); class ClassStaticBlockDeclaration extends ClassStaticBlockDeclarationBase { getName() { return "static"; @@ -14629,8 +14629,8 @@ class ClassStaticBlockDeclaration extends ClassStaticBlockDeclarationBase { class CommentClassElement extends ClassElement { } -const createBase$h = (ctor) => ReferenceFindableNode(ChildOrderableNode(TextInsertableNode(OverloadableNode(ScopedNode(FunctionLikeDeclaration(BodyableNode(ctor))))))); -const ConstructorDeclarationBase = createBase$h(ClassElement); +const createBase$i = (ctor) => ReferenceFindableNode(ChildOrderableNode(TextInsertableNode(OverloadableNode(ScopedNode(FunctionLikeDeclaration(BodyableNode(ctor))))))); +const ConstructorDeclarationBase = createBase$i(ClassElement); const createOverloadBase = (ctor) => TypeParameteredNode(JSDocableNode(ChildOrderableNode(TextInsertableNode(ScopedNode(ModifierableNode(SignaturedDeclaration(ctor))))))); const ConstructorDeclarationOverloadBase = createOverloadBase(ClassElement); class ConstructorDeclaration extends ConstructorDeclarationBase { @@ -14692,8 +14692,8 @@ class ConstructorDeclaration extends ConstructorDeclarationBase { } } -const createBase$g = (ctor) => ChildOrderableNode(TextInsertableNode(DecoratableNode(AbstractableNode(ScopedNode(StaticableNode(FunctionLikeDeclaration(BodyableNode(PropertyNamedNode(ctor))))))))); -const GetAccessorDeclarationBase = createBase$g(ClassElement); +const createBase$h = (ctor) => ChildOrderableNode(TextInsertableNode(DecoratableNode(AbstractableNode(ScopedNode(StaticableNode(FunctionLikeDeclaration(BodyableNode(PropertyNamedNode(ctor))))))))); +const GetAccessorDeclarationBase = createBase$h(ClassElement); class GetAccessorDeclaration extends GetAccessorDeclarationBase { set(structure) { callBaseSet(GetAccessorDeclarationBase.prototype, this, structure); @@ -14718,8 +14718,8 @@ class GetAccessorDeclaration extends GetAccessorDeclarationBase { } } -const createBase$f = (ctor) => ChildOrderableNode(OverrideableNode(AmbientableNode(DecoratableNode(AbstractableNode(ScopedNode(StaticableNode(JSDocableNode(ReadonlyableNode(ExclamationTokenableNode(QuestionTokenableNode(InitializerExpressionableNode(TypedNode(PropertyNamedNode(ModifierableNode(ctor))))))))))))))); -const PropertyDeclarationBase = createBase$f(ClassElement); +const createBase$g = (ctor) => ChildOrderableNode(OverrideableNode(AmbientableNode(DecoratableNode(AbstractableNode(ScopedNode(StaticableNode(JSDocableNode(ReadonlyableNode(ExclamationTokenableNode(QuestionTokenableNode(InitializerExpressionableNode(TypedNode(PropertyNamedNode(ModifierableNode(ctor))))))))))))))); +const PropertyDeclarationBase = createBase$g(ClassElement); class PropertyDeclaration extends PropertyDeclarationBase { hasAccessorKeyword() { return this.hasModifier(SyntaxKind.AccessorKeyword); @@ -14751,8 +14751,8 @@ class PropertyDeclaration extends PropertyDeclarationBase { } } -const createBase$e = (ctor) => ChildOrderableNode(TextInsertableNode(DecoratableNode(AbstractableNode(ScopedNode(StaticableNode(FunctionLikeDeclaration(BodyableNode(PropertyNamedNode(ctor))))))))); -const SetAccessorDeclarationBase = createBase$e(ClassElement); +const createBase$f = (ctor) => ChildOrderableNode(TextInsertableNode(DecoratableNode(AbstractableNode(ScopedNode(StaticableNode(FunctionLikeDeclaration(BodyableNode(PropertyNamedNode(ctor))))))))); +const SetAccessorDeclarationBase = createBase$f(ClassElement); class SetAccessorDeclaration extends SetAccessorDeclarationBase { set(structure) { callBaseSet(SetAccessorDeclarationBase.prototype, this, structure); @@ -15323,8 +15323,8 @@ class MappedTypeNode extends TypeNode { } } -const createBase$d = (ctor) => TypedNode(QuestionTokenableNode(DotDotDotTokenableNode(JSDocableNode(NamedNode(ctor))))); -const NamedTupleMemberBase = createBase$d(TypeNode); +const createBase$e = (ctor) => TypedNode(QuestionTokenableNode(DotDotDotTokenableNode(JSDocableNode(NamedNode(ctor))))); +const NamedTupleMemberBase = createBase$e(TypeNode); class NamedTupleMember extends NamedTupleMemberBase { getTypeNode() { return super.getTypeNode(); @@ -15374,8 +15374,8 @@ class TupleTypeNode extends TypeNode { } } -const createBase$c = (ctor) => TypeParameteredNode(TypedNode(JSDocableNode(AmbientableNode(ExportableNode(ModifierableNode(NamedNode(ctor))))))); -const TypeAliasDeclarationBase = createBase$c(Statement); +const createBase$d = (ctor) => TypeParameteredNode(TypedNode(JSDocableNode(AmbientableNode(ExportableNode(ModifierableNode(NamedNode(ctor))))))); +const TypeAliasDeclarationBase = createBase$d(Statement); class TypeAliasDeclaration extends TypeAliasDeclarationBase { set(structure) { callBaseSet(TypeAliasDeclarationBase.prototype, this, structure); @@ -15409,7 +15409,8 @@ var TypeParameterVariance; TypeParameterVariance[TypeParameterVariance["Out"] = 2] = "Out"; TypeParameterVariance[TypeParameterVariance["InOut"] = 3] = "InOut"; })(TypeParameterVariance || (TypeParameterVariance = {})); -const TypeParameterDeclarationBase = ModifierableNode(NamedNode(Node)); +const createBase$c = (ctor) => ModifierableNode(NamedNode(ctor)); +const TypeParameterDeclarationBase = createBase$c(Node); class TypeParameterDeclaration extends TypeParameterDeclarationBase { getConstraint() { return this._getNodeFromCompilerNodeIfExists(this.compilerNode.constraint); diff --git a/packages/bootstrap/lib/ts-morph-bootstrap.d.ts b/packages/bootstrap/lib/ts-morph-bootstrap.d.ts index 15fb69162..c84a7a0e6 100644 --- a/packages/bootstrap/lib/ts-morph-bootstrap.d.ts +++ b/packages/bootstrap/lib/ts-morph-bootstrap.d.ts @@ -138,7 +138,7 @@ export interface ResolutionHost { * Factory used to create a resolution host. * @remarks The compiler options are retrieved via a function in order to get the project's current compiler options. */ -export declare type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; +export type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; /** Collection of reusable resolution hosts. */ export declare const ResolutionHosts: { diff --git a/packages/common/lib/ts-morph-common.d.ts b/packages/common/lib/ts-morph-common.d.ts index ec4513703..dc5897566 100644 --- a/packages/common/lib/ts-morph-common.d.ts +++ b/packages/common/lib/ts-morph-common.d.ts @@ -120,7 +120,7 @@ export declare class LocaleStringComparer implements Comparer { /** Static instance for reuse. */ static readonly instance: LocaleStringComparer; /** @inheritdoc */ - compareTo(a: string, b: string): 1 | -1 | 0; + compareTo(a: string, b: string): 0 | 1 | -1; } /** @@ -281,7 +281,7 @@ export interface ResolutionHost { * Factory used to create a resolution host. * @remarks The compiler options are retrieved via a function in order to get the project's current compiler options. */ -export declare type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; +export type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; /** Collection of reusable resolution hosts. */ export declare const ResolutionHosts: { @@ -749,7 +749,7 @@ export declare class RealFileSystemHost implements FileSystemHost { } /** Nominal type to denote a file path that has been standardized. */ -export declare type StandardizedFilePath = string & { +export type StandardizedFilePath = string & { _standardizedFilePathBrand: undefined; }; @@ -1035,7 +1035,7 @@ export declare function deepClone(objToClone: T): T; /** * Event container subscription type */ -export declare type EventContainerSubscription = (arg: EventArgType) => void; +export type EventContainerSubscription = (arg: EventArgType) => void; /** * Event container for event subscriptions. diff --git a/packages/common/src/errors.ts b/packages/common/src/errors.ts index 0a65e4a27..0cc0dd930 100644 --- a/packages/common/src/errors.ts +++ b/packages/common/src/errors.ts @@ -180,7 +180,7 @@ export namespace errors { * @param value - Value to check. * @param errorMessage - Error message to throw when not defined. */ - export function throwIfNullOrUndefined(value: T | undefined, errorMessage: string | (() => string), node?: Node) { + export function throwIfNullOrUndefined(value: T | undefined, errorMessage: string | (() => string), node?: Node): T { if (value == null) throw new InvalidOperationError(typeof errorMessage === "string" ? errorMessage : errorMessage(), node); return value; diff --git a/packages/scripts/deps.ts b/packages/scripts/deps.ts index 539a7d7d7..8ed05c9b9 100644 --- a/packages/scripts/deps.ts +++ b/packages/scripts/deps.ts @@ -1,2 +1,2 @@ export * as path from "https://deno.land/std@0.140.0/path/mod.ts"; -export * as tsMorph from "https://deno.land/x/ts_morph@14.0.0/mod.ts"; +export * as tsMorph from "https://deno.land/x/ts_morph@17.0.0/mod.ts"; diff --git a/packages/ts-morph/lib/ts-morph.d.ts b/packages/ts-morph/lib/ts-morph.d.ts index cb205b26f..fee144cfd 100644 --- a/packages/ts-morph/lib/ts-morph.d.ts +++ b/packages/ts-morph/lib/ts-morph.d.ts @@ -132,7 +132,7 @@ export interface ResolutionHost { * Factory used to create a resolution host. * @remarks The compiler options are retrieved via a function in order to get the project's current compiler options. */ -export declare type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; +export type ResolutionHostFactory = (moduleResolutionHost: ts.ModuleResolutionHost, getCompilerOptions: () => ts.CompilerOptions) => ResolutionHost; /** Collection of reusable resolution hosts. */ export declare const ResolutionHosts: { deno: ResolutionHostFactory; @@ -757,9 +757,9 @@ export interface SourceFileCreateOptions { scriptKind?: ScriptKind; } -export declare type Constructor = new (...args: any[]) => T; -export declare type InstanceOf = T extends new (...args: any[]) => infer U ? U : never; -export declare type WriterFunction = (writer: CodeBlockWriter) => void; +export type Constructor = new (...args: any[]) => T; +export type InstanceOf = T extends new (...args: any[]) => infer U ? U : never; +export type WriterFunction = (writer: CodeBlockWriter) => void; /** * Creates a wrapped node from a compiler node. * @param node - Node to create a wrapped node from. @@ -822,7 +822,7 @@ export interface PrintNodeOptions { scriptKind?: ScriptKind; } -export declare type SourceFileReferencingNodes = ImportDeclaration | ExportDeclaration | ImportEqualsDeclaration | CallExpression; +export type SourceFileReferencingNodes = ImportDeclaration | ExportDeclaration | ImportEqualsDeclaration | CallExpression; export interface CompilerOptionsFromTsConfigOptions { encoding?: string; @@ -866,44 +866,44 @@ export declare class Writers { static returnStatement(value: WriterFunctionOrValue): WriterFunction; } -export declare type WriterFunctionOrValue = string | number | WriterFunction; -export declare type AssertionKey = Identifier | StringLiteral; -export declare type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier; -export declare type ModuleName = Identifier | StringLiteral; -export declare type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; -export declare type ArrayBindingElement = BindingElement | OmittedExpression; -export declare type BindingName = Identifier | BindingPattern; -export declare type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; -export declare type BooleanLiteral = TrueLiteral | FalseLiteral; -export declare type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement; -export declare type EntityNameExpression = Identifier | PropertyAccessExpression; -export declare type DeclarationName = Identifier | PrivateIdentifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression; -export declare type EntityName = Identifier | QualifiedName; -export declare type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; -export declare type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; -export declare type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; -export declare type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; +export type WriterFunctionOrValue = string | number | WriterFunction; +export type AssertionKey = Identifier | StringLiteral; +export type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | PrivateIdentifier; +export type ModuleName = Identifier | StringLiteral; +export type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; +export type ArrayBindingElement = BindingElement | OmittedExpression; +export type BindingName = Identifier | BindingPattern; +export type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; +export type BooleanLiteral = TrueLiteral | FalseLiteral; +export type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement; +export type EntityNameExpression = Identifier | PropertyAccessExpression; +export type DeclarationName = Identifier | PrivateIdentifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | ElementAccessExpression | BindingPattern | EntityNameExpression; +export type EntityName = Identifier | QualifiedName; +export type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; +export type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; +export type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; +export type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; export interface JsxTagNamePropertyAccess extends PropertyAccessExpression { getExpression(): JsxTagNameExpression; } -export declare type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; -export declare type CaseOrDefaultClause = CaseClause | DefaultClause; -export declare type ModuleReference = EntityName | ExternalModuleReference; -export declare type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; -export declare type TypeElementTypes = PropertySignature | MethodSignature | ConstructSignatureDeclaration | CallSignatureDeclaration | IndexSignatureDeclaration; -export declare type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; +export type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; +export type CaseOrDefaultClause = CaseClause | DefaultClause; +export type ModuleReference = EntityName | ExternalModuleReference; +export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; +export type TypeElementTypes = PropertySignature | MethodSignature | ConstructSignatureDeclaration | CallSignatureDeclaration | IndexSignatureDeclaration; +export type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; /** * Local target declarations. * @remarks This may be missing some types. Please open an issue if this returns a type not listed here. */ -export declare type LocalTargetDeclarations = SourceFile | ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | ExportAssignment; +export type LocalTargetDeclarations = SourceFile | ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | ExportAssignment; /** * Declarations that can be exported from a module. * @remarks This may be missing some types. Please open an issue if this returns a type not listed here. */ -export declare type ExportedDeclarations = ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | Expression | SourceFile; +export type ExportedDeclarations = ClassDeclaration | InterfaceDeclaration | EnumDeclaration | FunctionDeclaration | VariableDeclaration | TypeAliasDeclaration | ModuleDeclaration | Expression | SourceFile; export declare function AmbientableNode>(Base: T): Constructor & T; export interface AmbientableNode { @@ -922,7 +922,7 @@ export interface AmbientableNode { setHasDeclareKeyword(value?: boolean): this; } -declare type AmbientableNodeExtensionType = Node & ModifierableNode; +type AmbientableNodeExtensionType = Node & ModifierableNode; export declare function ArgumentedNode>(Base: T): Constructor & T; export interface ArgumentedNode { @@ -962,7 +962,7 @@ export interface ArgumentedNode { removeArgument(index: number): this; } -declare type ArgumentedNodeExtensionType = Node; }>; export declare function AsyncableNode>(Base: T): Constructor & T; @@ -981,7 +981,7 @@ export interface AsyncableNode { setIsAsync(value: boolean): this; } -declare type AsyncableNodeExtensionType = Node & ModifierableNode; +type AsyncableNodeExtensionType = Node & ModifierableNode; export declare function AwaitableNode>(Base: T): Constructor & T; export interface AwaitableNode { @@ -998,7 +998,7 @@ export interface AwaitableNode { setIsAwaited(value: boolean): this; } -declare type AwaitableNodeExtensionType = Node; export declare function BodiedNode>(Base: T): Constructor & T; @@ -1015,7 +1015,7 @@ export interface BodiedNode { getBodyText(): string; } -declare type BodiedNodeExtensionType = Node; export declare function BodyableNode>(Base: T): Constructor & T; @@ -1040,7 +1040,7 @@ export interface BodyableNode { removeBody(): this; } -declare type BodyableNodeExtensionType = Node; export declare function ChildOrderableNode>(Base: T): Constructor & T; @@ -1050,7 +1050,7 @@ export interface ChildOrderableNode { setOrder(order: number): this; } -declare type ChildOrderableNodeExtensionType = Node; +type ChildOrderableNodeExtensionType = Node; export declare function DecoratableNode>(Base: T): Constructor & T; export interface DecoratableNode { @@ -1100,7 +1100,7 @@ export interface DecoratableNode { insertDecorators(index: number, structures: ReadonlyArray>): Decorator[]; } -declare type DecoratableNodeExtensionType = Node & ModifierableNode; +type DecoratableNodeExtensionType = Node & ModifierableNode; export declare function DotDotDotTokenableNode>(Base: T): Constructor & T; export interface DotDotDotTokenableNode { @@ -1110,7 +1110,7 @@ export interface DotDotDotTokenableNode { getDotDotDotTokenOrThrow(message?: string | (() => string)): Node; } -declare type DotDotDotTokenableNodeExtensionType = Node; export declare function ExclamationTokenableNode>(Base: T): Constructor & T; @@ -1129,7 +1129,7 @@ export interface ExclamationTokenableNode { setHasExclamationToken(value: boolean): this; } -declare type ExclamationTokenableNodeExtensionType = Node; export declare function ExportableNode>(Base: T): Constructor & T; @@ -1149,7 +1149,7 @@ export interface ExportableNode extends ExportGetableNode { setIsExported(value: boolean): this; } -declare type ExportableNodeExtensionType = Node & ModifierableNode; +type ExportableNodeExtensionType = Node & ModifierableNode; export declare function ExportGetableNode>(Base: T): Constructor & T; export interface ExportGetableNode { @@ -1173,7 +1173,7 @@ export interface ExportGetableNode { isNamedExport(): boolean; } -declare type ExportGetableNodeExtensionType = Node; +type ExportGetableNodeExtensionType = Node; export declare function ExtendsClauseableNode>(Base: T): Constructor & T; export interface ExtendsClauseableNode { @@ -1211,7 +1211,7 @@ export interface ExtendsClauseableNode { removeExtends(extendsNode: ExpressionWithTypeArguments): this; } -declare type ExtendsClauseableNodeExtensionType = Node & HeritageClauseableNode; +type ExtendsClauseableNodeExtensionType = Node & HeritageClauseableNode; export declare function GeneratorableNode>(Base: T): Constructor & T; export interface GeneratorableNode { @@ -1228,7 +1228,7 @@ export interface GeneratorableNode { setIsGenerator(value: boolean): this; } -declare type GeneratorableNodeExtensionType = Node; export declare function HeritageClauseableNode>(Base: T): Constructor & T; @@ -1248,7 +1248,7 @@ export interface HeritageClauseableNode { getHeritageClauseByKindOrThrow(kind: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword): HeritageClause; } -declare type HeritageClauseableNodeExtensionType = Node; }>; export declare function ImplementsClauseableNode>(Base: T): Constructor & T; @@ -1288,7 +1288,7 @@ export interface ImplementsClauseableNode { removeImplements(implementsNode: ExpressionWithTypeArguments): this; } -declare type ImplementsClauseableNodeExtensionType = Node & HeritageClauseableNode; +type ImplementsClauseableNodeExtensionType = Node & HeritageClauseableNode; export declare function InitializerExpressionableNode>(Base: T): Constructor & T; export interface InitializerExpressionableNode extends InitializerExpressionGetableNode { @@ -1301,7 +1301,7 @@ export interface InitializerExpressionableNode extends InitializerExpressionGeta setInitializer(textOrWriterFunction: string | WriterFunction): this; } -declare type InitializerExpressionableNodeExtensionType = Node; export declare function InitializerExpressionGetableNode>(Base: T): Constructor & T; @@ -1319,7 +1319,7 @@ export interface InitializerExpressionGetableNode { getInitializerOrThrow(message?: string | (() => string)): Expression; } -declare type InitializerExpressionGetableNodeExtensionType = Node; export declare function JSDocableNode>(Base: T): Constructor & T; @@ -1351,7 +1351,7 @@ export interface JSDocableNode { insertJsDocs(index: number, structures: ReadonlyArray | string | WriterFunction>): JSDoc[]; } -declare type JSDocableNodeExtensionType = Node; }>; export declare function LiteralLikeNode>(Base: T): Constructor & T; @@ -1365,7 +1365,7 @@ export interface LiteralLikeNode { hasExtendedUnicodeEscape(): boolean; } -declare type LiteralLikeNodeExtensionType = Node; +type LiteralLikeNodeExtensionType = Node; export declare function ModifierableNode>(Base: T): Constructor & T; export interface ModifierableNode { @@ -1399,8 +1399,8 @@ export interface ModifierableNode { toggleModifier(text: ModifierTexts, value?: boolean): this; } -declare type ModifierableNodeExtensionType = Node; -export declare type ModifierTexts = "export" | "default" | "declare" | "abstract" | "public" | "protected" | "private" | "readonly" | "static" | "async" | "const" | "override" | "in" | "out" | "accessor"; +type ModifierableNodeExtensionType = Node; +export type ModifierTexts = "export" | "default" | "declare" | "abstract" | "public" | "protected" | "private" | "readonly" | "static" | "async" | "const" | "override" | "in" | "out" | "accessor"; export declare function ModuledNode>(Base: T): Constructor & T; export interface ModuledNode { @@ -1541,34 +1541,34 @@ export interface ModuledNode { removeDefaultExport(defaultExportSymbol?: Symbol | undefined): this; } -declare type ModuledNodeExtensionType = Node & StatementedNode; +type ModuledNodeExtensionType = Node & StatementedNode; export declare function AssertionKeyNamedNode>(Base: T): Constructor & T; export interface AssertionKeyNamedNode extends AssertionKeyNamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type AssertionKeyNamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type AssertionKeyNamedNodeSpecific = NamedNodeSpecificBase; +type AssertionKeyNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type AssertionKeyNamedNodeSpecific = NamedNodeSpecificBase; export declare function BindingNamedNode>(Base: T): Constructor & T; export interface BindingNamedNode extends BindingNamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type BindingNamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type BindingNamedNodeSpecific = NamedNodeSpecificBase; +type BindingNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type BindingNamedNodeSpecific = NamedNodeSpecificBase; export declare function ModuleNamedNode>(Base: T): Constructor & T; export interface ModuleNamedNode extends ModuleNamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type ModuleNamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type ModuleNamedNodeSpecific = NamedNodeSpecificBase; +type ModuleNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type ModuleNamedNodeSpecific = NamedNodeSpecificBase; export declare function NameableNode>(Base: T): Constructor & T; export interface NameableNode extends NameableNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type NameableNodeExtensionType = Node; @@ -1590,8 +1590,8 @@ export declare function NamedNode> export interface NamedNode extends NamedNodeSpecific, ReferenceFindableNode, RenameableNode { } -declare type NamedNodeExtensionType = NamedNodeBaseExtensionType; -export declare type NamedNodeSpecific = NamedNodeSpecificBase; +type NamedNodeExtensionType = NamedNodeBaseExtensionType; +export type NamedNodeSpecific = NamedNodeSpecificBase; export declare function NamedNodeBase>>(Base: U): Constructor>> & U; export interface NamedNodeSpecificBase { @@ -1601,7 +1601,7 @@ export interface NamedNodeSpecificBase { getName(): string; } -declare type NamedNodeBaseExtensionType = Node = Node; export declare function PropertyNamedNode>(Base: T): Constructor & T; @@ -1609,8 +1609,8 @@ export declare function PropertyNamedNode; -export declare type PropertyNamedNodeSpecific = NamedNodeSpecificBase; +type PropertyNamedNodeExtensionType = NamedNodeBaseExtensionType; +export type PropertyNamedNodeSpecific = NamedNodeSpecificBase; export declare function ReferenceFindableNode>(Base: T): Constructor & T; export interface ReferenceFindableNode { @@ -1620,7 +1620,7 @@ export interface ReferenceFindableNode { findReferencesAsNodes(): Node[]; } -declare type ReferenceFindableNodeExtensionType = Node; export declare function RenameableNode>(Base: T): Constructor & T; @@ -1634,7 +1634,7 @@ export interface RenameableNode { rename(newName: string, options?: RenameOptions): this; } -declare type RenameableNodeExtensionType = Node; +type RenameableNodeExtensionType = Node; export declare function OverrideableNode>(Base: T): Constructor & T; export interface OverrideableNode { @@ -1651,7 +1651,7 @@ export interface OverrideableNode { setHasOverrideKeyword(value: boolean): this; } -declare type OverrideableNodeExtensionType = Node & ModifierableNode; +type OverrideableNodeExtensionType = Node & ModifierableNode; export declare function ParameteredNode>(Base: T): Constructor & T; export interface ParameteredNode { @@ -1701,7 +1701,7 @@ export interface ParameteredNode { insertParameter(index: number, structure: OptionalKind): ParameterDeclaration; } -declare type ParameteredNodeExtensionType = Node; }>; export declare function QuestionDotTokenableNode>(Base: T): Constructor & T; @@ -1720,7 +1720,7 @@ export interface QuestionDotTokenableNode { setHasQuestionDotToken(value: boolean): this; } -declare type QuestionDotTokenableNodeExtensionType = Node; export declare function QuestionTokenableNode>(Base: T): Constructor & T; @@ -1739,7 +1739,7 @@ export interface QuestionTokenableNode { setHasQuestionToken(value: boolean): this; } -declare type QuestionTokenableNodeExtensionType = Node; export declare function ReadonlyableNode>(Base: T): Constructor & T; @@ -1758,7 +1758,7 @@ export interface ReadonlyableNode { setIsReadonly(value: boolean): this; } -declare type ReadonlyableNodeExtensionType = Node & ModifierableNode; +type ReadonlyableNodeExtensionType = Node & ModifierableNode; export declare function ReturnTypedNode>(Base: T): Constructor & T; export interface ReturnTypedNode { @@ -1779,7 +1779,7 @@ export interface ReturnTypedNode { getSignature(): Signature; } -declare type ReturnTypedNodeExtensionType = Node; +type ReturnTypedNodeExtensionType = Node; export declare function ScopeableNode>(Base: T): Constructor & T; export interface ScopeableNode { @@ -1796,7 +1796,7 @@ export interface ScopeableNode { hasScopeKeyword(): boolean; } -declare type ScopeableNodeExtensionType = Node & ModifierableNode; +type ScopeableNodeExtensionType = Node & ModifierableNode; export declare function ScopedNode>(Base: T): Constructor & T; export interface ScopedNode { @@ -1811,13 +1811,13 @@ export interface ScopedNode { hasScopeKeyword(): boolean; } -declare type ScopedNodeExtensionType = Node & ModifierableNode; +type ScopedNodeExtensionType = Node & ModifierableNode; export declare function SignaturedDeclaration>(Base: T): Constructor & T; export interface SignaturedDeclaration extends ParameteredNode, ReturnTypedNode { } -declare type SignaturedDeclarationExtensionType = Node; +type SignaturedDeclarationExtensionType = Node; export declare function StaticableNode>(Base: T): Constructor & T; export interface StaticableNode { @@ -1834,7 +1834,7 @@ export interface StaticableNode { setIsStatic(value: boolean): this; } -declare type StaticableNodeExtensionType = Node & ModifierableNode; +type StaticableNodeExtensionType = Node & ModifierableNode; export declare function TextInsertableNode>(Base: T): Constructor & T; export interface TextInsertableNode { @@ -1866,7 +1866,7 @@ export interface TextInsertableNode { removeText(pos: number, end: number): this; } -declare type TextInsertableNodeExtensionType = Node; +type TextInsertableNodeExtensionType = Node; export declare function TypeArgumentedNode>(Base: T): Constructor & T; export interface TypeArgumentedNode { @@ -1906,7 +1906,7 @@ export interface TypeArgumentedNode { removeTypeArgument(index: number): this; } -declare type TypeArgumentedNodeExtensionType = Node; }>; export declare function TypedNode>(Base: T): Constructor & T; @@ -1925,7 +1925,7 @@ export interface TypedNode { removeType(): this; } -declare type TypedNodeExtensionType = Node; export declare function TypeElementMemberedNode>(Base: T): Constructor & T; @@ -2149,7 +2149,7 @@ export interface TypeElementMemberedNode { getMembersWithComments(): (TypeElementTypes | CommentTypeElement)[]; } -declare type TypeElementMemberedNodeExtensionType = Node; }>; export declare function TypeParameteredNode>(Base: T): Constructor & T; @@ -2201,7 +2201,7 @@ export interface TypeParameteredNode { insertTypeParameters(index: number, structures: ReadonlyArray | string>): TypeParameterDeclaration[]; } -declare type TypeParameteredNodeExtensionType = Node; }>; export declare function UnwrappableNode>(Base: T): Constructor & T; @@ -2211,7 +2211,7 @@ export interface UnwrappableNode { unwrap(): void; } -declare type UnwrappableNodeExtensionType = Node; +type UnwrappableNodeExtensionType = Node; export declare class ArrayBindingPattern extends Node { /** Gets the array binding pattern's elements. */ @@ -2268,7 +2268,7 @@ export interface AbstractableNode { setIsAbstract(isAbstract: boolean): this; } -declare type AbstractableNodeExtensionType = Node & ModifierableNode; +type AbstractableNodeExtensionType = Node & ModifierableNode; export declare function ClassLikeDeclarationBase>(Base: T): Constructor & T; export interface ClassLikeDeclarationBase extends NameableNode, TextInsertableNode, ImplementsClauseableNode, HeritageClauseableNode, AbstractableNode, JSDocableNode, TypeParameteredNode, DecoratableNode, ModifierableNode, ClassLikeDeclarationBaseSpecific { @@ -2712,14 +2712,14 @@ interface ClassLikeDeclarationBaseSpecific { getDerivedClasses(): ClassDeclaration[]; } -export declare type ClassPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; -export declare type ClassInstancePropertyTypes = ClassPropertyTypes | ParameterDeclaration; -export declare type ClassInstanceMemberTypes = MethodDeclaration | ClassInstancePropertyTypes; -export declare type ClassStaticPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; -export declare type ClassStaticMemberTypes = MethodDeclaration | ClassStaticBlockDeclaration | ClassStaticPropertyTypes; -export declare type ClassMemberTypes = MethodDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | ClassStaticBlockDeclaration; -declare type ClassLikeDeclarationBaseExtensionType = Node; -declare type ClassLikeDeclarationBaseSpecificExtensionType = Node & HeritageClauseableNode & ModifierableNode & NameableNode; +export type ClassPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; +export type ClassInstancePropertyTypes = ClassPropertyTypes | ParameterDeclaration; +export type ClassInstanceMemberTypes = MethodDeclaration | ClassInstancePropertyTypes; +export type ClassStaticPropertyTypes = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; +export type ClassStaticMemberTypes = MethodDeclaration | ClassStaticBlockDeclaration | ClassStaticPropertyTypes; +export type ClassMemberTypes = MethodDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | ClassStaticBlockDeclaration; +type ClassLikeDeclarationBaseExtensionType = Node; +type ClassLikeDeclarationBaseSpecificExtensionType = Node & HeritageClauseableNode & ModifierableNode & NameableNode; declare const ClassDeclarationBase: Constructor & Constructor & Constructor & Constructor & typeof Statement; export declare class ClassDeclaration extends ClassDeclarationBase { @@ -2986,8 +2986,8 @@ export declare class CompilerCommentObjectLiteralElement extends CompilerComment export declare class CompilerCommentEnumMember extends CompilerCommentNode implements ts.Node { } -export declare type NodePropertyToWrappedType> = NodeType[KeyName] extends ts.NodeArray | undefined ? CompilerNodeToWrappedType[] | undefined : NodeType[KeyName] extends ts.NodeArray ? CompilerNodeToWrappedType[] : NodeType[KeyName] extends ts.Node ? CompilerNodeToWrappedType : NonNullableNodeType extends ts.Node ? CompilerNodeToWrappedType | undefined : NodeType[KeyName]; -export declare type NodeParentType = NodeType extends ts.SourceFile ? undefined : ts.Node extends NodeType ? CompilerNodeToWrappedType | undefined : CompilerNodeToWrappedType; +export type NodePropertyToWrappedType> = NodeType[KeyName] extends ts.NodeArray | undefined ? CompilerNodeToWrappedType[] | undefined : NodeType[KeyName] extends ts.NodeArray ? CompilerNodeToWrappedType[] : NodeType[KeyName] extends ts.Node ? CompilerNodeToWrappedType : NonNullableNodeType extends ts.Node ? CompilerNodeToWrappedType | undefined : NodeType[KeyName]; +export type NodeParentType = NodeType extends ts.SourceFile ? undefined : ts.Node extends NodeType ? CompilerNodeToWrappedType | undefined : CompilerNodeToWrappedType; export declare class Node { /** Gets if the node is an AnyKeyword. */ @@ -4578,7 +4578,7 @@ export interface TransformTraversalControl { visitChildren(): ts.Node; } -export declare type CompilerNodeToWrappedType = T extends ts.ObjectDestructuringAssignment ? ObjectDestructuringAssignment : T extends ts.ArrayDestructuringAssignment ? ArrayDestructuringAssignment : T extends ts.SuperElementAccessExpression ? SuperElementAccessExpression : T extends ts.SuperPropertyAccessExpression ? SuperPropertyAccessExpression : T extends ts.AssignmentExpression ? AssignmentExpression> : T["kind"] extends keyof ImplementedKindToNodeMappings ? ImplementedKindToNodeMappings[T["kind"]] : T extends ts.SyntaxList ? SyntaxList : T extends ts.JSDocTypeExpression ? JSDocTypeExpression : T extends ts.JSDocType ? JSDocType : T extends ts.NodeWithTypeArguments ? NodeWithTypeArguments : T extends ts.TypeNode ? TypeNode : T extends ts.JSDocTag ? JSDocTag : T extends ts.LiteralExpression ? LiteralExpression : T extends ts.PrimaryExpression ? PrimaryExpression : T extends ts.MemberExpression ? MemberExpression : T extends ts.LeftHandSideExpression ? LeftHandSideExpression : T extends ts.UpdateExpression ? UpdateExpression : T extends ts.UnaryExpression ? UnaryExpression : T extends ts.Expression ? Expression : T extends ts.IterationStatement ? IterationStatement : T extends CompilerCommentStatement ? CommentStatement : T extends CompilerCommentClassElement ? CommentClassElement : T extends CompilerCommentTypeElement ? CommentTypeElement : T extends CompilerCommentObjectLiteralElement ? CommentObjectLiteralElement : T extends CompilerCommentEnumMember ? CommentEnumMember : T extends ts.TypeElement ? TypeElement : T extends ts.Statement ? Statement : T extends ts.ClassElement ? ClassElement : T extends ts.ObjectLiteralElement ? ObjectLiteralElement : Node; +export type CompilerNodeToWrappedType = T extends ts.ObjectDestructuringAssignment ? ObjectDestructuringAssignment : T extends ts.ArrayDestructuringAssignment ? ArrayDestructuringAssignment : T extends ts.SuperElementAccessExpression ? SuperElementAccessExpression : T extends ts.SuperPropertyAccessExpression ? SuperPropertyAccessExpression : T extends ts.AssignmentExpression ? AssignmentExpression> : T["kind"] extends keyof ImplementedKindToNodeMappings ? ImplementedKindToNodeMappings[T["kind"]] : T extends ts.SyntaxList ? SyntaxList : T extends ts.JSDocTypeExpression ? JSDocTypeExpression : T extends ts.JSDocType ? JSDocType : T extends ts.NodeWithTypeArguments ? NodeWithTypeArguments : T extends ts.TypeNode ? TypeNode : T extends ts.JSDocTag ? JSDocTag : T extends ts.LiteralExpression ? LiteralExpression : T extends ts.PrimaryExpression ? PrimaryExpression : T extends ts.MemberExpression ? MemberExpression : T extends ts.LeftHandSideExpression ? LeftHandSideExpression : T extends ts.UpdateExpression ? UpdateExpression : T extends ts.UnaryExpression ? UnaryExpression : T extends ts.Expression ? Expression : T extends ts.IterationStatement ? IterationStatement : T extends CompilerCommentStatement ? CommentStatement : T extends CompilerCommentClassElement ? CommentClassElement : T extends CompilerCommentTypeElement ? CommentTypeElement : T extends CompilerCommentObjectLiteralElement ? CommentObjectLiteralElement : T extends CompilerCommentEnumMember ? CommentEnumMember : T extends ts.TypeElement ? TypeElement : T extends ts.Statement ? Statement : T extends ts.ClassElement ? ClassElement : T extends ts.ObjectLiteralElement ? ObjectLiteralElement : Node; declare const DecoratorBase: Constructor & typeof Node; export declare class Decorator extends DecoratorBase { @@ -4698,7 +4698,7 @@ export interface JSDocPropertyLikeTag { isBracketed(): boolean; } -declare type JSDocPropertyLikeTagExtensionType = Node & JSDocTag; +type JSDocPropertyLikeTagExtensionType = Node & JSDocTag; export declare function JSDocTypeExpressionableTag>(Base: T): Constructor & T; export interface JSDocTypeExpressionableTag { @@ -4708,7 +4708,7 @@ export interface JSDocTypeExpressionableTag { getTypeExpressionOrThrow(message?: string | (() => string)): JSDocTypeExpression; } -declare type JSDocTypeExpressionableTagExtensionType = Node & JSDocTag; export declare function JSDocTypeParameteredTag>(Base: T): Constructor & T; @@ -4718,7 +4718,7 @@ export interface JSDocTypeParameteredTag { getTypeParameters(): TypeParameterDeclaration[]; } -declare type JSDocTypeParameteredTagExtensionType = Node; }> & JSDocTag; declare const JSDocBase: typeof Node; @@ -5472,7 +5472,7 @@ export interface ExpressionableNode { getExpressionIfKindOrThrow(kind: TKind): KindToExpressionMappings[TKind]; } -declare type ExpressionableNodeExtensionType = Node; export declare function BaseExpressionedNode, TExpression extends Node = CompilerNodeToWrappedType["compilerNode"]>>(Base: T): Constructor> & T; @@ -5502,7 +5502,7 @@ export declare function ExpressionedNode { } -declare type ExpressionedNodeExtensionType = Node; export declare function ImportExpressionedNode>(Base: T): Constructor & T; @@ -5510,7 +5510,7 @@ export declare function ImportExpressionedNode { } -declare type ImportExpressionedNodeExtensionType = Node; export declare function LeftHandSideExpressionedNode>(Base: T): Constructor & T; @@ -5518,7 +5518,7 @@ export declare function LeftHandSideExpressionedNode { } -declare type LeftHandSideExpressionedNodeExtensionType = Node; export declare function SuperExpressionedNode>(Base: T): Constructor & T; @@ -5526,7 +5526,7 @@ export declare function SuperExpressionedNode { } -declare type SuperExpressionedNodeExtensionType = Node; export declare function UnaryExpressionedNode>(Base: T): Constructor & T; @@ -5534,7 +5534,7 @@ export declare function UnaryExpressionedNode { } -declare type UnaryExpressionedNodeExtensionType = Node; declare const ImportExpressionBase: typeof PrimaryExpression; @@ -6105,7 +6105,7 @@ export declare function FunctionLikeDeclaration; +type FunctionLikeDeclarationExtensionType = Node; export declare function OverloadableNode>(Base: T): Constructor & T; /** Node that supports overloads. */ @@ -6122,7 +6122,7 @@ export interface OverloadableNode { isImplementation(): boolean; } -declare type OverloadableNodeExtensionType = Node & BodyableNode; +type OverloadableNodeExtensionType = Node & BodyableNode; declare const ParameterDeclarationBase: Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & typeof Node; export declare class ParameterDeclaration extends ParameterDeclarationBase { @@ -6355,7 +6355,7 @@ export interface JsxAttributedNode { insertAttributes(index: number, attributes: ReadonlyArray | OptionalKind>): JsxAttributeLike[]; } -declare type JsxAttributedNodeExtensionType = Node & JsxTagNamedNode; export declare function JsxTagNamedNode>(Base: T): Constructor & T; @@ -6365,7 +6365,7 @@ export interface JsxTagNamedNode { getTagNameNode(): JsxTagNameExpression; } -declare type JsxTagNamedNodeExtensionType = Node; declare const JsxAttributeBase: Constructor & typeof Node; @@ -7471,7 +7471,7 @@ export interface ModuleChildableNode { getParentModuleOrThrow(message?: string | (() => string)): ModuleDeclaration; } -declare type ModuleChildableNodeExtensionType = Node; +type ModuleChildableNodeExtensionType = Node; declare const ModuleDeclarationBase: Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & Constructor & typeof Statement; export declare class ModuleDeclaration extends ModuleDeclarationBase { @@ -7910,7 +7910,7 @@ interface CommonIdentifierBase { getDefinitions(): DefinitionInfo[]; } -declare type CommonIdentifierBaseExtensionType = Node; declare const ComputedPropertyNameBase: Constructor & typeof Node; @@ -8579,7 +8579,7 @@ export interface StatementedNode { getVariableDeclarationOrThrow(findFunction: (declaration: VariableDeclaration) => boolean): VariableDeclaration; } -declare type StatementedNodeExtensionType = Node; +type StatementedNodeExtensionType = Node; export interface KindToNodeMappingsWithCommentStatements extends ImplementedKindToNodeMappings { [kind: number]: Node; @@ -10287,13 +10287,13 @@ export declare class ManipulationSettingsContainer extends SettingsContainer): void; } -export declare type StatementStructures = ClassDeclarationStructure | EnumDeclarationStructure | FunctionDeclarationStructure | InterfaceDeclarationStructure | ModuleDeclarationStructure | TypeAliasDeclarationStructure | ImportDeclarationStructure | ExportDeclarationStructure | ExportAssignmentStructure | VariableStatementStructure; -export declare type ClassMemberStructures = ConstructorDeclarationStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure | PropertyDeclarationStructure | ClassStaticBlockDeclarationStructure; -export declare type TypeElementMemberStructures = CallSignatureDeclarationStructure | ConstructSignatureDeclarationStructure | IndexSignatureDeclarationStructure | MethodSignatureStructure | PropertySignatureStructure; -export declare type InterfaceMemberStructures = TypeElementMemberStructures; -export declare type ObjectLiteralExpressionPropertyStructures = PropertyAssignmentStructure | ShorthandPropertyAssignmentStructure | SpreadAssignmentStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure; -export declare type JsxStructures = JsxAttributeStructure | JsxSpreadAttributeStructure | JsxElementStructure | JsxSelfClosingElementStructure; -export declare type Structures = AssertEntryStructure | StatementStructures | ClassMemberStructures | EnumMemberStructure | InterfaceMemberStructures | ObjectLiteralExpressionPropertyStructures | JsxStructures | FunctionDeclarationOverloadStructure | MethodDeclarationOverloadStructure | ConstructorDeclarationOverloadStructure | ParameterDeclarationStructure | TypeParameterDeclarationStructure | SourceFileStructure | ExportSpecifierStructure | ImportSpecifierStructure | VariableDeclarationStructure | JSDocStructure | JSDocTagStructure | DecoratorStructure; +export type StatementStructures = ClassDeclarationStructure | EnumDeclarationStructure | FunctionDeclarationStructure | InterfaceDeclarationStructure | ModuleDeclarationStructure | TypeAliasDeclarationStructure | ImportDeclarationStructure | ExportDeclarationStructure | ExportAssignmentStructure | VariableStatementStructure; +export type ClassMemberStructures = ConstructorDeclarationStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure | PropertyDeclarationStructure | ClassStaticBlockDeclarationStructure; +export type TypeElementMemberStructures = CallSignatureDeclarationStructure | ConstructSignatureDeclarationStructure | IndexSignatureDeclarationStructure | MethodSignatureStructure | PropertySignatureStructure; +export type InterfaceMemberStructures = TypeElementMemberStructures; +export type ObjectLiteralExpressionPropertyStructures = PropertyAssignmentStructure | ShorthandPropertyAssignmentStructure | SpreadAssignmentStructure | GetAccessorDeclarationStructure | SetAccessorDeclarationStructure | MethodDeclarationStructure; +export type JsxStructures = JsxAttributeStructure | JsxSpreadAttributeStructure | JsxElementStructure | JsxSelfClosingElementStructure; +export type Structures = AssertEntryStructure | StatementStructures | ClassMemberStructures | EnumMemberStructure | InterfaceMemberStructures | ObjectLiteralExpressionPropertyStructures | JsxStructures | FunctionDeclarationOverloadStructure | MethodDeclarationOverloadStructure | ConstructorDeclarationOverloadStructure | ParameterDeclarationStructure | TypeParameterDeclarationStructure | SourceFileStructure | ExportSpecifierStructure | ImportSpecifierStructure | VariableDeclarationStructure | JSDocStructure | JSDocTagStructure | DecoratorStructure; export interface AbstractableNodeStructure { isAbstract?: boolean; @@ -11006,7 +11006,7 @@ interface TypeParameterDeclarationSpecificStructure extends KindedStructure = Pick> & Partial>; /** diff --git a/packages/ts-morph/src/compiler/ast/base/export/ExportGetableNode.ts b/packages/ts-morph/src/compiler/ast/base/export/ExportGetableNode.ts index 35b0f6757..8663d37fc 100644 --- a/packages/ts-morph/src/compiler/ast/base/export/ExportGetableNode.ts +++ b/packages/ts-morph/src/compiler/ast/base/export/ExportGetableNode.ts @@ -50,7 +50,7 @@ export function ExportGetableNode(basePrototype: any, node: Node, structure: MakeRequired | undefined): any { +export function callBaseGetStructure>(basePrototype: any, node: Node, structure: MakeRequired | undefined): any { let newStructure: T; if (basePrototype.getStructure != null) newStructure = basePrototype.getStructure.call(node); @@ -9,7 +9,7 @@ export function callBaseGetStructure(basePrototype: any, node: Node, structur newStructure = {} as any; if (structure != null) - Object.assign(newStructure, structure); + Object.assign(newStructure as any, structure); return newStructure; } diff --git a/packages/ts-morph/src/compiler/ast/function/OverloadableNode.ts b/packages/ts-morph/src/compiler/ast/function/OverloadableNode.ts index 259c07415..1d98a7db7 100644 --- a/packages/ts-morph/src/compiler/ast/function/OverloadableNode.ts +++ b/packages/ts-morph/src/compiler/ast/function/OverloadableNode.ts @@ -101,7 +101,9 @@ export interface InsertOverloadsOptions(opts: InsertOverloadsOptions): TNode[] { +export function insertOverloads>( + opts: InsertOverloadsOptions, +): TNode[] { if (opts.structures.length === 0) return []; diff --git a/packages/ts-morph/src/compiler/ast/type/TypeParameterDeclaration.ts b/packages/ts-morph/src/compiler/ast/type/TypeParameterDeclaration.ts index e6d61c142..fd596a028 100644 --- a/packages/ts-morph/src/compiler/ast/type/TypeParameterDeclaration.ts +++ b/packages/ts-morph/src/compiler/ast/type/TypeParameterDeclaration.ts @@ -20,7 +20,8 @@ export enum TypeParameterVariance { InOut = In | Out, } -export const TypeParameterDeclarationBase = ModifierableNode(NamedNode(Node)); +const createBase = (ctor: T) => ModifierableNode(NamedNode(ctor)); +export const TypeParameterDeclarationBase = createBase(Node); export class TypeParameterDeclaration extends TypeParameterDeclarationBase { /** * Gets the constraint of the type parameter. diff --git a/packages/ts-morph/src/structurePrinters/NodePrinter.ts b/packages/ts-morph/src/structurePrinters/NodePrinter.ts index 4d619e641..c953c8aa2 100644 --- a/packages/ts-morph/src/structurePrinters/NodePrinter.ts +++ b/packages/ts-morph/src/structurePrinters/NodePrinter.ts @@ -22,10 +22,9 @@ export abstract class NodePrinter extends Printer { protected abstract printTextInternal(writer: CodeBlockWriter, structure: TStructure): void; - printLeadingTrivia(writer: CodeBlockWriter, structure: { leadingTrivia?: Structure["leadingTrivia"] }) { - const leadingTrivia = structure.leadingTrivia; - - if (leadingTrivia != null) { + printLeadingTrivia(writer: CodeBlockWriter, structure: unknown) { + const leadingTrivia = (structure as any)?.leadingTrivia as Structure["leadingTrivia"]; + if (leadingTrivia) { this.printTrivia(writer, leadingTrivia); if (writer.isInComment()) @@ -33,8 +32,8 @@ export abstract class NodePrinter extends Printer { } } - printTrailingTrivia(writer: CodeBlockWriter, structure: { trailingTrivia?: Structure["leadingTrivia"] }) { - const trailingTrivia = structure.trailingTrivia; + printTrailingTrivia(writer: CodeBlockWriter, structure: unknown) { + const trailingTrivia = (structure as any)?.trailingTrivia as Structure["trailingTrivia"]; if (trailingTrivia != null) this.printTrivia(writer, trailingTrivia); diff --git a/packages/ts-morph/src/tests/compiler/ast/common/nodeTests.ts b/packages/ts-morph/src/tests/compiler/ast/common/nodeTests.ts index d0cfd6030..330c4a15e 100644 --- a/packages/ts-morph/src/tests/compiler/ast/common/nodeTests.ts +++ b/packages/ts-morph/src/tests/compiler/ast/common/nodeTests.ts @@ -1608,6 +1608,7 @@ class MyClass { if (result) return result; } + return undefined; }); expect(foundKinds).to.deep.equal(expectedKinds); expect(returnValue).to.deep.equal(expectedReturnValue); @@ -1704,6 +1705,7 @@ class MyClass { if (result) return result; } + return undefined; }, (childArray, traversal) => { foundArrayKinds.push(childArray.map(c => c.getKind())); if (arrayCallback) { @@ -1711,6 +1713,7 @@ class MyClass { if (result) return result; } + return undefined; }); expect(foundNodeKinds).to.deep.equal(expectedNodeKinds); diff --git a/packages/ts-morph/src/typings/customTypings.d.ts b/packages/ts-morph/src/typings/customTypings.d.ts index 99082e189..6e56f2e8f 100644 --- a/packages/ts-morph/src/typings/customTypings.d.ts +++ b/packages/ts-morph/src/typings/customTypings.d.ts @@ -1,8 +1,8 @@ -type Mutable = { +type Mutable, K extends string> = { [P in K]: T[P]; }; type GetStrings = T extends string ? T : never; -type MakeRequired = Mutable>; +type MakeRequired> = Mutable>; type InferArrayElementType = T extends (infer U)[] ? U : T extends ReadonlyArray ? U : never; type OptionalProperties = Omit & Partial>;