| /*! ***************************************************************************** |
| Copyright (c) Microsoft Corporation. All rights reserved. |
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
| this file except in compliance with the License. You may obtain a copy of the |
| License at http://www.apache.org/licenses/LICENSE-2.0 |
| |
| THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
| WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
| MERCHANTABLITY OR NON-INFRINGEMENT. |
| |
| See the Apache Version 2.0 License for specific language governing permissions |
| and limitations under the License. |
| ***************************************************************************** */ |
| |
| declare namespace ts { |
| const versionMajorMinor = "3.5"; |
| /** The version of the TypeScript compiler release */ |
| const version: string; |
| } |
| declare namespace ts { |
| /** |
| * Type of objects whose values are all of the same type. |
| * The `in` and `for-in` operators can *not* be safely used, |
| * since `Object.prototype` may be modified by outside code. |
| */ |
| interface MapLike<T> { |
| [index: string]: T; |
| } |
| interface SortedReadonlyArray<T> extends ReadonlyArray<T> { |
| " __sortedArrayBrand": any; |
| } |
| interface SortedArray<T> extends Array<T> { |
| " __sortedArrayBrand": any; |
| } |
| /** ES6 Map interface, only read methods included. */ |
| interface ReadonlyMap<T> { |
| get(key: string): T | undefined; |
| has(key: string): boolean; |
| forEach(action: (value: T, key: string) => void): void; |
| readonly size: number; |
| keys(): Iterator<string>; |
| values(): Iterator<T>; |
| entries(): Iterator<[string, T]>; |
| } |
| /** ES6 Map interface. */ |
| interface Map<T> extends ReadonlyMap<T> { |
| set(key: string, value: T): this; |
| delete(key: string): boolean; |
| clear(): void; |
| } |
| /** ES6 Iterator type. */ |
| interface Iterator<T> { |
| next(): { |
| value: T; |
| done: false; |
| } | { |
| value: never; |
| done: true; |
| }; |
| } |
| /** Array that is only intended to be pushed to, never read. */ |
| interface Push<T> { |
| push(...values: T[]): void; |
| } |
| } |
| declare namespace ts { |
| type Path = string & { |
| __pathBrand: any; |
| }; |
| interface TextRange { |
| pos: number; |
| end: number; |
| } |
| type JSDocSyntaxKind = SyntaxKind.EndOfFileToken | SyntaxKind.WhitespaceTrivia | SyntaxKind.AtToken | SyntaxKind.NewLineTrivia | SyntaxKind.AsteriskToken | SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.LessThanToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.EqualsToken | SyntaxKind.CommaToken | SyntaxKind.DotToken | SyntaxKind.Identifier | SyntaxKind.BacktickToken | SyntaxKind.Unknown | KeywordSyntaxKind; |
| type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InKeyword | SyntaxKind.InferKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.RequireKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.OfKeyword; |
| type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken; |
| enum SyntaxKind { |
| Unknown = 0, |
| EndOfFileToken = 1, |
| SingleLineCommentTrivia = 2, |
| MultiLineCommentTrivia = 3, |
| NewLineTrivia = 4, |
| WhitespaceTrivia = 5, |
| ShebangTrivia = 6, |
| ConflictMarkerTrivia = 7, |
| NumericLiteral = 8, |
| BigIntLiteral = 9, |
| StringLiteral = 10, |
| JsxText = 11, |
| JsxTextAllWhiteSpaces = 12, |
| RegularExpressionLiteral = 13, |
| NoSubstitutionTemplateLiteral = 14, |
| TemplateHead = 15, |
| TemplateMiddle = 16, |
| TemplateTail = 17, |
| OpenBraceToken = 18, |
| CloseBraceToken = 19, |
| OpenParenToken = 20, |
| CloseParenToken = 21, |
| OpenBracketToken = 22, |
| CloseBracketToken = 23, |
| DotToken = 24, |
| DotDotDotToken = 25, |
| SemicolonToken = 26, |
| CommaToken = 27, |
| LessThanToken = 28, |
| LessThanSlashToken = 29, |
| GreaterThanToken = 30, |
| LessThanEqualsToken = 31, |
| GreaterThanEqualsToken = 32, |
| EqualsEqualsToken = 33, |
| ExclamationEqualsToken = 34, |
| EqualsEqualsEqualsToken = 35, |
| ExclamationEqualsEqualsToken = 36, |
| EqualsGreaterThanToken = 37, |
| PlusToken = 38, |
| MinusToken = 39, |
| AsteriskToken = 40, |
| AsteriskAsteriskToken = 41, |
| SlashToken = 42, |
| PercentToken = 43, |
| PlusPlusToken = 44, |
| MinusMinusToken = 45, |
| LessThanLessThanToken = 46, |
| GreaterThanGreaterThanToken = 47, |
| GreaterThanGreaterThanGreaterThanToken = 48, |
| AmpersandToken = 49, |
| BarToken = 50, |
| CaretToken = 51, |
| ExclamationToken = 52, |
| TildeToken = 53, |
| AmpersandAmpersandToken = 54, |
| BarBarToken = 55, |
| QuestionToken = 56, |
| ColonToken = 57, |
| AtToken = 58, |
| /** Only the JSDoc scanner produces BacktickToken. The normal scanner produces NoSubstitutionTemplateLiteral and related kinds. */ |
| BacktickToken = 59, |
| EqualsToken = 60, |
| PlusEqualsToken = 61, |
| MinusEqualsToken = 62, |
| AsteriskEqualsToken = 63, |
| AsteriskAsteriskEqualsToken = 64, |
| SlashEqualsToken = 65, |
| PercentEqualsToken = 66, |
| LessThanLessThanEqualsToken = 67, |
| GreaterThanGreaterThanEqualsToken = 68, |
| GreaterThanGreaterThanGreaterThanEqualsToken = 69, |
| AmpersandEqualsToken = 70, |
| BarEqualsToken = 71, |
| CaretEqualsToken = 72, |
| Identifier = 73, |
| BreakKeyword = 74, |
| CaseKeyword = 75, |
| CatchKeyword = 76, |
| ClassKeyword = 77, |
| ConstKeyword = 78, |
| ContinueKeyword = 79, |
| DebuggerKeyword = 80, |
| DefaultKeyword = 81, |
| DeleteKeyword = 82, |
| DoKeyword = 83, |
| ElseKeyword = 84, |
| EnumKeyword = 85, |
| ExportKeyword = 86, |
| ExtendsKeyword = 87, |
| FalseKeyword = 88, |
| FinallyKeyword = 89, |
| ForKeyword = 90, |
| FunctionKeyword = 91, |
| IfKeyword = 92, |
| ImportKeyword = 93, |
| InKeyword = 94, |
| InstanceOfKeyword = 95, |
| NewKeyword = 96, |
| NullKeyword = 97, |
| ReturnKeyword = 98, |
| SuperKeyword = 99, |
| SwitchKeyword = 100, |
| ThisKeyword = 101, |
| ThrowKeyword = 102, |
| TrueKeyword = 103, |
| TryKeyword = 104, |
| TypeOfKeyword = 105, |
| VarKeyword = 106, |
| VoidKeyword = 107, |
| WhileKeyword = 108, |
| WithKeyword = 109, |
| ImplementsKeyword = 110, |
| InterfaceKeyword = 111, |
| LetKeyword = 112, |
| PackageKeyword = 113, |
| PrivateKeyword = 114, |
| ProtectedKeyword = 115, |
| PublicKeyword = 116, |
| StaticKeyword = 117, |
| YieldKeyword = 118, |
| AbstractKeyword = 119, |
| AsKeyword = 120, |
| AnyKeyword = 121, |
| AsyncKeyword = 122, |
| AwaitKeyword = 123, |
| BooleanKeyword = 124, |
| ConstructorKeyword = 125, |
| DeclareKeyword = 126, |
| GetKeyword = 127, |
| InferKeyword = 128, |
| IsKeyword = 129, |
| KeyOfKeyword = 130, |
| ModuleKeyword = 131, |
| NamespaceKeyword = 132, |
| NeverKeyword = 133, |
| ReadonlyKeyword = 134, |
| RequireKeyword = 135, |
| NumberKeyword = 136, |
| ObjectKeyword = 137, |
| SetKeyword = 138, |
| StringKeyword = 139, |
| SymbolKeyword = 140, |
| TypeKeyword = 141, |
| UndefinedKeyword = 142, |
| UniqueKeyword = 143, |
| UnknownKeyword = 144, |
| FromKeyword = 145, |
| GlobalKeyword = 146, |
| BigIntKeyword = 147, |
| OfKeyword = 148, |
| QualifiedName = 149, |
| ComputedPropertyName = 150, |
| TypeParameter = 151, |
| Parameter = 152, |
| Decorator = 153, |
| PropertySignature = 154, |
| PropertyDeclaration = 155, |
| MethodSignature = 156, |
| MethodDeclaration = 157, |
| Constructor = 158, |
| GetAccessor = 159, |
| SetAccessor = 160, |
| CallSignature = 161, |
| ConstructSignature = 162, |
| IndexSignature = 163, |
| TypePredicate = 164, |
| TypeReference = 165, |
| FunctionType = 166, |
| ConstructorType = 167, |
| TypeQuery = 168, |
| TypeLiteral = 169, |
| ArrayType = 170, |
| TupleType = 171, |
| OptionalType = 172, |
| RestType = 173, |
| UnionType = 174, |
| IntersectionType = 175, |
| ConditionalType = 176, |
| InferType = 177, |
| ParenthesizedType = 178, |
| ThisType = 179, |
| TypeOperator = 180, |
| IndexedAccessType = 181, |
| MappedType = 182, |
| LiteralType = 183, |
| ImportType = 184, |
| ObjectBindingPattern = 185, |
| ArrayBindingPattern = 186, |
| BindingElement = 187, |
| ArrayLiteralExpression = 188, |
| ObjectLiteralExpression = 189, |
| PropertyAccessExpression = 190, |
| ElementAccessExpression = 191, |
| CallExpression = 192, |
| NewExpression = 193, |
| TaggedTemplateExpression = 194, |
| TypeAssertionExpression = 195, |
| ParenthesizedExpression = 196, |
| FunctionExpression = 197, |
| ArrowFunction = 198, |
| DeleteExpression = 199, |
| TypeOfExpression = 200, |
| VoidExpression = 201, |
| AwaitExpression = 202, |
| PrefixUnaryExpression = 203, |
| PostfixUnaryExpression = 204, |
| BinaryExpression = 205, |
| ConditionalExpression = 206, |
| TemplateExpression = 207, |
| YieldExpression = 208, |
| SpreadElement = 209, |
| ClassExpression = 210, |
| OmittedExpression = 211, |
| ExpressionWithTypeArguments = 212, |
| AsExpression = 213, |
| NonNullExpression = 214, |
| MetaProperty = 215, |
| SyntheticExpression = 216, |
| TemplateSpan = 217, |
| SemicolonClassElement = 218, |
| Block = 219, |
| VariableStatement = 220, |
| EmptyStatement = 221, |
| ExpressionStatement = 222, |
| IfStatement = 223, |
| DoStatement = 224, |
| WhileStatement = 225, |
| ForStatement = 226, |
| ForInStatement = 227, |
| ForOfStatement = 228, |
| ContinueStatement = 229, |
| BreakStatement = 230, |
| ReturnStatement = 231, |
| WithStatement = 232, |
| SwitchStatement = 233, |
| LabeledStatement = 234, |
| ThrowStatement = 235, |
| TryStatement = 236, |
| DebuggerStatement = 237, |
| VariableDeclaration = 238, |
| VariableDeclarationList = 239, |
| FunctionDeclaration = 240, |
| ClassDeclaration = 241, |
| InterfaceDeclaration = 242, |
| TypeAliasDeclaration = 243, |
| EnumDeclaration = 244, |
| ModuleDeclaration = 245, |
| ModuleBlock = 246, |
| CaseBlock = 247, |
| NamespaceExportDeclaration = 248, |
| ImportEqualsDeclaration = 249, |
| ImportDeclaration = 250, |
| ImportClause = 251, |
| NamespaceImport = 252, |
| NamedImports = 253, |
| ImportSpecifier = 254, |
| ExportAssignment = 255, |
| ExportDeclaration = 256, |
| NamedExports = 257, |
| ExportSpecifier = 258, |
| MissingDeclaration = 259, |
| ExternalModuleReference = 260, |
| JsxElement = 261, |
| JsxSelfClosingElement = 262, |
| JsxOpeningElement = 263, |
| JsxClosingElement = 264, |
| JsxFragment = 265, |
| JsxOpeningFragment = 266, |
| JsxClosingFragment = 267, |
| JsxAttribute = 268, |
| JsxAttributes = 269, |
| JsxSpreadAttribute = 270, |
| JsxExpression = 271, |
| CaseClause = 272, |
| DefaultClause = 273, |
| HeritageClause = 274, |
| CatchClause = 275, |
| PropertyAssignment = 276, |
| ShorthandPropertyAssignment = 277, |
| SpreadAssignment = 278, |
| EnumMember = 279, |
| UnparsedPrologue = 280, |
| UnparsedPrepend = 281, |
| UnparsedText = 282, |
| UnparsedInternalText = 283, |
| UnparsedSyntheticReference = 284, |
| SourceFile = 285, |
| Bundle = 286, |
| UnparsedSource = 287, |
| InputFiles = 288, |
| JSDocTypeExpression = 289, |
| JSDocAllType = 290, |
| JSDocUnknownType = 291, |
| JSDocNullableType = 292, |
| JSDocNonNullableType = 293, |
| JSDocOptionalType = 294, |
| JSDocFunctionType = 295, |
| JSDocVariadicType = 296, |
| JSDocComment = 297, |
| JSDocTypeLiteral = 298, |
| JSDocSignature = 299, |
| JSDocTag = 300, |
| JSDocAugmentsTag = 301, |
| JSDocClassTag = 302, |
| JSDocCallbackTag = 303, |
| JSDocEnumTag = 304, |
| JSDocParameterTag = 305, |
| JSDocReturnTag = 306, |
| JSDocThisTag = 307, |
| JSDocTypeTag = 308, |
| JSDocTemplateTag = 309, |
| JSDocTypedefTag = 310, |
| JSDocPropertyTag = 311, |
| SyntaxList = 312, |
| NotEmittedStatement = 313, |
| PartiallyEmittedExpression = 314, |
| CommaListExpression = 315, |
| MergeDeclarationMarker = 316, |
| EndOfDeclarationMarker = 317, |
| Count = 318, |
| FirstAssignment = 60, |
| LastAssignment = 72, |
| FirstCompoundAssignment = 61, |
| LastCompoundAssignment = 72, |
| FirstReservedWord = 74, |
| LastReservedWord = 109, |
| FirstKeyword = 74, |
| LastKeyword = 148, |
| FirstFutureReservedWord = 110, |
| LastFutureReservedWord = 118, |
| FirstTypeNode = 164, |
| LastTypeNode = 184, |
| FirstPunctuation = 18, |
| LastPunctuation = 72, |
| FirstToken = 0, |
| LastToken = 148, |
| FirstTriviaToken = 2, |
| LastTriviaToken = 7, |
| FirstLiteralToken = 8, |
| LastLiteralToken = 14, |
| FirstTemplateToken = 14, |
| LastTemplateToken = 17, |
| FirstBinaryOperator = 28, |
| LastBinaryOperator = 72, |
| FirstNode = 149, |
| FirstJSDocNode = 289, |
| LastJSDocNode = 311, |
| FirstJSDocTagNode = 300, |
| LastJSDocTagNode = 311, |
| } |
| enum NodeFlags { |
| None = 0, |
| Let = 1, |
| Const = 2, |
| NestedNamespace = 4, |
| Synthesized = 8, |
| Namespace = 16, |
| ExportContext = 32, |
| ContainsThis = 64, |
| HasImplicitReturn = 128, |
| HasExplicitReturn = 256, |
| GlobalAugmentation = 512, |
| HasAsyncFunctions = 1024, |
| DisallowInContext = 2048, |
| YieldContext = 4096, |
| DecoratorContext = 8192, |
| AwaitContext = 16384, |
| ThisNodeHasError = 32768, |
| JavaScriptFile = 65536, |
| ThisNodeOrAnySubNodesHasError = 131072, |
| HasAggregatedChildData = 262144, |
| JSDoc = 2097152, |
| JsonFile = 16777216, |
| BlockScoped = 3, |
| ReachabilityCheckFlags = 384, |
| ReachabilityAndEmitFlags = 1408, |
| ContextFlags = 12679168, |
| TypeExcludesFlags = 20480, |
| } |
| enum ModifierFlags { |
| None = 0, |
| Export = 1, |
| Ambient = 2, |
| Public = 4, |
| Private = 8, |
| Protected = 16, |
| Static = 32, |
| Readonly = 64, |
| Abstract = 128, |
| Async = 256, |
| Default = 512, |
| Const = 2048, |
| HasComputedFlags = 536870912, |
| AccessibilityModifier = 28, |
| ParameterPropertyModifier = 92, |
| NonPublicAccessibilityModifier = 24, |
| TypeScriptModifier = 2270, |
| ExportDefault = 513, |
| All = 3071 |
| } |
| enum JsxFlags { |
| None = 0, |
| /** An element from a named property of the JSX.IntrinsicElements interface */ |
| IntrinsicNamedElement = 1, |
| /** An element inferred from the string index signature of the JSX.IntrinsicElements interface */ |
| IntrinsicIndexedElement = 2, |
| IntrinsicElement = 3 |
| } |
| interface Node extends TextRange { |
| kind: SyntaxKind; |
| flags: NodeFlags; |
| decorators?: NodeArray<Decorator>; |
| modifiers?: ModifiersArray; |
| parent: Node; |
| } |
| interface JSDocContainer { |
| } |
| type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | LabeledStatement | ExpressionStatement | VariableStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | EndOfFileToken; |
| type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType; |
| type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute; |
| type HasExpressionInitializer = VariableDeclaration | ParameterDeclaration | BindingElement | PropertySignature | PropertyDeclaration | PropertyAssignment | EnumMember; |
| interface NodeArray<T extends Node> extends ReadonlyArray<T>, TextRange { |
| hasTrailingComma?: boolean; |
| } |
| interface Token<TKind extends SyntaxKind> extends Node { |
| kind: TKind; |
| } |
| type DotDotDotToken = Token<SyntaxKind.DotDotDotToken>; |
| type QuestionToken = Token<SyntaxKind.QuestionToken>; |
| type ExclamationToken = Token<SyntaxKind.ExclamationToken>; |
| type ColonToken = Token<SyntaxKind.ColonToken>; |
| type EqualsToken = Token<SyntaxKind.EqualsToken>; |
| type AsteriskToken = Token<SyntaxKind.AsteriskToken>; |
| type EqualsGreaterThanToken = Token<SyntaxKind.EqualsGreaterThanToken>; |
| type EndOfFileToken = Token<SyntaxKind.EndOfFileToken> & JSDocContainer; |
| type ReadonlyToken = Token<SyntaxKind.ReadonlyKeyword>; |
| type AwaitKeywordToken = Token<SyntaxKind.AwaitKeyword>; |
| type PlusToken = Token<SyntaxKind.PlusToken>; |
| type MinusToken = Token<SyntaxKind.MinusToken>; |
| type Modifier = Token<SyntaxKind.AbstractKeyword> | Token<SyntaxKind.AsyncKeyword> | Token<SyntaxKind.ConstKeyword> | Token<SyntaxKind.DeclareKeyword> | Token<SyntaxKind.DefaultKeyword> | Token<SyntaxKind.ExportKeyword> | Token<SyntaxKind.PublicKeyword> | Token<SyntaxKind.PrivateKeyword> | Token<SyntaxKind.ProtectedKeyword> | Token<SyntaxKind.ReadonlyKeyword> | Token<SyntaxKind.StaticKeyword>; |
| type ModifiersArray = NodeArray<Modifier>; |
| interface Identifier extends PrimaryExpression, Declaration { |
| kind: SyntaxKind.Identifier; |
| /** |
| * Prefer to use `id.unescapedText`. (Note: This is available only in services, not internally to the TypeScript compiler.) |
| * Text of identifier, but if the identifier begins with two underscores, this will begin with three. |
| */ |
| escapedText: __String; |
| originalKeywordKind?: SyntaxKind; |
| isInJSDocNamespace?: boolean; |
| } |
| interface TransientIdentifier extends Identifier { |
| resolvedSymbol: Symbol; |
| } |
| interface QualifiedName extends Node { |
| kind: SyntaxKind.QualifiedName; |
| left: EntityName; |
| right: Identifier; |
| } |
| type EntityName = Identifier | QualifiedName; |
| type PropertyName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName; |
| type DeclarationName = Identifier | StringLiteralLike | NumericLiteral | ComputedPropertyName | BindingPattern; |
| interface Declaration extends Node { |
| _declarationBrand: any; |
| } |
| interface NamedDeclaration extends Declaration { |
| name?: DeclarationName; |
| } |
| interface DeclarationStatement extends NamedDeclaration, Statement { |
| name?: Identifier | StringLiteral | NumericLiteral; |
| } |
| interface ComputedPropertyName extends Node { |
| parent: Declaration; |
| kind: SyntaxKind.ComputedPropertyName; |
| expression: Expression; |
| } |
| interface Decorator extends Node { |
| kind: SyntaxKind.Decorator; |
| parent: NamedDeclaration; |
| expression: LeftHandSideExpression; |
| } |
| interface TypeParameterDeclaration extends NamedDeclaration { |
| kind: SyntaxKind.TypeParameter; |
| parent: DeclarationWithTypeParameterChildren | InferTypeNode; |
| name: Identifier; |
| /** Note: Consider calling `getEffectiveConstraintOfTypeParameter` */ |
| constraint?: TypeNode; |
| default?: TypeNode; |
| expression?: Expression; |
| } |
| interface SignatureDeclarationBase extends NamedDeclaration, JSDocContainer { |
| kind: SignatureDeclaration["kind"]; |
| name?: PropertyName; |
| typeParameters?: NodeArray<TypeParameterDeclaration>; |
| parameters: NodeArray<ParameterDeclaration>; |
| type?: TypeNode; |
| } |
| type SignatureDeclaration = CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | FunctionDeclaration | MethodDeclaration | ConstructorDeclaration | AccessorDeclaration | FunctionExpression | ArrowFunction; |
| interface CallSignatureDeclaration extends SignatureDeclarationBase, TypeElement { |
| kind: SyntaxKind.CallSignature; |
| } |
| interface ConstructSignatureDeclaration extends SignatureDeclarationBase, TypeElement { |
| kind: SyntaxKind.ConstructSignature; |
| } |
| type BindingName = Identifier | BindingPattern; |
| interface VariableDeclaration extends NamedDeclaration { |
| kind: SyntaxKind.VariableDeclaration; |
| parent: VariableDeclarationList | CatchClause; |
| name: BindingName; |
| exclamationToken?: ExclamationToken; |
| type?: TypeNode; |
| initializer?: Expression; |
| } |
| interface VariableDeclarationList extends Node { |
| kind: SyntaxKind.VariableDeclarationList; |
| parent: VariableStatement | ForStatement | ForOfStatement | ForInStatement; |
| declarations: NodeArray<VariableDeclaration>; |
| } |
| interface ParameterDeclaration extends NamedDeclaration, JSDocContainer { |
| kind: SyntaxKind.Parameter; |
| parent: SignatureDeclaration; |
| dotDotDotToken?: DotDotDotToken; |
| name: BindingName; |
| questionToken?: QuestionToken; |
| type?: TypeNode; |
| initializer?: Expression; |
| } |
| interface BindingElement extends NamedDeclaration { |
| kind: SyntaxKind.BindingElement; |
| parent: BindingPattern; |
| propertyName?: PropertyName; |
| dotDotDotToken?: DotDotDotToken; |
| name: BindingName; |
| initializer?: Expression; |
| } |
| interface PropertySignature extends TypeElement, JSDocContainer { |
| kind: SyntaxKind.PropertySignature; |
| name: PropertyName; |
| questionToken?: QuestionToken; |
| type?: TypeNode; |
| initializer?: Expression; |
| } |
| interface PropertyDeclaration extends ClassElement, JSDocContainer { |
| kind: SyntaxKind.PropertyDeclaration; |
| parent: ClassLikeDeclaration; |
| name: PropertyName; |
| questionToken?: QuestionToken; |
| exclamationToken?: ExclamationToken; |
| type?: TypeNode; |
| initializer?: Expression; |
| } |
| interface ObjectLiteralElement extends NamedDeclaration { |
| _objectLiteralBrand: any; |
| name?: PropertyName; |
| } |
| /** Unlike ObjectLiteralElement, excludes JSXAttribute and JSXSpreadAttribute. */ |
| type ObjectLiteralElementLike = PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | MethodDeclaration | AccessorDeclaration; |
| interface PropertyAssignment extends ObjectLiteralElement, JSDocContainer { |
| parent: ObjectLiteralExpression; |
| kind: SyntaxKind.PropertyAssignment; |
| name: PropertyName; |
| questionToken?: QuestionToken; |
| initializer: Expression; |
| } |
| interface ShorthandPropertyAssignment extends ObjectLiteralElement, JSDocContainer { |
| parent: ObjectLiteralExpression; |
| kind: SyntaxKind.ShorthandPropertyAssignment; |
| name: Identifier; |
| questionToken?: QuestionToken; |
| exclamationToken?: ExclamationToken; |
| equalsToken?: Token<SyntaxKind.EqualsToken>; |
| objectAssignmentInitializer?: Expression; |
| } |
| interface SpreadAssignment extends ObjectLiteralElement, JSDocContainer { |
| parent: ObjectLiteralExpression; |
| kind: SyntaxKind.SpreadAssignment; |
| expression: Expression; |
| } |
| type VariableLikeDeclaration = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyDeclaration | PropertyAssignment | PropertySignature | JsxAttribute | ShorthandPropertyAssignment | EnumMember | JSDocPropertyTag | JSDocParameterTag; |
| interface PropertyLikeDeclaration extends NamedDeclaration { |
| name: PropertyName; |
| } |
| interface ObjectBindingPattern extends Node { |
| kind: SyntaxKind.ObjectBindingPattern; |
| parent: VariableDeclaration | ParameterDeclaration | BindingElement; |
| elements: NodeArray<BindingElement>; |
| } |
| interface ArrayBindingPattern extends Node { |
| kind: SyntaxKind.ArrayBindingPattern; |
| parent: VariableDeclaration | ParameterDeclaration | BindingElement; |
| elements: NodeArray<ArrayBindingElement>; |
| } |
| type BindingPattern = ObjectBindingPattern | ArrayBindingPattern; |
| type ArrayBindingElement = BindingElement | OmittedExpression; |
| /** |
| * Several node kinds share function-like features such as a signature, |
| * a name, and a body. These nodes should extend FunctionLikeDeclarationBase. |
| * Examples: |
| * - FunctionDeclaration |
| * - MethodDeclaration |
| * - AccessorDeclaration |
| */ |
| interface FunctionLikeDeclarationBase extends SignatureDeclarationBase { |
| _functionLikeDeclarationBrand: any; |
| asteriskToken?: AsteriskToken; |
| questionToken?: QuestionToken; |
| exclamationToken?: ExclamationToken; |
| body?: Block | Expression; |
| } |
| type FunctionLikeDeclaration = FunctionDeclaration | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ConstructorDeclaration | FunctionExpression | ArrowFunction; |
| /** @deprecated Use SignatureDeclaration */ |
| type FunctionLike = SignatureDeclaration; |
| interface FunctionDeclaration extends FunctionLikeDeclarationBase, DeclarationStatement { |
| kind: SyntaxKind.FunctionDeclaration; |
| name?: Identifier; |
| body?: FunctionBody; |
| } |
| interface MethodSignature extends SignatureDeclarationBase, TypeElement { |
| kind: SyntaxKind.MethodSignature; |
| parent: ObjectTypeDeclaration; |
| name: PropertyName; |
| } |
| interface MethodDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer { |
| kind: SyntaxKind.MethodDeclaration; |
| parent: ClassLikeDeclaration | ObjectLiteralExpression; |
| name: PropertyName; |
| body?: FunctionBody; |
| } |
| interface ConstructorDeclaration extends FunctionLikeDeclarationBase, ClassElement, JSDocContainer { |
| kind: SyntaxKind.Constructor; |
| parent: ClassLikeDeclaration; |
| body?: FunctionBody; |
| } |
| /** For when we encounter a semicolon in a class declaration. ES6 allows these as class elements. */ |
| interface SemicolonClassElement extends ClassElement { |
| kind: SyntaxKind.SemicolonClassElement; |
| parent: ClassLikeDeclaration; |
| } |
| interface GetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer { |
| kind: SyntaxKind.GetAccessor; |
| parent: ClassLikeDeclaration | ObjectLiteralExpression; |
| name: PropertyName; |
| body?: FunctionBody; |
| } |
| interface SetAccessorDeclaration extends FunctionLikeDeclarationBase, ClassElement, ObjectLiteralElement, JSDocContainer { |
| kind: SyntaxKind.SetAccessor; |
| parent: ClassLikeDeclaration | ObjectLiteralExpression; |
| name: PropertyName; |
| body?: FunctionBody; |
| } |
| type AccessorDeclaration = GetAccessorDeclaration | SetAccessorDeclaration; |
| interface IndexSignatureDeclaration extends SignatureDeclarationBase, ClassElement, TypeElement { |
| kind: SyntaxKind.IndexSignature; |
| parent: ObjectTypeDeclaration; |
| } |
| interface TypeNode extends Node { |
| _typeNodeBrand: any; |
| } |
| interface KeywordTypeNode extends TypeNode { |
| kind: SyntaxKind.AnyKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.NumberKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.VoidKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.NullKeyword | SyntaxKind.NeverKeyword; |
| } |
| interface ImportTypeNode extends NodeWithTypeArguments { |
| kind: SyntaxKind.ImportType; |
| isTypeOf?: boolean; |
| argument: TypeNode; |
| qualifier?: EntityName; |
| } |
| interface ThisTypeNode extends TypeNode { |
| kind: SyntaxKind.ThisType; |
| } |
| type FunctionOrConstructorTypeNode = FunctionTypeNode | ConstructorTypeNode; |
| interface FunctionOrConstructorTypeNodeBase extends TypeNode, SignatureDeclarationBase { |
| kind: SyntaxKind.FunctionType | SyntaxKind.ConstructorType; |
| type: TypeNode; |
| } |
| interface FunctionTypeNode extends FunctionOrConstructorTypeNodeBase { |
| kind: SyntaxKind.FunctionType; |
| } |
| interface ConstructorTypeNode extends FunctionOrConstructorTypeNodeBase { |
| kind: SyntaxKind.ConstructorType; |
| } |
| interface NodeWithTypeArguments extends TypeNode { |
| typeArguments?: NodeArray<TypeNode>; |
| } |
| type TypeReferenceType = TypeReferenceNode | ExpressionWithTypeArguments; |
| interface TypeReferenceNode extends NodeWithTypeArguments { |
| kind: SyntaxKind.TypeReference; |
| typeName: EntityName; |
| } |
| interface TypePredicateNode extends TypeNode { |
| kind: SyntaxKind.TypePredicate; |
| parent: SignatureDeclaration | JSDocTypeExpression; |
| parameterName: Identifier | ThisTypeNode; |
| type: TypeNode; |
| } |
| interface TypeQueryNode extends TypeNode { |
| kind: SyntaxKind.TypeQuery; |
| exprName: EntityName; |
| } |
| interface TypeLiteralNode extends TypeNode, Declaration { |
| kind: SyntaxKind.TypeLiteral; |
| members: NodeArray<TypeElement>; |
| } |
| interface ArrayTypeNode extends TypeNode { |
| kind: SyntaxKind.ArrayType; |
| elementType: TypeNode; |
| } |
| interface TupleTypeNode extends TypeNode { |
| kind: SyntaxKind.TupleType; |
| elementTypes: NodeArray<TypeNode>; |
| } |
| interface OptionalTypeNode extends TypeNode { |
| kind: SyntaxKind.OptionalType; |
| type: TypeNode; |
| } |
| interface RestTypeNode extends TypeNode { |
| kind: SyntaxKind.RestType; |
| type: TypeNode; |
| } |
| type UnionOrIntersectionTypeNode = UnionTypeNode | IntersectionTypeNode; |
| interface UnionTypeNode extends TypeNode { |
| kind: SyntaxKind.UnionType; |
| types: NodeArray<TypeNode>; |
| } |
| interface IntersectionTypeNode extends TypeNode { |
| kind: SyntaxKind.IntersectionType; |
| types: NodeArray<TypeNode>; |
| } |
| interface ConditionalTypeNode extends TypeNode { |
| kind: SyntaxKind.ConditionalType; |
| checkType: TypeNode; |
| extendsType: TypeNode; |
| trueType: TypeNode; |
| falseType: TypeNode; |
| } |
| interface InferTypeNode extends TypeNode { |
| kind: SyntaxKind.InferType; |
| typeParameter: TypeParameterDeclaration; |
| } |
| interface ParenthesizedTypeNode extends TypeNode { |
| kind: SyntaxKind.ParenthesizedType; |
| type: TypeNode; |
| } |
| interface TypeOperatorNode extends TypeNode { |
| kind: SyntaxKind.TypeOperator; |
| operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword; |
| type: TypeNode; |
| } |
| interface IndexedAccessTypeNode extends TypeNode { |
| kind: SyntaxKind.IndexedAccessType; |
| objectType: TypeNode; |
| indexType: TypeNode; |
| } |
| interface MappedTypeNode extends TypeNode, Declaration { |
| kind: SyntaxKind.MappedType; |
| readonlyToken?: ReadonlyToken | PlusToken | MinusToken; |
| typeParameter: TypeParameterDeclaration; |
| questionToken?: QuestionToken | PlusToken | MinusToken; |
| type?: TypeNode; |
| } |
| interface LiteralTypeNode extends TypeNode { |
| kind: SyntaxKind.LiteralType; |
| literal: BooleanLiteral | LiteralExpression | PrefixUnaryExpression; |
| } |
| interface StringLiteral extends LiteralExpression { |
| kind: SyntaxKind.StringLiteral; |
| } |
| type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral; |
| interface Expression extends Node { |
| _expressionBrand: any; |
| } |
| interface OmittedExpression extends Expression { |
| kind: SyntaxKind.OmittedExpression; |
| } |
| interface PartiallyEmittedExpression extends LeftHandSideExpression { |
| kind: SyntaxKind.PartiallyEmittedExpression; |
| expression: Expression; |
| } |
| interface UnaryExpression extends Expression { |
| _unaryExpressionBrand: any; |
| } |
| /** Deprecated, please use UpdateExpression */ |
| type IncrementExpression = UpdateExpression; |
| interface UpdateExpression extends UnaryExpression { |
| _updateExpressionBrand: any; |
| } |
| type PrefixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.TildeToken | SyntaxKind.ExclamationToken; |
| interface PrefixUnaryExpression extends UpdateExpression { |
| kind: SyntaxKind.PrefixUnaryExpression; |
| operator: PrefixUnaryOperator; |
| operand: UnaryExpression; |
| } |
| type PostfixUnaryOperator = SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken; |
| interface PostfixUnaryExpression extends UpdateExpression { |
| kind: SyntaxKind.PostfixUnaryExpression; |
| operand: LeftHandSideExpression; |
| operator: PostfixUnaryOperator; |
| } |
| interface LeftHandSideExpression extends UpdateExpression { |
| _leftHandSideExpressionBrand: any; |
| } |
| interface MemberExpression extends LeftHandSideExpression { |
| _memberExpressionBrand: any; |
| } |
| interface PrimaryExpression extends MemberExpression { |
| _primaryExpressionBrand: any; |
| } |
| interface NullLiteral extends PrimaryExpression, TypeNode { |
| kind: SyntaxKind.NullKeyword; |
| } |
| interface BooleanLiteral extends PrimaryExpression, TypeNode { |
| kind: SyntaxKind.TrueKeyword | SyntaxKind.FalseKeyword; |
| } |
| interface ThisExpression extends PrimaryExpression, KeywordTypeNode { |
| kind: SyntaxKind.ThisKeyword; |
| } |
| interface SuperExpression extends PrimaryExpression { |
| kind: SyntaxKind.SuperKeyword; |
| } |
| interface ImportExpression extends PrimaryExpression { |
| kind: SyntaxKind.ImportKeyword; |
| } |
| interface DeleteExpression extends UnaryExpression { |
| kind: SyntaxKind.DeleteExpression; |
| expression: UnaryExpression; |
| } |
| interface TypeOfExpression extends UnaryExpression { |
| kind: SyntaxKind.TypeOfExpression; |
| expression: UnaryExpression; |
| } |
| interface VoidExpression extends UnaryExpression { |
| kind: SyntaxKind.VoidExpression; |
| expression: UnaryExpression; |
| } |
| interface AwaitExpression extends UnaryExpression { |
| kind: SyntaxKind.AwaitExpression; |
| expression: UnaryExpression; |
| } |
| interface YieldExpression extends Expression { |
| kind: SyntaxKind.YieldExpression; |
| asteriskToken?: AsteriskToken; |
| expression?: Expression; |
| } |
| interface SyntheticExpression extends Expression { |
| kind: SyntaxKind.SyntheticExpression; |
| isSpread: boolean; |
| type: Type; |
| } |
| type ExponentiationOperator = SyntaxKind.AsteriskAsteriskToken; |
| type MultiplicativeOperator = SyntaxKind.AsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken; |
| type MultiplicativeOperatorOrHigher = ExponentiationOperator | MultiplicativeOperator; |
| type AdditiveOperator = SyntaxKind.PlusToken | SyntaxKind.MinusToken; |
| type AdditiveOperatorOrHigher = MultiplicativeOperatorOrHigher | AdditiveOperator; |
| type ShiftOperator = SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken; |
| type ShiftOperatorOrHigher = AdditiveOperatorOrHigher | ShiftOperator; |
| type RelationalOperator = SyntaxKind.LessThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.InstanceOfKeyword | SyntaxKind.InKeyword; |
| type RelationalOperatorOrHigher = ShiftOperatorOrHigher | RelationalOperator; |
| type EqualityOperator = SyntaxKind.EqualsEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.ExclamationEqualsToken; |
| type EqualityOperatorOrHigher = RelationalOperatorOrHigher | EqualityOperator; |
| type BitwiseOperator = SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken; |
| type BitwiseOperatorOrHigher = EqualityOperatorOrHigher | BitwiseOperator; |
| type LogicalOperator = SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken; |
| type LogicalOperatorOrHigher = BitwiseOperatorOrHigher | LogicalOperator; |
| type CompoundAssignmentOperator = SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken; |
| type AssignmentOperator = SyntaxKind.EqualsToken | CompoundAssignmentOperator; |
| type AssignmentOperatorOrHigher = LogicalOperatorOrHigher | AssignmentOperator; |
| type BinaryOperator = AssignmentOperatorOrHigher | SyntaxKind.CommaToken; |
| type BinaryOperatorToken = Token<BinaryOperator>; |
| interface BinaryExpression extends Expression, Declaration { |
| kind: SyntaxKind.BinaryExpression; |
| left: Expression; |
| operatorToken: BinaryOperatorToken; |
| right: Expression; |
| } |
| type AssignmentOperatorToken = Token<AssignmentOperator>; |
| interface AssignmentExpression<TOperator extends AssignmentOperatorToken> extends BinaryExpression { |
| left: LeftHandSideExpression; |
| operatorToken: TOperator; |
| } |
| interface ObjectDestructuringAssignment extends AssignmentExpression<EqualsToken> { |
| left: ObjectLiteralExpression; |
| } |
| interface ArrayDestructuringAssignment extends AssignmentExpression<EqualsToken> { |
| left: ArrayLiteralExpression; |
| } |
| type DestructuringAssignment = ObjectDestructuringAssignment | ArrayDestructuringAssignment; |
| type BindingOrAssignmentElement = VariableDeclaration | ParameterDeclaration | BindingElement | PropertyAssignment | ShorthandPropertyAssignment | SpreadAssignment | OmittedExpression | SpreadElement | ArrayLiteralExpression | ObjectLiteralExpression | AssignmentExpression<EqualsToken> | Identifier | PropertyAccessExpression | ElementAccessExpression; |
| type BindingOrAssignmentElementRestIndicator = DotDotDotToken | SpreadElement | SpreadAssignment; |
| type BindingOrAssignmentElementTarget = BindingOrAssignmentPattern | Identifier | PropertyAccessExpression | ElementAccessExpression | OmittedExpression; |
| type ObjectBindingOrAssignmentPattern = ObjectBindingPattern | ObjectLiteralExpression; |
| type ArrayBindingOrAssignmentPattern = ArrayBindingPattern | ArrayLiteralExpression; |
| type AssignmentPattern = ObjectLiteralExpression | ArrayLiteralExpression; |
| type BindingOrAssignmentPattern = ObjectBindingOrAssignmentPattern | ArrayBindingOrAssignmentPattern; |
| interface ConditionalExpression extends Expression { |
| kind: SyntaxKind.ConditionalExpression; |
| condition: Expression; |
| questionToken: QuestionToken; |
| whenTrue: Expression; |
| colonToken: ColonToken; |
| whenFalse: Expression; |
| } |
| type FunctionBody = Block; |
| type ConciseBody = FunctionBody | Expression; |
| interface FunctionExpression extends PrimaryExpression, FunctionLikeDeclarationBase, JSDocContainer { |
| kind: SyntaxKind.FunctionExpression; |
| name?: Identifier; |
| body: FunctionBody; |
| } |
| interface ArrowFunction extends Expression, FunctionLikeDeclarationBase, JSDocContainer { |
| kind: SyntaxKind.ArrowFunction; |
| equalsGreaterThanToken: EqualsGreaterThanToken; |
| body: ConciseBody; |
| name: never; |
| } |
| interface LiteralLikeNode extends Node { |
| text: string; |
| isUnterminated?: boolean; |
| hasExtendedUnicodeEscape?: boolean; |
| } |
| interface LiteralExpression extends LiteralLikeNode, PrimaryExpression { |
| _literalExpressionBrand: any; |
| } |
| interface RegularExpressionLiteral extends LiteralExpression { |
| kind: SyntaxKind.RegularExpressionLiteral; |
| } |
| interface NoSubstitutionTemplateLiteral extends LiteralExpression { |
| kind: SyntaxKind.NoSubstitutionTemplateLiteral; |
| } |
| enum TokenFlags { |
| None = 0, |
| Scientific = 16, |
| Octal = 32, |
| HexSpecifier = 64, |
| BinarySpecifier = 128, |
| OctalSpecifier = 256, |
| } |
| interface NumericLiteral extends LiteralExpression { |
| kind: SyntaxKind.NumericLiteral; |
| } |
| interface BigIntLiteral extends LiteralExpression { |
| kind: SyntaxKind.BigIntLiteral; |
| } |
| interface TemplateHead extends LiteralLikeNode { |
| kind: SyntaxKind.TemplateHead; |
| parent: TemplateExpression; |
| } |
| interface TemplateMiddle extends LiteralLikeNode { |
| kind: SyntaxKind.TemplateMiddle; |
| parent: TemplateSpan; |
| } |
| interface TemplateTail extends LiteralLikeNode { |
| kind: SyntaxKind.TemplateTail; |
| parent: TemplateSpan; |
| } |
| type TemplateLiteral = TemplateExpression | NoSubstitutionTemplateLiteral; |
| interface TemplateExpression extends PrimaryExpression { |
| kind: SyntaxKind.TemplateExpression; |
| head: TemplateHead; |
| templateSpans: NodeArray<TemplateSpan>; |
| } |
| interface TemplateSpan extends Node { |
| kind: SyntaxKind.TemplateSpan; |
| parent: TemplateExpression; |
| expression: Expression; |
| literal: TemplateMiddle | TemplateTail; |
| } |
| interface ParenthesizedExpression extends PrimaryExpression, JSDocContainer { |
| kind: SyntaxKind.ParenthesizedExpression; |
| expression: Expression; |
| } |
| interface ArrayLiteralExpression extends PrimaryExpression { |
| kind: SyntaxKind.ArrayLiteralExpression; |
| elements: NodeArray<Expression>; |
| } |
| interface SpreadElement extends Expression { |
| kind: SyntaxKind.SpreadElement; |
| parent: ArrayLiteralExpression | CallExpression | NewExpression; |
| expression: Expression; |
| } |
| /** |
| * This interface is a base interface for ObjectLiteralExpression and JSXAttributes to extend from. JSXAttributes is similar to |
| * ObjectLiteralExpression in that it contains array of properties; however, JSXAttributes' properties can only be |
| * JSXAttribute or JSXSpreadAttribute. ObjectLiteralExpression, on the other hand, can only have properties of type |
| * ObjectLiteralElement (e.g. PropertyAssignment, ShorthandPropertyAssignment etc.) |
| */ |
| interface ObjectLiteralExpressionBase<T extends ObjectLiteralElement> extends PrimaryExpression, Declaration { |
| properties: NodeArray<T>; |
| } |
| interface ObjectLiteralExpression extends ObjectLiteralExpressionBase<ObjectLiteralElementLike> { |
| kind: SyntaxKind.ObjectLiteralExpression; |
| } |
| type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression; |
| type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression; |
| interface PropertyAccessExpression extends MemberExpression, NamedDeclaration { |
| kind: SyntaxKind.PropertyAccessExpression; |
| expression: LeftHandSideExpression; |
| name: Identifier; |
| } |
| interface SuperPropertyAccessExpression extends PropertyAccessExpression { |
| expression: SuperExpression; |
| } |
| /** Brand for a PropertyAccessExpression which, like a QualifiedName, consists of a sequence of identifiers separated by dots. */ |
| interface PropertyAccessEntityNameExpression extends PropertyAccessExpression { |
| _propertyAccessExpressionLikeQualifiedNameBrand?: any; |
| expression: EntityNameExpression; |
| } |
| interface ElementAccessExpression extends MemberExpression { |
| kind: SyntaxKind.ElementAccessExpression; |
| expression: LeftHandSideExpression; |
| argumentExpression: Expression; |
| } |
| interface SuperElementAccessExpression extends ElementAccessExpression { |
| expression: SuperExpression; |
| } |
| type SuperProperty = SuperPropertyAccessExpression | SuperElementAccessExpression; |
| interface CallExpression extends LeftHandSideExpression, Declaration { |
| kind: SyntaxKind.CallExpression; |
| expression: LeftHandSideExpression; |
| typeArguments?: NodeArray<TypeNode>; |
| arguments: NodeArray<Expression>; |
| } |
| interface SuperCall extends CallExpression { |
| expression: SuperExpression; |
| } |
| interface ImportCall extends CallExpression { |
| expression: ImportExpression; |
| } |
| interface ExpressionWithTypeArguments extends NodeWithTypeArguments { |
| kind: SyntaxKind.ExpressionWithTypeArguments; |
| parent: HeritageClause | JSDocAugmentsTag; |
| expression: LeftHandSideExpression; |
| } |
| interface NewExpression extends PrimaryExpression, Declaration { |
| kind: SyntaxKind.NewExpression; |
| expression: LeftHandSideExpression; |
| typeArguments?: NodeArray<TypeNode>; |
| arguments?: NodeArray<Expression>; |
| } |
| interface TaggedTemplateExpression extends MemberExpression { |
| kind: SyntaxKind.TaggedTemplateExpression; |
| tag: LeftHandSideExpression; |
| typeArguments?: NodeArray<TypeNode>; |
| template: TemplateLiteral; |
| } |
| type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement; |
| interface AsExpression extends Expression { |
| kind: SyntaxKind.AsExpression; |
| expression: Expression; |
| type: TypeNode; |
| } |
| interface TypeAssertion extends UnaryExpression { |
| kind: SyntaxKind.TypeAssertionExpression; |
| type: TypeNode; |
| expression: UnaryExpression; |
| } |
| type AssertionExpression = TypeAssertion | AsExpression; |
| interface NonNullExpression extends LeftHandSideExpression { |
| kind: SyntaxKind.NonNullExpression; |
| expression: Expression; |
| } |
| interface MetaProperty extends PrimaryExpression { |
| kind: SyntaxKind.MetaProperty; |
| keywordToken: SyntaxKind.NewKeyword | SyntaxKind.ImportKeyword; |
| name: Identifier; |
| } |
| interface JsxElement extends PrimaryExpression { |
| kind: SyntaxKind.JsxElement; |
| openingElement: JsxOpeningElement; |
| children: NodeArray<JsxChild>; |
| closingElement: JsxClosingElement; |
| } |
| type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement; |
| type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute; |
| type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess; |
| interface JsxTagNamePropertyAccess extends PropertyAccessExpression { |
| expression: JsxTagNameExpression; |
| } |
| interface JsxAttributes extends ObjectLiteralExpressionBase<JsxAttributeLike> { |
| parent: JsxOpeningLikeElement; |
| } |
| interface JsxOpeningElement extends Expression { |
| kind: SyntaxKind.JsxOpeningElement; |
| parent: JsxElement; |
| tagName: JsxTagNameExpression; |
| typeArguments?: NodeArray<TypeNode>; |
| attributes: JsxAttributes; |
| } |
| interface JsxSelfClosingElement extends PrimaryExpression { |
| kind: SyntaxKind.JsxSelfClosingElement; |
| tagName: JsxTagNameExpression; |
| typeArguments?: NodeArray<TypeNode>; |
| attributes: JsxAttributes; |
| } |
| interface JsxFragment extends PrimaryExpression { |
| kind: SyntaxKind.JsxFragment; |
| openingFragment: JsxOpeningFragment; |
| children: NodeArray<JsxChild>; |
| closingFragment: JsxClosingFragment; |
| } |
| interface JsxOpeningFragment extends Expression { |
| kind: SyntaxKind.JsxOpeningFragment; |
| parent: JsxFragment; |
| } |
| interface JsxClosingFragment extends Expression { |
| kind: SyntaxKind.JsxClosingFragment; |
| parent: JsxFragment; |
| } |
| interface JsxAttribute extends ObjectLiteralElement { |
| kind: SyntaxKind.JsxAttribute; |
| parent: JsxAttributes; |
| name: Identifier; |
| initializer?: StringLiteral | JsxExpression; |
| } |
| interface JsxSpreadAttribute extends ObjectLiteralElement { |
| kind: SyntaxKind.JsxSpreadAttribute; |
| parent: JsxAttributes; |
| expression: Expression; |
| } |
| interface JsxClosingElement extends Node { |
| kind: SyntaxKind.JsxClosingElement; |
| parent: JsxElement; |
| tagName: JsxTagNameExpression; |
| } |
| interface JsxExpression extends Expression { |
| kind: SyntaxKind.JsxExpression; |
| parent: JsxElement | JsxAttributeLike; |
| dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>; |
| expression?: Expression; |
| } |
| interface JsxText extends LiteralLikeNode { |
| kind: SyntaxKind.JsxText; |
| containsOnlyTriviaWhiteSpaces: boolean; |
| parent: JsxElement; |
| } |
| type JsxChild = JsxText | JsxExpression | JsxElement | JsxSelfClosingElement | JsxFragment; |
| interface Statement extends Node { |
| _statementBrand: any; |
| } |
| interface NotEmittedStatement extends Statement { |
| kind: SyntaxKind.NotEmittedStatement; |
| } |
| /** |
| * A list of comma-separated expressions. This node is only created by transformations. |
| */ |
| interface CommaListExpression extends Expression { |
| kind: SyntaxKind.CommaListExpression; |
| elements: NodeArray<Expression>; |
| } |
| interface EmptyStatement extends Statement { |
| kind: SyntaxKind.EmptyStatement; |
| } |
| interface DebuggerStatement extends Statement { |
| kind: SyntaxKind.DebuggerStatement; |
| } |
| interface MissingDeclaration extends DeclarationStatement { |
| kind: SyntaxKind.MissingDeclaration; |
| name?: Identifier; |
| } |
| type BlockLike = SourceFile | Block | ModuleBlock | CaseOrDefaultClause; |
| interface Block extends Statement { |
| kind: SyntaxKind.Block; |
| statements: NodeArray<Statement>; |
| } |
| interface VariableStatement extends Statement, JSDocContainer { |
| kind: SyntaxKind.VariableStatement; |
| declarationList: VariableDeclarationList; |
| } |
| interface ExpressionStatement extends Statement, JSDocContainer { |
| kind: SyntaxKind.ExpressionStatement; |
| expression: Expression; |
| } |
| interface IfStatement extends Statement { |
| kind: SyntaxKind.IfStatement; |
| expression: Expression; |
| thenStatement: Statement; |
| elseStatement?: Statement; |
| } |
| interface IterationStatement extends Statement { |
| statement: Statement; |
| } |
| interface DoStatement extends IterationStatement { |
| kind: SyntaxKind.DoStatement; |
| expression: Expression; |
| } |
| interface WhileStatement extends IterationStatement { |
| kind: SyntaxKind.WhileStatement; |
| expression: Expression; |
| } |
| type ForInitializer = VariableDeclarationList | Expression; |
| interface ForStatement extends IterationStatement { |
| kind: SyntaxKind.ForStatement; |
| initializer?: ForInitializer; |
| condition?: Expression; |
| incrementor?: Expression; |
| } |
| type ForInOrOfStatement = ForInStatement | ForOfStatement; |
| interface ForInStatement extends IterationStatement { |
| kind: SyntaxKind.ForInStatement; |
| initializer: ForInitializer; |
| expression: Expression; |
| } |
| interface ForOfStatement extends IterationStatement { |
| kind: SyntaxKind.ForOfStatement; |
| awaitModifier?: AwaitKeywordToken; |
| initializer: ForInitializer; |
| expression: Expression; |
| } |
| interface BreakStatement extends Statement { |
| kind: SyntaxKind.BreakStatement; |
| label?: Identifier; |
| } |
| interface ContinueStatement extends Statement { |
| kind: SyntaxKind.ContinueStatement; |
| label?: Identifier; |
| } |
| type BreakOrContinueStatement = BreakStatement | ContinueStatement; |
| interface ReturnStatement extends Statement { |
| kind: SyntaxKind.ReturnStatement; |
| expression?: Expression; |
| } |
| interface WithStatement extends Statement { |
| kind: SyntaxKind.WithStatement; |
| expression: Expression; |
| statement: Statement; |
| } |
| interface SwitchStatement extends Statement { |
| kind: SyntaxKind.SwitchStatement; |
| expression: Expression; |
| caseBlock: CaseBlock; |
| possiblyExhaustive?: boolean; |
| } |
| interface CaseBlock extends Node { |
| kind: SyntaxKind.CaseBlock; |
| parent: SwitchStatement; |
| clauses: NodeArray<CaseOrDefaultClause>; |
| } |
| interface CaseClause extends Node { |
| kind: SyntaxKind.CaseClause; |
| parent: CaseBlock; |
| expression: Expression; |
| statements: NodeArray<Statement>; |
| } |
| interface DefaultClause extends Node { |
| kind: SyntaxKind.DefaultClause; |
| parent: CaseBlock; |
| statements: NodeArray<Statement>; |
| } |
| type CaseOrDefaultClause = CaseClause | DefaultClause; |
| interface LabeledStatement extends Statement, JSDocContainer { |
| kind: SyntaxKind.LabeledStatement; |
| label: Identifier; |
| statement: Statement; |
| } |
| interface ThrowStatement extends Statement { |
| kind: SyntaxKind.ThrowStatement; |
| expression?: Expression; |
| } |
| interface TryStatement extends Statement { |
| kind: SyntaxKind.TryStatement; |
| tryBlock: Block; |
| catchClause?: CatchClause; |
| finallyBlock?: Block; |
| } |
| interface CatchClause extends Node { |
| kind: SyntaxKind.CatchClause; |
| parent: TryStatement; |
| variableDeclaration?: VariableDeclaration; |
| block: Block; |
| } |
| type ObjectTypeDeclaration = ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode; |
| type DeclarationWithTypeParameters = DeclarationWithTypeParameterChildren | JSDocTypedefTag | JSDocCallbackTag | JSDocSignature; |
| type DeclarationWithTypeParameterChildren = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | JSDocTemplateTag; |
| interface ClassLikeDeclarationBase extends NamedDeclaration, JSDocContainer { |
| kind: SyntaxKind.ClassDeclaration | SyntaxKind.ClassExpression; |
| name?: Identifier; |
| typeParameters?: NodeArray<TypeParameterDeclaration>; |
| heritageClauses?: NodeArray<HeritageClause>; |
| members: NodeArray<ClassElement>; |
| } |
| interface ClassDeclaration extends ClassLikeDeclarationBase, DeclarationStatement { |
| kind: SyntaxKind.ClassDeclaration; |
| /** May be undefined in `export default class { ... }`. */ |
| name?: Identifier; |
| } |
| interface ClassExpression extends ClassLikeDeclarationBase, PrimaryExpression { |
| kind: SyntaxKind.ClassExpression; |
| } |
| type ClassLikeDeclaration = ClassDeclaration | ClassExpression; |
| interface ClassElement extends NamedDeclaration { |
| _classElementBrand: any; |
| name?: PropertyName; |
| } |
| interface TypeElement extends NamedDeclaration { |
| _typeElementBrand: any; |
| name?: PropertyName; |
| questionToken?: QuestionToken; |
| } |
| interface InterfaceDeclaration extends DeclarationStatement, JSDocContainer { |
| kind: SyntaxKind.InterfaceDeclaration; |
| name: Identifier; |
| typeParameters?: NodeArray<TypeParameterDeclaration>; |
| heritageClauses?: NodeArray<HeritageClause>; |
| members: NodeArray<TypeElement>; |
| } |
| interface HeritageClause extends Node { |
| kind: SyntaxKind.HeritageClause; |
| parent: InterfaceDeclaration | ClassLikeDeclaration; |
| token: SyntaxKind.ExtendsKeyword | SyntaxKind.ImplementsKeyword; |
| types: NodeArray<ExpressionWithTypeArguments>; |
| } |
| interface TypeAliasDeclaration extends DeclarationStatement, JSDocContainer { |
| kind: SyntaxKind.TypeAliasDeclaration; |
| name: Identifier; |
| typeParameters?: NodeArray<TypeParameterDeclaration>; |
| type: TypeNode; |
| } |
| interface EnumMember extends NamedDeclaration, JSDocContainer { |
| kind: SyntaxKind.EnumMember; |
| parent: EnumDeclaration; |
| name: PropertyName; |
| initializer?: Expression; |
| } |
| interface EnumDeclaration extends DeclarationStatement, JSDocContainer { |
| kind: SyntaxKind.EnumDeclaration; |
| name: Identifier; |
| members: NodeArray<EnumMember>; |
| } |
| type ModuleName = Identifier | StringLiteral; |
| type ModuleBody = NamespaceBody | JSDocNamespaceBody; |
| interface ModuleDeclaration extends DeclarationStatement, JSDocContainer { |
| kind: SyntaxKind.ModuleDeclaration; |
| parent: ModuleBody | SourceFile; |
| name: ModuleName; |
| body?: ModuleBody | JSDocNamespaceDeclaration; |
| } |
| type NamespaceBody = ModuleBlock | NamespaceDeclaration; |
| interface NamespaceDeclaration extends ModuleDeclaration { |
| name: Identifier; |
| body: NamespaceBody; |
| } |
| type JSDocNamespaceBody = Identifier | JSDocNamespaceDeclaration; |
| interface JSDocNamespaceDeclaration extends ModuleDeclaration { |
| name: Identifier; |
| body?: JSDocNamespaceBody; |
| } |
| interface ModuleBlock extends Node, Statement { |
| kind: SyntaxKind.ModuleBlock; |
| parent: ModuleDeclaration; |
| statements: NodeArray<Statement>; |
| } |
| type ModuleReference = EntityName | ExternalModuleReference; |
| /** |
| * One of: |
| * - import x = require("mod"); |
| * - import x = M.x; |
| */ |
| interface ImportEqualsDeclaration extends DeclarationStatement, JSDocContainer { |
| kind: SyntaxKind.ImportEqualsDeclaration; |
| parent: SourceFile | ModuleBlock; |
| name: Identifier; |
| moduleReference: ModuleReference; |
| } |
| interface ExternalModuleReference extends Node { |
| kind: SyntaxKind.ExternalModuleReference; |
| parent: ImportEqualsDeclaration; |
| expression: Expression; |
| } |
| interface ImportDeclaration extends Statement { |
| kind: SyntaxKind.ImportDeclaration; |
| parent: SourceFile | ModuleBlock; |
| importClause?: ImportClause; |
| /** If this is not a StringLiteral it will be a grammar error. */ |
| moduleSpecifier: Expression; |
| } |
| type NamedImportBindings = NamespaceImport | NamedImports; |
| interface ImportClause extends NamedDeclaration { |
| kind: SyntaxKind.ImportClause; |
| parent: ImportDeclaration; |
| name?: Identifier; |
| namedBindings?: NamedImportBindings; |
| } |
| interface NamespaceImport extends NamedDeclaration { |
| kind: SyntaxKind.NamespaceImport; |
| parent: ImportClause; |
| name: Identifier; |
| } |
| interface NamespaceExportDeclaration extends DeclarationStatement { |
| kind: SyntaxKind.NamespaceExportDeclaration; |
| name: Identifier; |
| } |
| interface ExportDeclaration extends DeclarationStatement, JSDocContainer { |
| kind: SyntaxKind.ExportDeclaration; |
| parent: SourceFile | ModuleBlock; |
| /** Will not be assigned in the case of `export * from "foo";` */ |
| exportClause?: NamedExports; |
| /** If this is not a StringLiteral it will be a grammar error. */ |
| moduleSpecifier?: Expression; |
| } |
| interface NamedImports extends Node { |
| kind: SyntaxKind.NamedImports; |
| parent: ImportClause; |
| elements: NodeArray<ImportSpecifier>; |
| } |
| interface NamedExports extends Node { |
| kind: SyntaxKind.NamedExports; |
| parent: ExportDeclaration; |
| elements: NodeArray<ExportSpecifier>; |
| } |
| type NamedImportsOrExports = NamedImports | NamedExports; |
| interface ImportSpecifier extends NamedDeclaration { |
| kind: SyntaxKind.ImportSpecifier; |
| parent: NamedImports; |
| propertyName?: Identifier; |
| name: Identifier; |
| } |
| interface ExportSpecifier extends NamedDeclaration { |
| kind: SyntaxKind.ExportSpecifier; |
| parent: NamedExports; |
| propertyName?: Identifier; |
| name: Identifier; |
| } |
| type ImportOrExportSpecifier = ImportSpecifier | ExportSpecifier; |
| /** |
| * This is either an `export =` or an `export default` declaration. |
| * Unless `isExportEquals` is set, this node was parsed as an `export default`. |
| */ |
| interface ExportAssignment extends DeclarationStatement { |
| kind: SyntaxKind.ExportAssignment; |
| parent: SourceFile; |
| isExportEquals?: boolean; |
| expression: Expression; |
| } |
| interface FileReference extends TextRange { |
| fileName: string; |
| } |
| interface CheckJsDirective extends TextRange { |
| enabled: boolean; |
| } |
| type CommentKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia; |
| interface CommentRange extends TextRange { |
| hasTrailingNewLine?: boolean; |
| kind: CommentKind; |
| } |
| interface SynthesizedComment extends CommentRange { |
| text: string; |
| pos: -1; |
| end: -1; |
| } |
| interface JSDocTypeExpression extends TypeNode { |
| kind: SyntaxKind.JSDocTypeExpression; |
| type: TypeNode; |
| } |
| interface JSDocType extends TypeNode { |
| _jsDocTypeBrand: any; |
| } |
| interface JSDocAllType extends JSDocType { |
| kind: SyntaxKind.JSDocAllType; |
| } |
| interface JSDocUnknownType extends JSDocType { |
| kind: SyntaxKind.JSDocUnknownType; |
| } |
| interface JSDocNonNullableType extends JSDocType { |
| kind: SyntaxKind.JSDocNonNullableType; |
| type: TypeNode; |
| } |
| interface JSDocNullableType extends JSDocType { |
| kind: SyntaxKind.JSDocNullableType; |
| type: TypeNode; |
| } |
| interface JSDocOptionalType extends JSDocType { |
| kind: SyntaxKind.JSDocOptionalType; |
| type: TypeNode; |
| } |
| interface JSDocFunctionType extends JSDocType, SignatureDeclarationBase { |
| kind: SyntaxKind.JSDocFunctionType; |
| } |
| interface JSDocVariadicType extends JSDocType { |
| kind: SyntaxKind.JSDocVariadicType; |
| type: TypeNode; |
| } |
| type JSDocTypeReferencingNode = JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType; |
| interface JSDoc extends Node { |
| kind: SyntaxKind.JSDocComment; |
| parent: HasJSDoc; |
| tags?: NodeArray<JSDocTag>; |
| comment?: string; |
| } |
| interface JSDocTag extends Node { |
| parent: JSDoc | JSDocTypeLiteral; |
| tagName: Identifier; |
| comment?: string; |
| } |
| interface JSDocUnknownTag extends JSDocTag { |
| kind: SyntaxKind.JSDocTag; |
| } |
| /** |
| * Note that `@extends` is a synonym of `@augments`. |
| * Both tags are represented by this interface. |
| */ |
| interface JSDocAugmentsTag extends JSDocTag { |
| kind: SyntaxKind.JSDocAugmentsTag; |
| class: ExpressionWithTypeArguments & { |
| expression: Identifier | PropertyAccessEntityNameExpression; |
| }; |
| } |
| interface JSDocClassTag extends JSDocTag { |
| kind: SyntaxKind.JSDocClassTag; |
| } |
| interface JSDocEnumTag extends JSDocTag { |
| kind: SyntaxKind.JSDocEnumTag; |
| typeExpression?: JSDocTypeExpression; |
| } |
| interface JSDocThisTag extends JSDocTag { |
| kind: SyntaxKind.JSDocThisTag; |
| typeExpression?: JSDocTypeExpression; |
| } |
| interface JSDocTemplateTag extends JSDocTag { |
| kind: SyntaxKind.JSDocTemplateTag; |
| constraint: JSDocTypeExpression | undefined; |
| typeParameters: NodeArray<TypeParameterDeclaration>; |
| } |
| interface JSDocReturnTag extends JSDocTag { |
| kind: SyntaxKind.JSDocReturnTag; |
| typeExpression?: JSDocTypeExpression; |
| } |
| interface JSDocTypeTag extends JSDocTag { |
| kind: SyntaxKind.JSDocTypeTag; |
| typeExpression: JSDocTypeExpression; |
| } |
| interface JSDocTypedefTag extends JSDocTag, NamedDeclaration { |
| parent: JSDoc; |
| kind: SyntaxKind.JSDocTypedefTag; |
| fullName?: JSDocNamespaceDeclaration | Identifier; |
| name?: Identifier; |
| typeExpression?: JSDocTypeExpression | JSDocTypeLiteral; |
| } |
| interface JSDocCallbackTag extends JSDocTag, NamedDeclaration { |
| parent: JSDoc; |
| kind: SyntaxKind.JSDocCallbackTag; |
| fullName?: JSDocNamespaceDeclaration | Identifier; |
| name?: Identifier; |
| typeExpression: JSDocSignature; |
| } |
| interface JSDocSignature extends JSDocType, Declaration { |
| kind: SyntaxKind.JSDocSignature; |
| typeParameters?: ReadonlyArray<JSDocTemplateTag>; |
| parameters: ReadonlyArray<JSDocParameterTag>; |
| type: JSDocReturnTag | undefined; |
| } |
| interface JSDocPropertyLikeTag extends JSDocTag, Declaration { |
| parent: JSDoc; |
| name: EntityName; |
| typeExpression?: JSDocTypeExpression; |
| /** Whether the property name came before the type -- non-standard for JSDoc, but Typescript-like */ |
| isNameFirst: boolean; |
| isBracketed: boolean; |
| } |
| interface JSDocPropertyTag extends JSDocPropertyLikeTag { |
| kind: SyntaxKind.JSDocPropertyTag; |
| } |
| interface JSDocParameterTag extends JSDocPropertyLikeTag { |
| kind: SyntaxKind.JSDocParameterTag; |
| } |
| interface JSDocTypeLiteral extends JSDocType { |
| kind: SyntaxKind.JSDocTypeLiteral; |
| jsDocPropertyTags?: ReadonlyArray<JSDocPropertyLikeTag>; |
| /** If true, then this type literal represents an *array* of its type. */ |
| isArrayType?: boolean; |
| } |
| enum FlowFlags { |
| Unreachable = 1, |
| Start = 2, |
| BranchLabel = 4, |
| LoopLabel = 8, |
| Assignment = 16, |
| TrueCondition = 32, |
| FalseCondition = 64, |
| SwitchClause = 128, |
| ArrayMutation = 256, |
| Referenced = 512, |
| Shared = 1024, |
| PreFinally = 2048, |
| AfterFinally = 4096, |
| Label = 12, |
| Condition = 96 |
| } |
| interface FlowLock { |
| locked?: boolean; |
| } |
| interface AfterFinallyFlow extends FlowNodeBase, FlowLock { |
| antecedent: FlowNode; |
| } |
| interface PreFinallyFlow extends FlowNodeBase { |
| antecedent: FlowNode; |
| lock: FlowLock; |
| } |
| type FlowNode = AfterFinallyFlow | PreFinallyFlow | FlowStart | FlowLabel | FlowAssignment | FlowCondition | FlowSwitchClause | FlowArrayMutation; |
| interface FlowNodeBase { |
| flags: FlowFlags; |
| id?: number; |
| } |
| interface FlowStart extends FlowNodeBase { |
| container?: FunctionExpression | ArrowFunction | MethodDeclaration; |
| } |
| interface FlowLabel extends FlowNodeBase { |
| antecedents: FlowNode[] | undefined; |
| } |
| interface FlowAssignment extends FlowNodeBase { |
| node: Expression | VariableDeclaration | BindingElement; |
| antecedent: FlowNode; |
| } |
| interface FlowCondition extends FlowNodeBase { |
| expression: Expression; |
| antecedent: FlowNode; |
| } |
| interface FlowSwitchClause extends FlowNodeBase { |
| switchStatement: SwitchStatement; |
| clauseStart: number; |
| clauseEnd: number; |
| antecedent: FlowNode; |
| } |
| interface FlowArrayMutation extends FlowNodeBase { |
| node: CallExpression | BinaryExpression; |
| antecedent: FlowNode; |
| } |
| type FlowType = Type | IncompleteType; |
| interface IncompleteType { |
| flags: TypeFlags; |
| type: Type; |
| } |
| interface AmdDependency { |
| path: string; |
| name?: string; |
| } |
| interface SourceFile extends Declaration { |
| kind: SyntaxKind.SourceFile; |
| statements: NodeArray<Statement>; |
| endOfFileToken: Token<SyntaxKind.EndOfFileToken>; |
| fileName: string; |
| text: string; |
| amdDependencies: ReadonlyArray<AmdDependency>; |
| moduleName?: string; |
| referencedFiles: ReadonlyArray<FileReference>; |
| typeReferenceDirectives: ReadonlyArray<FileReference>; |
| libReferenceDirectives: ReadonlyArray<FileReference>; |
| languageVariant: LanguageVariant; |
| isDeclarationFile: boolean; |
| /** |
| * lib.d.ts should have a reference comment like |
| * |
| * /// <reference no-default-lib="true"/> |
| * |
| * If any other file has this comment, it signals not to include lib.d.ts |
| * because this containing file is intended to act as a default library. |
| */ |
| hasNoDefaultLib: boolean; |
| languageVersion: ScriptTarget; |
| } |
| interface Bundle extends Node { |
| kind: SyntaxKind.Bundle; |
| prepends: ReadonlyArray<InputFiles | UnparsedSource>; |
| sourceFiles: ReadonlyArray<SourceFile>; |
| } |
| interface InputFiles extends Node { |
| kind: SyntaxKind.InputFiles; |
| javascriptPath?: string; |
| javascriptText: string; |
| javascriptMapPath?: string; |
| javascriptMapText?: string; |
| declarationPath?: string; |
| declarationText: string; |
| declarationMapPath?: string; |
| declarationMapText?: string; |
| } |
| interface UnparsedSource extends Node { |
| kind: SyntaxKind.UnparsedSource; |
| fileName: string; |
| text: string; |
| prologues: ReadonlyArray<UnparsedPrologue>; |
| helpers: ReadonlyArray<UnscopedEmitHelper> | undefined; |
| referencedFiles: ReadonlyArray<FileReference>; |
| typeReferenceDirectives: ReadonlyArray<string> | undefined; |
| libReferenceDirectives: ReadonlyArray<FileReference>; |
| hasNoDefaultLib?: boolean; |
| sourceMapPath?: string; |
| sourceMapText?: string; |
| syntheticReferences?: ReadonlyArray<UnparsedSyntheticReference>; |
| texts: ReadonlyArray<UnparsedSourceText>; |
| } |
| type UnparsedSourceText = UnparsedPrepend | UnparsedTextLike; |
| type UnparsedNode = UnparsedPrologue | UnparsedSourceText | UnparsedSyntheticReference; |
| interface UnparsedSection extends Node { |
| kind: SyntaxKind; |
| data?: string; |
| parent: UnparsedSource; |
| } |
| interface UnparsedPrologue extends UnparsedSection { |
| kind: SyntaxKind.UnparsedPrologue; |
| data: string; |
| parent: UnparsedSource; |
| } |
| interface UnparsedPrepend extends UnparsedSection { |
| kind: SyntaxKind.UnparsedPrepend; |
| data: string; |
| parent: UnparsedSource; |
| texts: ReadonlyArray<UnparsedTextLike>; |
| } |
| interface UnparsedTextLike extends UnparsedSection { |
| kind: SyntaxKind.UnparsedText | SyntaxKind.UnparsedInternalText; |
| parent: UnparsedSource; |
| } |
| interface UnparsedSyntheticReference extends UnparsedSection { |
| kind: SyntaxKind.UnparsedSyntheticReference; |
| parent: UnparsedSource; |
| } |
| interface JsonSourceFile extends SourceFile { |
| statements: NodeArray<JsonObjectExpressionStatement>; |
| } |
| interface TsConfigSourceFile extends JsonSourceFile { |
| extendedSourceFiles?: string[]; |
| } |
| interface JsonMinusNumericLiteral extends PrefixUnaryExpression { |
| kind: SyntaxKind.PrefixUnaryExpression; |
| operator: SyntaxKind.MinusToken; |
| operand: NumericLiteral; |
| } |
| interface JsonObjectExpressionStatement extends ExpressionStatement { |
| expression: ObjectLiteralExpression | ArrayLiteralExpression | JsonMinusNumericLiteral | NumericLiteral | StringLiteral | BooleanLiteral | NullLiteral; |
| } |
| interface ScriptReferenceHost { |
| getCompilerOptions(): CompilerOptions; |
| getSourceFile(fileName: string): SourceFile | undefined; |
| getSourceFileByPath(path: Path): SourceFile | undefined; |
| getCurrentDirectory(): string; |
| } |
| interface ParseConfigHost { |
| useCaseSensitiveFileNames: boolean; |
| readDirectory(rootDir: string, extensions: ReadonlyArray<string>, excludes: ReadonlyArray<string> | undefined, includes: ReadonlyArray<string>, depth?: number): ReadonlyArray<string>; |
| /** |
| * Gets a value indicating whether the specified path exists and is a file. |
| * @param path The path to test. |
| */ |
| fileExists(path: string): boolean; |
| readFile(path: string): string | undefined; |
| trace?(s: string): void; |
| } |
| /** |
| * Branded string for keeping track of when we've turned an ambiguous path |
| * specified like "./blah" to an absolute path to an actual |
| * tsconfig file, e.g. "/root/blah/tsconfig.json" |
| */ |
| type ResolvedConfigFileName = string & { |
| _isResolvedConfigFileName: never; |
| }; |
| type WriteFileCallback = (fileName: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void, sourceFiles?: ReadonlyArray<SourceFile>) => void; |
| class OperationCanceledException { |
| } |
| interface CancellationToken { |
| isCancellationRequested(): boolean; |
| /** @throws OperationCanceledException if isCancellationRequested is true */ |
| throwIfCancellationRequested(): void; |
| } |
| interface Program extends ScriptReferenceHost { |
| /** |
| * Get a list of root file names that were passed to a 'createProgram' |
| */ |
| getRootFileNames(): ReadonlyArray<string>; |
| /** |
| * Get a list of files in the program |
| */ |
| getSourceFiles(): ReadonlyArray<SourceFile>; |
| /** |
| * Emits the JavaScript and declaration files. If targetSourceFile is not specified, then |
| * the JavaScript and declaration files will be produced for all the files in this program. |
| * If targetSourceFile is specified, then only the JavaScript and declaration for that |
| * specific file will be generated. |
| * |
| * If writeFile is not specified then the writeFile callback from the compiler host will be |
| * used for writing the JavaScript and declaration files. Otherwise, the writeFile parameter |
| * will be invoked when writing the JavaScript and declaration files. |
| */ |
| emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; |
| getOptionsDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| getGlobalDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<DiagnosticWithLocation>; |
| /** The first time this is called, it will return global diagnostics (no location). */ |
| getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<DiagnosticWithLocation>; |
| getConfigFileParsingDiagnostics(): ReadonlyArray<Diagnostic>; |
| /** |
| * Gets a type checker that can be used to semantically analyze source files in the program. |
| */ |
| getTypeChecker(): TypeChecker; |
| isSourceFileFromExternalLibrary(file: SourceFile): boolean; |
| isSourceFileDefaultLibrary(file: SourceFile): boolean; |
| getProjectReferences(): ReadonlyArray<ProjectReference> | undefined; |
| getResolvedProjectReferences(): ReadonlyArray<ResolvedProjectReference | undefined> | undefined; |
| } |
| interface ResolvedProjectReference { |
| commandLine: ParsedCommandLine; |
| sourceFile: SourceFile; |
| references?: ReadonlyArray<ResolvedProjectReference | undefined>; |
| } |
| type CustomTransformerFactory = (context: TransformationContext) => CustomTransformer; |
| interface CustomTransformer { |
| transformSourceFile(node: SourceFile): SourceFile; |
| transformBundle(node: Bundle): Bundle; |
| } |
| interface CustomTransformers { |
| /** Custom transformers to evaluate before built-in .js transformations. */ |
| before?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; |
| /** Custom transformers to evaluate after built-in .js transformations. */ |
| after?: (TransformerFactory<SourceFile> | CustomTransformerFactory)[]; |
| /** Custom transformers to evaluate after built-in .d.ts transformations. */ |
| afterDeclarations?: (TransformerFactory<Bundle | SourceFile> | CustomTransformerFactory)[]; |
| } |
| interface SourceMapSpan { |
| /** Line number in the .js file. */ |
| emittedLine: number; |
| /** Column number in the .js file. */ |
| emittedColumn: number; |
| /** Line number in the .ts file. */ |
| sourceLine: number; |
| /** Column number in the .ts file. */ |
| sourceColumn: number; |
| /** Optional name (index into names array) associated with this span. */ |
| nameIndex?: number; |
| /** .ts file (index into sources array) associated with this span */ |
| sourceIndex: number; |
| } |
| /** Return code used by getEmitOutput function to indicate status of the function */ |
| enum ExitStatus { |
| Success = 0, |
| DiagnosticsPresent_OutputsSkipped = 1, |
| DiagnosticsPresent_OutputsGenerated = 2 |
| } |
| interface EmitResult { |
| emitSkipped: boolean; |
| /** Contains declaration emit diagnostics */ |
| diagnostics: ReadonlyArray<Diagnostic>; |
| emittedFiles?: string[]; |
| } |
| interface TypeChecker { |
| getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; |
| getDeclaredTypeOfSymbol(symbol: Symbol): Type; |
| getPropertiesOfType(type: Type): Symbol[]; |
| getPropertyOfType(type: Type, propertyName: string): Symbol | undefined; |
| getIndexInfoOfType(type: Type, kind: IndexKind): IndexInfo | undefined; |
| getSignaturesOfType(type: Type, kind: SignatureKind): ReadonlyArray<Signature>; |
| getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined; |
| getBaseTypes(type: InterfaceType): BaseType[]; |
| getBaseTypeOfLiteralType(type: Type): Type; |
| getWidenedType(type: Type): Type; |
| getReturnTypeOfSignature(signature: Signature): Type; |
| getNullableType(type: Type, flags: TypeFlags): Type; |
| getNonNullableType(type: Type): Type; |
| /** Note that the resulting nodes cannot be checked. */ |
| typeToTypeNode(type: Type, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): TypeNode | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| signatureToSignatureDeclaration(signature: Signature, kind: SyntaxKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): (SignatureDeclaration & { |
| typeArguments?: NodeArray<TypeNode>; |
| }) | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| indexInfoToIndexSignatureDeclaration(indexInfo: IndexInfo, kind: IndexKind, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): IndexSignatureDeclaration | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| symbolToEntityName(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): EntityName | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| symbolToExpression(symbol: Symbol, meaning: SymbolFlags, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): Expression | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| symbolToTypeParameterDeclarations(symbol: Symbol, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): NodeArray<TypeParameterDeclaration> | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| symbolToParameterDeclaration(symbol: Symbol, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): ParameterDeclaration | undefined; |
| /** Note that the resulting nodes cannot be checked. */ |
| typeParameterToDeclaration(parameter: TypeParameter, enclosingDeclaration?: Node, flags?: NodeBuilderFlags): TypeParameterDeclaration | undefined; |
| getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[]; |
| getSymbolAtLocation(node: Node): Symbol | undefined; |
| getSymbolsOfParameterPropertyDeclaration(parameter: ParameterDeclaration, parameterName: string): Symbol[]; |
| /** |
| * The function returns the value (local variable) symbol of an identifier in the short-hand property assignment. |
| * This is necessary as an identifier in short-hand property assignment can contains two meaning: property name and property value. |
| */ |
| getShorthandAssignmentValueSymbol(location: Node): Symbol | undefined; |
| getExportSpecifierLocalTargetSymbol(location: ExportSpecifier): Symbol | undefined; |
| /** |
| * If a symbol is a local symbol with an associated exported symbol, returns the exported symbol. |
| * Otherwise returns its input. |
| * For example, at `export type T = number;`: |
| * - `getSymbolAtLocation` at the location `T` will return the exported symbol for `T`. |
| * - But the result of `getSymbolsInScope` will contain the *local* symbol for `T`, not the exported symbol. |
| * - Calling `getExportSymbolOfSymbol` on that local symbol will return the exported symbol. |
| */ |
| getExportSymbolOfSymbol(symbol: Symbol): Symbol; |
| getPropertySymbolOfDestructuringAssignment(location: Identifier): Symbol | undefined; |
| getTypeOfAssignmentPattern(pattern: AssignmentPattern): Type; |
| getTypeAtLocation(node: Node): Type; |
| getTypeFromTypeNode(node: TypeNode): Type; |
| signatureToString(signature: Signature, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): string; |
| typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; |
| symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): string; |
| typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; |
| getFullyQualifiedName(symbol: Symbol): string; |
| getAugmentedPropertiesOfType(type: Type): Symbol[]; |
| getRootSymbols(symbol: Symbol): ReadonlyArray<Symbol>; |
| getContextualType(node: Expression): Type | undefined; |
| /** |
| * returns unknownSignature in the case of an error. |
| * returns undefined if the node is not valid. |
| * @param argumentCount Apparent number of arguments, passed in case of a possibly incomplete call. This should come from an ArgumentListInfo. See `signatureHelp.ts`. |
| */ |
| getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; |
| getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature | undefined; |
| isImplementationOfOverload(node: SignatureDeclaration): boolean | undefined; |
| isUndefinedSymbol(symbol: Symbol): boolean; |
| isArgumentsSymbol(symbol: Symbol): boolean; |
| isUnknownSymbol(symbol: Symbol): boolean; |
| getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): string | number | undefined; |
| isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName | ImportTypeNode, propertyName: string): boolean; |
| /** Follow all aliases to get the original symbol. */ |
| getAliasedSymbol(symbol: Symbol): Symbol; |
| getExportsOfModule(moduleSymbol: Symbol): Symbol[]; |
| getJsxIntrinsicTagNamesAt(location: Node): Symbol[]; |
| isOptionalParameter(node: ParameterDeclaration): boolean; |
| getAmbientModules(): Symbol[]; |
| tryGetMemberInModuleExports(memberName: string, moduleSymbol: Symbol): Symbol | undefined; |
| getApparentType(type: Type): Type; |
| getBaseConstraintOfType(type: Type): Type | undefined; |
| getDefaultFromTypeParameter(type: Type): Type | undefined; |
| /** |
| * Depending on the operation performed, it may be appropriate to throw away the checker |
| * if the cancellation token is triggered. Typically, if it is used for error checking |
| * and the operation is cancelled, then it should be discarded, otherwise it is safe to keep. |
| */ |
| runWithCancellationToken<T>(token: CancellationToken, cb: (checker: TypeChecker) => T): T; |
| } |
| enum NodeBuilderFlags { |
| None = 0, |
| NoTruncation = 1, |
| WriteArrayAsGenericType = 2, |
| GenerateNamesForShadowedTypeParams = 4, |
| UseStructuralFallback = 8, |
| ForbidIndexedAccessSymbolReferences = 16, |
| WriteTypeArgumentsOfSignature = 32, |
| UseFullyQualifiedType = 64, |
| UseOnlyExternalAliasing = 128, |
| SuppressAnyReturnType = 256, |
| WriteTypeParametersInQualifiedName = 512, |
| MultilineObjectLiterals = 1024, |
| WriteClassExpressionAsTypeLiteral = 2048, |
| UseTypeOfFunction = 4096, |
| OmitParameterModifiers = 8192, |
| UseAliasDefinedOutsideCurrentScope = 16384, |
| AllowThisInObjectLiteral = 32768, |
| AllowQualifedNameInPlaceOfIdentifier = 65536, |
| AllowAnonymousIdentifier = 131072, |
| AllowEmptyUnionOrIntersection = 262144, |
| AllowEmptyTuple = 524288, |
| AllowUniqueESSymbolType = 1048576, |
| AllowEmptyIndexInfoType = 2097152, |
| AllowNodeModulesRelativePaths = 67108864, |
| IgnoreErrors = 70221824, |
| InObjectTypeLiteral = 4194304, |
| InTypeAlias = 8388608, |
| InInitialEntityName = 16777216, |
| InReverseMappedType = 33554432 |
| } |
| enum TypeFormatFlags { |
| None = 0, |
| NoTruncation = 1, |
| WriteArrayAsGenericType = 2, |
| UseStructuralFallback = 8, |
| WriteTypeArgumentsOfSignature = 32, |
| UseFullyQualifiedType = 64, |
| SuppressAnyReturnType = 256, |
| MultilineObjectLiterals = 1024, |
| WriteClassExpressionAsTypeLiteral = 2048, |
| UseTypeOfFunction = 4096, |
| OmitParameterModifiers = 8192, |
| UseAliasDefinedOutsideCurrentScope = 16384, |
| AllowUniqueESSymbolType = 1048576, |
| AddUndefined = 131072, |
| WriteArrowStyleSignature = 262144, |
| InArrayType = 524288, |
| InElementType = 2097152, |
| InFirstTypeArgument = 4194304, |
| InTypeAlias = 8388608, |
| /** @deprecated */ WriteOwnNameForAnyLike = 0, |
| NodeBuilderFlagsMask = 9469291 |
| } |
| enum SymbolFormatFlags { |
| None = 0, |
| WriteTypeParametersOrArguments = 1, |
| UseOnlyExternalAliasing = 2, |
| AllowAnyNodeKind = 4, |
| UseAliasDefinedOutsideCurrentScope = 8, |
| } |
| enum TypePredicateKind { |
| This = 0, |
| Identifier = 1 |
| } |
| interface TypePredicateBase { |
| kind: TypePredicateKind; |
| type: Type; |
| } |
| interface ThisTypePredicate extends TypePredicateBase { |
| kind: TypePredicateKind.This; |
| } |
| interface IdentifierTypePredicate extends TypePredicateBase { |
| kind: TypePredicateKind.Identifier; |
| parameterName: string; |
| parameterIndex: number; |
| } |
| type TypePredicate = IdentifierTypePredicate | ThisTypePredicate; |
| enum SymbolFlags { |
| None = 0, |
| FunctionScopedVariable = 1, |
| BlockScopedVariable = 2, |
| Property = 4, |
| EnumMember = 8, |
| Function = 16, |
| Class = 32, |
| Interface = 64, |
| ConstEnum = 128, |
| RegularEnum = 256, |
| ValueModule = 512, |
| NamespaceModule = 1024, |
| TypeLiteral = 2048, |
| ObjectLiteral = 4096, |
| Method = 8192, |
| Constructor = 16384, |
| GetAccessor = 32768, |
| SetAccessor = 65536, |
| Signature = 131072, |
| TypeParameter = 262144, |
| TypeAlias = 524288, |
| ExportValue = 1048576, |
| Alias = 2097152, |
| Prototype = 4194304, |
| ExportStar = 8388608, |
| Optional = 16777216, |
| Transient = 33554432, |
| Assignment = 67108864, |
| ModuleExports = 134217728, |
| Enum = 384, |
| Variable = 3, |
| Value = 67220415, |
| Type = 67897832, |
| Namespace = 1920, |
| Module = 1536, |
| Accessor = 98304, |
| FunctionScopedVariableExcludes = 67220414, |
| BlockScopedVariableExcludes = 67220415, |
| ParameterExcludes = 67220415, |
| PropertyExcludes = 0, |
| EnumMemberExcludes = 68008959, |
| FunctionExcludes = 67219887, |
| ClassExcludes = 68008383, |
| InterfaceExcludes = 67897736, |
| RegularEnumExcludes = 68008191, |
| ConstEnumExcludes = 68008831, |
| ValueModuleExcludes = 110735, |
| NamespaceModuleExcludes = 0, |
| MethodExcludes = 67212223, |
| GetAccessorExcludes = 67154879, |
| SetAccessorExcludes = 67187647, |
| TypeParameterExcludes = 67635688, |
| TypeAliasExcludes = 67897832, |
| AliasExcludes = 2097152, |
| ModuleMember = 2623475, |
| ExportHasLocal = 944, |
| BlockScoped = 418, |
| PropertyOrAccessor = 98308, |
| ClassMember = 106500, |
| } |
| interface Symbol { |
| flags: SymbolFlags; |
| escapedName: __String; |
| declarations: Declaration[]; |
| valueDeclaration: Declaration; |
| members?: SymbolTable; |
| exports?: SymbolTable; |
| globalExports?: SymbolTable; |
| } |
| enum InternalSymbolName { |
| Call = "__call", |
| Constructor = "__constructor", |
| New = "__new", |
| Index = "__index", |
| ExportStar = "__export", |
| Global = "__global", |
| Missing = "__missing", |
| Type = "__type", |
| Object = "__object", |
| JSXAttributes = "__jsxAttributes", |
| Class = "__class", |
| Function = "__function", |
| Computed = "__computed", |
| Resolving = "__resolving__", |
| ExportEquals = "export=", |
| Default = "default", |
| This = "this" |
| } |
| /** |
| * This represents a string whose leading underscore have been escaped by adding extra leading underscores. |
| * The shape of this brand is rather unique compared to others we've used. |
| * Instead of just an intersection of a string and an object, it is that union-ed |
| * with an intersection of void and an object. This makes it wholly incompatible |
| * with a normal string (which is good, it cannot be misused on assignment or on usage), |
| * while still being comparable with a normal string via === (also good) and castable from a string. |
| */ |
| type __String = (string & { |
| __escapedIdentifier: void; |
| }) | (void & { |
| __escapedIdentifier: void; |
| }) | InternalSymbolName; |
| /** ReadonlyMap where keys are `__String`s. */ |
| interface ReadonlyUnderscoreEscapedMap<T> { |
| get(key: __String): T | undefined; |
| has(key: __String): boolean; |
| forEach(action: (value: T, key: __String) => void): void; |
| readonly size: number; |
| keys(): Iterator<__String>; |
| values(): Iterator<T>; |
| entries(): Iterator<[__String, T]>; |
| } |
| /** Map where keys are `__String`s. */ |
| interface UnderscoreEscapedMap<T> extends ReadonlyUnderscoreEscapedMap<T> { |
| set(key: __String, value: T): this; |
| delete(key: __String): boolean; |
| clear(): void; |
| } |
| /** SymbolTable based on ES6 Map interface. */ |
| type SymbolTable = UnderscoreEscapedMap<Symbol>; |
| enum TypeFlags { |
| Any = 1, |
| Unknown = 2, |
| String = 4, |
| Number = 8, |
| Boolean = 16, |
| Enum = 32, |
| BigInt = 64, |
| StringLiteral = 128, |
| NumberLiteral = 256, |
| BooleanLiteral = 512, |
| EnumLiteral = 1024, |
| BigIntLiteral = 2048, |
| ESSymbol = 4096, |
| UniqueESSymbol = 8192, |
| Void = 16384, |
| Undefined = 32768, |
| Null = 65536, |
| Never = 131072, |
| TypeParameter = 262144, |
| Object = 524288, |
| Union = 1048576, |
| Intersection = 2097152, |
| Index = 4194304, |
| IndexedAccess = 8388608, |
| Conditional = 16777216, |
| Substitution = 33554432, |
| NonPrimitive = 67108864, |
| Literal = 2944, |
| Unit = 109440, |
| StringOrNumberLiteral = 384, |
| PossiblyFalsy = 117724, |
| StringLike = 132, |
| NumberLike = 296, |
| BigIntLike = 2112, |
| BooleanLike = 528, |
| EnumLike = 1056, |
| ESSymbolLike = 12288, |
| VoidLike = 49152, |
| UnionOrIntersection = 3145728, |
| StructuredType = 3670016, |
| TypeVariable = 8650752, |
| InstantiableNonPrimitive = 58982400, |
| InstantiablePrimitive = 4194304, |
| Instantiable = 63176704, |
| StructuredOrInstantiable = 66846720, |
| Narrowable = 133970943, |
| NotUnionOrUnit = 67637251, |
| } |
| type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression; |
| interface Type { |
| flags: TypeFlags; |
| symbol: Symbol; |
| pattern?: DestructuringPattern; |
| aliasSymbol?: Symbol; |
| aliasTypeArguments?: ReadonlyArray<Type>; |
| } |
| interface LiteralType extends Type { |
| value: string | number | PseudoBigInt; |
| freshType: LiteralType; |
| regularType: LiteralType; |
| } |
| interface UniqueESSymbolType extends Type { |
| symbol: Symbol; |
| escapedName: __String; |
| } |
| interface StringLiteralType extends LiteralType { |
| value: string; |
| } |
| interface NumberLiteralType extends LiteralType { |
| value: number; |
| } |
| interface BigIntLiteralType extends LiteralType { |
| value: PseudoBigInt; |
| } |
| interface EnumType extends Type { |
| } |
| enum ObjectFlags { |
| Class = 1, |
| Interface = 2, |
| Reference = 4, |
| Tuple = 8, |
| Anonymous = 16, |
| Mapped = 32, |
| Instantiated = 64, |
| ObjectLiteral = 128, |
| EvolvingArray = 256, |
| ObjectLiteralPatternWithComputedProperties = 512, |
| ContainsSpread = 1024, |
| ReverseMapped = 2048, |
| JsxAttributes = 4096, |
| MarkerType = 8192, |
| JSLiteral = 16384, |
| FreshLiteral = 32768, |
| ClassOrInterface = 3, |
| } |
| interface ObjectType extends Type { |
| objectFlags: ObjectFlags; |
| } |
| /** Class and interface types (ObjectFlags.Class and ObjectFlags.Interface). */ |
| interface InterfaceType extends ObjectType { |
| typeParameters: TypeParameter[] | undefined; |
| outerTypeParameters: TypeParameter[] | undefined; |
| localTypeParameters: TypeParameter[] | undefined; |
| thisType: TypeParameter | undefined; |
| } |
| type BaseType = ObjectType | IntersectionType; |
| interface InterfaceTypeWithDeclaredMembers extends InterfaceType { |
| declaredProperties: Symbol[]; |
| declaredCallSignatures: Signature[]; |
| declaredConstructSignatures: Signature[]; |
| declaredStringIndexInfo?: IndexInfo; |
| declaredNumberIndexInfo?: IndexInfo; |
| } |
| /** |
| * Type references (ObjectFlags.Reference). When a class or interface has type parameters or |
| * a "this" type, references to the class or interface are made using type references. The |
| * typeArguments property specifies the types to substitute for the type parameters of the |
| * class or interface and optionally includes an extra element that specifies the type to |
| * substitute for "this" in the resulting instantiation. When no extra argument is present, |
| * the type reference itself is substituted for "this". The typeArguments property is undefined |
| * if the class or interface has no type parameters and the reference isn't specifying an |
| * explicit "this" argument. |
| */ |
| interface TypeReference extends ObjectType { |
| target: GenericType; |
| typeArguments?: ReadonlyArray<Type>; |
| } |
| interface GenericType extends InterfaceType, TypeReference { |
| } |
| interface TupleType extends GenericType { |
| minLength: number; |
| hasRestElement: boolean; |
| readonly: boolean; |
| associatedNames?: __String[]; |
| } |
| interface TupleTypeReference extends TypeReference { |
| target: TupleType; |
| } |
| interface UnionOrIntersectionType extends Type { |
| types: Type[]; |
| } |
| interface UnionType extends UnionOrIntersectionType { |
| } |
| interface IntersectionType extends UnionOrIntersectionType { |
| } |
| type StructuredType = ObjectType | UnionType | IntersectionType; |
| interface EvolvingArrayType extends ObjectType { |
| elementType: Type; |
| finalArrayType?: Type; |
| } |
| interface InstantiableType extends Type { |
| } |
| interface TypeParameter extends InstantiableType { |
| } |
| interface IndexedAccessType extends InstantiableType { |
| objectType: Type; |
| indexType: Type; |
| constraint?: Type; |
| simplifiedForReading?: Type; |
| simplifiedForWriting?: Type; |
| } |
| type TypeVariable = TypeParameter | IndexedAccessType; |
| interface IndexType extends InstantiableType { |
| type: InstantiableType | UnionOrIntersectionType; |
| } |
| interface ConditionalRoot { |
| node: ConditionalTypeNode; |
| checkType: Type; |
| extendsType: Type; |
| trueType: Type; |
| falseType: Type; |
| isDistributive: boolean; |
| inferTypeParameters?: TypeParameter[]; |
| outerTypeParameters?: TypeParameter[]; |
| instantiations?: Map<Type>; |
| aliasSymbol?: Symbol; |
| aliasTypeArguments?: Type[]; |
| } |
| interface ConditionalType extends InstantiableType { |
| root: ConditionalRoot; |
| checkType: Type; |
| extendsType: Type; |
| resolvedTrueType: Type; |
| resolvedFalseType: Type; |
| } |
| interface SubstitutionType extends InstantiableType { |
| typeVariable: TypeVariable; |
| substitute: Type; |
| } |
| enum SignatureKind { |
| Call = 0, |
| Construct = 1 |
| } |
| interface Signature { |
| declaration?: SignatureDeclaration | JSDocSignature; |
| typeParameters?: ReadonlyArray<TypeParameter>; |
| parameters: ReadonlyArray<Symbol>; |
| } |
| enum IndexKind { |
| String = 0, |
| Number = 1 |
| } |
| interface IndexInfo { |
| type: Type; |
| isReadonly: boolean; |
| declaration?: IndexSignatureDeclaration; |
| } |
| enum InferencePriority { |
| NakedTypeVariable = 1, |
| HomomorphicMappedType = 2, |
| PartialHomomorphicMappedType = 4, |
| MappedTypeConstraint = 8, |
| ReturnType = 16, |
| LiteralKeyof = 32, |
| NoConstraints = 64, |
| AlwaysStrict = 128, |
| PriorityImpliesCombination = 56 |
| } |
| /** @deprecated Use FileExtensionInfo instead. */ |
| type JsFileExtensionInfo = FileExtensionInfo; |
| interface FileExtensionInfo { |
| extension: string; |
| isMixedContent: boolean; |
| scriptKind?: ScriptKind; |
| } |
| interface DiagnosticMessage { |
| key: string; |
| category: DiagnosticCategory; |
| code: number; |
| message: string; |
| reportsUnnecessary?: {}; |
| } |
| /** |
| * A linked list of formatted diagnostic messages to be used as part of a multiline message. |
| * It is built from the bottom up, leaving the head to be the "main" diagnostic. |
| * While it seems that DiagnosticMessageChain is structurally similar to DiagnosticMessage, |
| * the difference is that messages are all preformatted in DMC. |
| */ |
| interface DiagnosticMessageChain { |
| messageText: string; |
| category: DiagnosticCategory; |
| code: number; |
| next?: DiagnosticMessageChain; |
| } |
| interface Diagnostic extends DiagnosticRelatedInformation { |
| /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ |
| reportsUnnecessary?: {}; |
| source?: string; |
| relatedInformation?: DiagnosticRelatedInformation[]; |
| } |
| interface DiagnosticRelatedInformation { |
| category: DiagnosticCategory; |
| code: number; |
| file: SourceFile | undefined; |
| start: number | undefined; |
| length: number | undefined; |
| messageText: string | DiagnosticMessageChain; |
| } |
| interface DiagnosticWithLocation extends Diagnostic { |
| file: SourceFile; |
| start: number; |
| length: number; |
| } |
| enum DiagnosticCategory { |
| Warning = 0, |
| Error = 1, |
| Suggestion = 2, |
| Message = 3 |
| } |
| enum ModuleResolutionKind { |
| Classic = 1, |
| NodeJs = 2 |
| } |
| interface PluginImport { |
| name: string; |
| } |
| interface ProjectReference { |
| /** A normalized path on disk */ |
| path: string; |
| /** The path as the user originally wrote it */ |
| originalPath?: string; |
| /** True if the output of this reference should be prepended to the output of this project. Only valid for --outFile compilations */ |
| prepend?: boolean; |
| /** True if it is intended that this reference form a circularity */ |
| circular?: boolean; |
| } |
| type CompilerOptionsValue = string | number | boolean | (string | number)[] | string[] | MapLike<string[]> | PluginImport[] | ProjectReference[] | null | undefined; |
| interface CompilerOptions { |
| allowJs?: boolean; |
| allowSyntheticDefaultImports?: boolean; |
| allowUmdGlobalAccess?: boolean; |
| allowUnreachableCode?: boolean; |
| allowUnusedLabels?: boolean; |
| alwaysStrict?: boolean; |
| baseUrl?: string; |
| charset?: string; |
| checkJs?: boolean; |
| declaration?: boolean; |
| declarationMap?: boolean; |
| emitDeclarationOnly?: boolean; |
| declarationDir?: string; |
| disableSizeLimit?: boolean; |
| downlevelIteration?: boolean; |
| emitBOM?: boolean; |
| emitDecoratorMetadata?: boolean; |
| experimentalDecorators?: boolean; |
| forceConsistentCasingInFileNames?: boolean; |
| importHelpers?: boolean; |
| inlineSourceMap?: boolean; |
| inlineSources?: boolean; |
| isolatedModules?: boolean; |
| jsx?: JsxEmit; |
| keyofStringsOnly?: boolean; |
| lib?: string[]; |
| locale?: string; |
| mapRoot?: string; |
| maxNodeModuleJsDepth?: number; |
| module?: ModuleKind; |
| moduleResolution?: ModuleResolutionKind; |
| newLine?: NewLineKind; |
| noEmit?: boolean; |
| noEmitHelpers?: boolean; |
| noEmitOnError?: boolean; |
| noErrorTruncation?: boolean; |
| noFallthroughCasesInSwitch?: boolean; |
| noImplicitAny?: boolean; |
| noImplicitReturns?: boolean; |
| noImplicitThis?: boolean; |
| noStrictGenericChecks?: boolean; |
| noUnusedLocals?: boolean; |
| noUnusedParameters?: boolean; |
| noImplicitUseStrict?: boolean; |
| noLib?: boolean; |
| noResolve?: boolean; |
| out?: string; |
| outDir?: string; |
| outFile?: string; |
| paths?: MapLike<string[]>; |
| preserveConstEnums?: boolean; |
| preserveSymlinks?: boolean; |
| project?: string; |
| reactNamespace?: string; |
| jsxFactory?: string; |
| composite?: boolean; |
| incremental?: boolean; |
| tsBuildInfoFile?: string; |
| removeComments?: boolean; |
| rootDir?: string; |
| rootDirs?: string[]; |
| skipLibCheck?: boolean; |
| skipDefaultLibCheck?: boolean; |
| sourceMap?: boolean; |
| sourceRoot?: string; |
| strict?: boolean; |
| strictFunctionTypes?: boolean; |
| strictBindCallApply?: boolean; |
| strictNullChecks?: boolean; |
| strictPropertyInitialization?: boolean; |
| stripInternal?: boolean; |
| suppressExcessPropertyErrors?: boolean; |
| suppressImplicitAnyIndexErrors?: boolean; |
| target?: ScriptTarget; |
| traceResolution?: boolean; |
| resolveJsonModule?: boolean; |
| types?: string[]; |
| /** Paths used to compute primary types search locations */ |
| typeRoots?: string[]; |
| esModuleInterop?: boolean; |
| [option: string]: CompilerOptionsValue | TsConfigSourceFile | undefined; |
| } |
| interface TypeAcquisition { |
| enableAutoDiscovery?: boolean; |
| enable?: boolean; |
| include?: string[]; |
| exclude?: string[]; |
| [option: string]: string[] | boolean | undefined; |
| } |
| enum ModuleKind { |
| None = 0, |
| CommonJS = 1, |
| AMD = 2, |
| UMD = 3, |
| System = 4, |
| ES2015 = 5, |
| ESNext = 6 |
| } |
| enum JsxEmit { |
| None = 0, |
| Preserve = 1, |
| React = 2, |
| ReactNative = 3 |
| } |
| enum NewLineKind { |
| CarriageReturnLineFeed = 0, |
| LineFeed = 1 |
| } |
| interface LineAndCharacter { |
| /** 0-based. */ |
| line: number; |
| character: number; |
| } |
| enum ScriptKind { |
| Unknown = 0, |
| JS = 1, |
| JSX = 2, |
| TS = 3, |
| TSX = 4, |
| External = 5, |
| JSON = 6, |
| /** |
| * Used on extensions that doesn't define the ScriptKind but the content defines it. |
| * Deferred extensions are going to be included in all project contexts. |
| */ |
| Deferred = 7 |
| } |
| enum ScriptTarget { |
| ES3 = 0, |
| ES5 = 1, |
| ES2015 = 2, |
| ES2016 = 3, |
| ES2017 = 4, |
| ES2018 = 5, |
| ES2019 = 6, |
| ES2020 = 7, |
| ESNext = 8, |
| JSON = 100, |
| Latest = 8 |
| } |
| enum LanguageVariant { |
| Standard = 0, |
| JSX = 1 |
| } |
| /** Either a parsed command line or a parsed tsconfig.json */ |
| interface ParsedCommandLine { |
| options: CompilerOptions; |
| typeAcquisition?: TypeAcquisition; |
| fileNames: string[]; |
| projectReferences?: ReadonlyArray<ProjectReference>; |
| raw?: any; |
| errors: Diagnostic[]; |
| wildcardDirectories?: MapLike<WatchDirectoryFlags>; |
| compileOnSave?: boolean; |
| } |
| enum WatchDirectoryFlags { |
| None = 0, |
| Recursive = 1 |
| } |
| interface ExpandResult { |
| fileNames: string[]; |
| wildcardDirectories: MapLike<WatchDirectoryFlags>; |
| } |
| interface CreateProgramOptions { |
| rootNames: ReadonlyArray<string>; |
| options: CompilerOptions; |
| projectReferences?: ReadonlyArray<ProjectReference>; |
| host?: CompilerHost; |
| oldProgram?: Program; |
| configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>; |
| } |
| interface ModuleResolutionHost { |
| fileExists(fileName: string): boolean; |
| readFile(fileName: string): string | undefined; |
| trace?(s: string): void; |
| directoryExists?(directoryName: string): boolean; |
| /** |
| * Resolve a symbolic link. |
| * @see https://nodejs.org/api/fs.html#fs_fs_realpathsync_path_options |
| */ |
| realpath?(path: string): string; |
| getCurrentDirectory?(): string; |
| getDirectories?(path: string): string[]; |
| } |
| /** |
| * Represents the result of module resolution. |
| * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. |
| * The Program will then filter results based on these flags. |
| * |
| * Prefer to return a `ResolvedModuleFull` so that the file type does not have to be inferred. |
| */ |
| interface ResolvedModule { |
| /** Path of the file the module was resolved to. */ |
| resolvedFileName: string; |
| /** True if `resolvedFileName` comes from `node_modules`. */ |
| isExternalLibraryImport?: boolean; |
| } |
| /** |
| * ResolvedModule with an explicitly provided `extension` property. |
| * Prefer this over `ResolvedModule`. |
| * If changing this, remember to change `moduleResolutionIsEqualTo`. |
| */ |
| interface ResolvedModuleFull extends ResolvedModule { |
| /** |
| * Extension of resolvedFileName. This must match what's at the end of resolvedFileName. |
| * This is optional for backwards-compatibility, but will be added if not provided. |
| */ |
| extension: Extension; |
| packageId?: PackageId; |
| } |
| /** |
| * Unique identifier with a package name and version. |
| * If changing this, remember to change `packageIdIsEqual`. |
| */ |
| interface PackageId { |
| /** |
| * Name of the package. |
| * Should not include `@types`. |
| * If accessing a non-index file, this should include its name e.g. "foo/bar". |
| */ |
| name: string; |
| /** |
| * Name of a submodule within this package. |
| * May be "". |
| */ |
| subModuleName: string; |
| /** Version of the package, e.g. "1.2.3" */ |
| version: string; |
| } |
| enum Extension { |
| Ts = ".ts", |
| Tsx = ".tsx", |
| Dts = ".d.ts", |
| Js = ".js", |
| Jsx = ".jsx", |
| Json = ".json", |
| TsBuildInfo = ".tsbuildinfo" |
| } |
| interface ResolvedModuleWithFailedLookupLocations { |
| readonly resolvedModule: ResolvedModuleFull | undefined; |
| } |
| interface ResolvedTypeReferenceDirective { |
| primary: boolean; |
| resolvedFileName: string | undefined; |
| packageId?: PackageId; |
| /** True if `resolvedFileName` comes from `node_modules`. */ |
| isExternalLibraryImport?: boolean; |
| } |
| interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations { |
| readonly resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined; |
| readonly failedLookupLocations: ReadonlyArray<string>; |
| } |
| interface CompilerHost extends ModuleResolutionHost { |
| getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; |
| getSourceFileByPath?(fileName: string, path: Path, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; |
| getCancellationToken?(): CancellationToken; |
| getDefaultLibFileName(options: CompilerOptions): string; |
| getDefaultLibLocation?(): string; |
| writeFile: WriteFileCallback; |
| getCurrentDirectory(): string; |
| getCanonicalFileName(fileName: string): string; |
| useCaseSensitiveFileNames(): boolean; |
| getNewLine(): string; |
| readDirectory?(rootDir: string, extensions: ReadonlyArray<string>, excludes: ReadonlyArray<string> | undefined, includes: ReadonlyArray<string>, depth?: number): string[]; |
| resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference): (ResolvedModule | undefined)[]; |
| /** |
| * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files |
| */ |
| resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[]; |
| getEnvironmentVariable?(name: string): string | undefined; |
| createHash?(data: string): string; |
| getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; |
| } |
| interface SourceMapRange extends TextRange { |
| source?: SourceMapSource; |
| } |
| interface SourceMapSource { |
| fileName: string; |
| text: string; |
| skipTrivia?: (pos: number) => number; |
| } |
| enum EmitFlags { |
| None = 0, |
| SingleLine = 1, |
| AdviseOnEmitNode = 2, |
| NoSubstitution = 4, |
| CapturesThis = 8, |
| NoLeadingSourceMap = 16, |
| NoTrailingSourceMap = 32, |
| NoSourceMap = 48, |
| NoNestedSourceMaps = 64, |
| NoTokenLeadingSourceMaps = 128, |
| NoTokenTrailingSourceMaps = 256, |
| NoTokenSourceMaps = 384, |
| NoLeadingComments = 512, |
| NoTrailingComments = 1024, |
| NoComments = 1536, |
| NoNestedComments = 2048, |
| HelperName = 4096, |
| ExportName = 8192, |
| LocalName = 16384, |
| InternalName = 32768, |
| Indented = 65536, |
| NoIndentation = 131072, |
| AsyncFunctionBody = 262144, |
| ReuseTempVariableScope = 524288, |
| CustomPrologue = 1048576, |
| NoHoisting = 2097152, |
| HasEndOfDeclarationMarker = 4194304, |
| Iterator = 8388608, |
| NoAsciiEscaping = 16777216, |
| } |
| interface EmitHelper { |
| readonly name: string; |
| readonly scoped: boolean; |
| readonly text: string | ((node: EmitHelperUniqueNameCallback) => string); |
| readonly priority?: number; |
| } |
| interface UnscopedEmitHelper extends EmitHelper { |
| readonly scoped: false; |
| readonly text: string; |
| } |
| type EmitHelperUniqueNameCallback = (name: string) => string; |
| enum EmitHint { |
| SourceFile = 0, |
| Expression = 1, |
| IdentifierName = 2, |
| MappedTypeParameter = 3, |
| Unspecified = 4, |
| EmbeddedStatement = 5 |
| } |
| interface TransformationContext { |
| /** Gets the compiler options supplied to the transformer. */ |
| getCompilerOptions(): CompilerOptions; |
| /** Starts a new lexical environment. */ |
| startLexicalEnvironment(): void; |
| /** Suspends the current lexical environment, usually after visiting a parameter list. */ |
| suspendLexicalEnvironment(): void; |
| /** Resumes a suspended lexical environment, usually before visiting a function body. */ |
| resumeLexicalEnvironment(): void; |
| /** Ends a lexical environment, returning any declarations. */ |
| endLexicalEnvironment(): Statement[] | undefined; |
| /** Hoists a function declaration to the containing scope. */ |
| hoistFunctionDeclaration(node: FunctionDeclaration): void; |
| /** Hoists a variable declaration to the containing scope. */ |
| hoistVariableDeclaration(node: Identifier): void; |
| /** Records a request for a non-scoped emit helper in the current context. */ |
| requestEmitHelper(helper: EmitHelper): void; |
| /** Gets and resets the requested non-scoped emit helpers. */ |
| readEmitHelpers(): EmitHelper[] | undefined; |
| /** Enables expression substitutions in the pretty printer for the provided SyntaxKind. */ |
| enableSubstitution(kind: SyntaxKind): void; |
| /** Determines whether expression substitutions are enabled for the provided node. */ |
| isSubstitutionEnabled(node: Node): boolean; |
| /** |
| * Hook used by transformers to substitute expressions just before they |
| * are emitted by the pretty printer. |
| * |
| * NOTE: Transformation hooks should only be modified during `Transformer` initialization, |
| * before returning the `NodeTransformer` callback. |
| */ |
| onSubstituteNode: (hint: EmitHint, node: Node) => Node; |
| /** |
| * Enables before/after emit notifications in the pretty printer for the provided |
| * SyntaxKind. |
| */ |
| enableEmitNotification(kind: SyntaxKind): void; |
| /** |
| * Determines whether before/after emit notifications should be raised in the pretty |
| * printer when it emits a node. |
| */ |
| isEmitNotificationEnabled(node: Node): boolean; |
| /** |
| * Hook used to allow transformers to capture state before or after |
| * the printer emits a node. |
| * |
| * NOTE: Transformation hooks should only be modified during `Transformer` initialization, |
| * before returning the `NodeTransformer` callback. |
| */ |
| onEmitNode: (hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void) => void; |
| } |
| interface TransformationResult<T extends Node> { |
| /** Gets the transformed source files. */ |
| transformed: T[]; |
| /** Gets diagnostics for the transformation. */ |
| diagnostics?: DiagnosticWithLocation[]; |
| /** |
| * Gets a substitute for a node, if one is available; otherwise, returns the original node. |
| * |
| * @param hint A hint as to the intended usage of the node. |
| * @param node The node to substitute. |
| */ |
| substituteNode(hint: EmitHint, node: Node): Node; |
| /** |
| * Emits a node with possible notification. |
| * |
| * @param hint A hint as to the intended usage of the node. |
| * @param node The node to emit. |
| * @param emitCallback A callback used to emit the node. |
| */ |
| emitNodeWithNotification(hint: EmitHint, node: Node, emitCallback: (hint: EmitHint, node: Node) => void): void; |
| /** |
| * Clean up EmitNode entries on any parse-tree nodes. |
| */ |
| dispose(): void; |
| } |
| /** |
| * A function that is used to initialize and return a `Transformer` callback, which in turn |
| * will be used to transform one or more nodes. |
| */ |
| type TransformerFactory<T extends Node> = (context: TransformationContext) => Transformer<T>; |
| /** |
| * A function that transforms a node. |
| */ |
| type Transformer<T extends Node> = (node: T) => T; |
| /** |
| * A function that accepts and possibly transforms a node. |
| */ |
| type Visitor = (node: Node) => VisitResult<Node>; |
| type VisitResult<T extends Node> = T | T[] | undefined; |
| interface Printer { |
| /** |
| * Print a node and its subtree as-is, without any emit transformations. |
| * @param hint A value indicating the purpose of a node. This is primarily used to |
| * distinguish between an `Identifier` used in an expression position, versus an |
| * `Identifier` used as an `IdentifierName` as part of a declaration. For most nodes you |
| * should just pass `Unspecified`. |
| * @param node The node to print. The node and its subtree are printed as-is, without any |
| * emit transformations. |
| * @param sourceFile A source file that provides context for the node. The source text of |
| * the file is used to emit the original source content for literals and identifiers, while |
| * the identifiers of the source file are used when generating unique names to avoid |
| * collisions. |
| */ |
| printNode(hint: EmitHint, node: Node, sourceFile: SourceFile): string; |
| /** |
| * Prints a list of nodes using the given format flags |
| */ |
| printList<T extends Node>(format: ListFormat, list: NodeArray<T>, sourceFile: SourceFile): string; |
| /** |
| * Prints a source file as-is, without any emit transformations. |
| */ |
| printFile(sourceFile: SourceFile): string; |
| /** |
| * Prints a bundle of source files as-is, without any emit transformations. |
| */ |
| printBundle(bundle: Bundle): string; |
| } |
| interface PrintHandlers { |
| /** |
| * A hook used by the Printer when generating unique names to avoid collisions with |
| * globally defined names that exist outside of the current source file. |
| */ |
| hasGlobalName?(name: string): boolean; |
| /** |
| * A hook used by the Printer to provide notifications prior to emitting a node. A |
| * compatible implementation **must** invoke `emitCallback` with the provided `hint` and |
| * `node` values. |
| * @param hint A hint indicating the intended purpose of the node. |
| * @param node The node to emit. |
| * @param emitCallback A callback that, when invoked, will emit the node. |
| * @example |
| * ```ts |
| * var printer = createPrinter(printerOptions, { |
| * onEmitNode(hint, node, emitCallback) { |
| * // set up or track state prior to emitting the node... |
| * emitCallback(hint, node); |
| * // restore state after emitting the node... |
| * } |
| * }); |
| * ``` |
| */ |
| onEmitNode?(hint: EmitHint, node: Node | undefined, emitCallback: (hint: EmitHint, node: Node | undefined) => void): void; |
| /** |
| * A hook used by the Printer to perform just-in-time substitution of a node. This is |
| * primarily used by node transformations that need to substitute one node for another, |
| * such as replacing `myExportedVar` with `exports.myExportedVar`. |
| * @param hint A hint indicating the intended purpose of the node. |
| * @param node The node to emit. |
| * @example |
| * ```ts |
| * var printer = createPrinter(printerOptions, { |
| * substituteNode(hint, node) { |
| * // perform substitution if necessary... |
| * return node; |
| * } |
| * }); |
| * ``` |
| */ |
| substituteNode?(hint: EmitHint, node: Node): Node; |
| } |
| interface PrinterOptions { |
| removeComments?: boolean; |
| newLine?: NewLineKind; |
| omitTrailingSemicolon?: boolean; |
| noEmitHelpers?: boolean; |
| } |
| interface GetEffectiveTypeRootsHost { |
| directoryExists?(directoryName: string): boolean; |
| getCurrentDirectory?(): string; |
| } |
| interface TextSpan { |
| start: number; |
| length: number; |
| } |
| interface TextChangeRange { |
| span: TextSpan; |
| newLength: number; |
| } |
| interface SyntaxList extends Node { |
| _children: Node[]; |
| } |
| enum ListFormat { |
| None = 0, |
| SingleLine = 0, |
| MultiLine = 1, |
| PreserveLines = 2, |
| LinesMask = 3, |
| NotDelimited = 0, |
| BarDelimited = 4, |
| AmpersandDelimited = 8, |
| CommaDelimited = 16, |
| AsteriskDelimited = 32, |
| DelimitersMask = 60, |
| AllowTrailingComma = 64, |
| Indented = 128, |
| SpaceBetweenBraces = 256, |
| SpaceBetweenSiblings = 512, |
| Braces = 1024, |
| Parenthesis = 2048, |
| AngleBrackets = 4096, |
| SquareBrackets = 8192, |
| BracketsMask = 15360, |
| OptionalIfUndefined = 16384, |
| OptionalIfEmpty = 32768, |
| Optional = 49152, |
| PreferNewLine = 65536, |
| NoTrailingNewLine = 131072, |
| NoInterveningComments = 262144, |
| NoSpaceIfEmpty = 524288, |
| SingleElement = 1048576, |
| Modifiers = 262656, |
| HeritageClauses = 512, |
| SingleLineTypeLiteralMembers = 768, |
| MultiLineTypeLiteralMembers = 32897, |
| TupleTypeElements = 528, |
| UnionTypeConstituents = 516, |
| IntersectionTypeConstituents = 520, |
| ObjectBindingPatternElements = 525136, |
| ArrayBindingPatternElements = 524880, |
| ObjectLiteralExpressionProperties = 526226, |
| ArrayLiteralExpressionElements = 8914, |
| CommaListElements = 528, |
| CallExpressionArguments = 2576, |
| NewExpressionArguments = 18960, |
| TemplateExpressionSpans = 262144, |
| SingleLineBlockStatements = 768, |
| MultiLineBlockStatements = 129, |
| VariableDeclarationList = 528, |
| SingleLineFunctionBodyStatements = 768, |
| MultiLineFunctionBodyStatements = 1, |
| ClassHeritageClauses = 0, |
| ClassMembers = 129, |
| InterfaceMembers = 129, |
| EnumMembers = 145, |
| CaseBlockClauses = 129, |
| NamedImportsOrExportsElements = 525136, |
| JsxElementOrFragmentChildren = 262144, |
| JsxElementAttributes = 262656, |
| CaseOrDefaultClauseStatements = 163969, |
| HeritageClauseTypes = 528, |
| SourceFileStatements = 131073, |
| Decorators = 49153, |
| TypeArguments = 53776, |
| TypeParameters = 53776, |
| Parameters = 2576, |
| IndexSignatureParameters = 8848, |
| JSDocComment = 33 |
| } |
| interface UserPreferences { |
| readonly disableSuggestions?: boolean; |
| readonly quotePreference?: "auto" | "double" | "single"; |
| readonly includeCompletionsForModuleExports?: boolean; |
| readonly includeCompletionsWithInsertText?: boolean; |
| readonly importModuleSpecifierPreference?: "relative" | "non-relative"; |
| /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ |
| readonly importModuleSpecifierEnding?: "minimal" | "index" | "js"; |
| readonly allowTextChangesInNewFiles?: boolean; |
| readonly providePrefixAndSuffixTextForRename?: boolean; |
| } |
| /** Represents a bigint literal value without requiring bigint support */ |
| interface PseudoBigInt { |
| negative: boolean; |
| base10Value: string; |
| } |
| } |
| declare function setTimeout(handler: (...args: any[]) => void, timeout: number): any; |
| declare function clearTimeout(handle: any): void; |
| declare namespace ts { |
| enum FileWatcherEventKind { |
| Created = 0, |
| Changed = 1, |
| Deleted = 2 |
| } |
| type FileWatcherCallback = (fileName: string, eventKind: FileWatcherEventKind) => void; |
| type DirectoryWatcherCallback = (fileName: string) => void; |
| interface System { |
| args: string[]; |
| newLine: string; |
| useCaseSensitiveFileNames: boolean; |
| write(s: string): void; |
| writeOutputIsTTY?(): boolean; |
| readFile(path: string, encoding?: string): string | undefined; |
| getFileSize?(path: string): number; |
| writeFile(path: string, data: string, writeByteOrderMark?: boolean): void; |
| /** |
| * @pollingInterval - this parameter is used in polling-based watchers and ignored in watchers that |
| * use native OS file watching |
| */ |
| watchFile?(path: string, callback: FileWatcherCallback, pollingInterval?: number): FileWatcher; |
| watchDirectory?(path: string, callback: DirectoryWatcherCallback, recursive?: boolean): FileWatcher; |
| resolvePath(path: string): string; |
| fileExists(path: string): boolean; |
| directoryExists(path: string): boolean; |
| createDirectory(path: string): void; |
| getExecutingFilePath(): string; |
| getCurrentDirectory(): string; |
| getDirectories(path: string): string[]; |
| readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[]; |
| getModifiedTime?(path: string): Date | undefined; |
| setModifiedTime?(path: string, time: Date): void; |
| deleteFile?(path: string): void; |
| /** |
| * A good implementation is node.js' `crypto.createHash`. (https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm) |
| */ |
| createHash?(data: string): string; |
| /** This must be cryptographically secure. Only implement this method using `crypto.createHash("sha256")`. */ |
| createSHA256Hash?(data: string): string; |
| getMemoryUsage?(): number; |
| exit(exitCode?: number): void; |
| realpath?(path: string): string; |
| setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; |
| clearTimeout?(timeoutId: any): void; |
| clearScreen?(): void; |
| base64decode?(input: string): string; |
| base64encode?(input: string): string; |
| } |
| interface FileWatcher { |
| close(): void; |
| } |
| function getNodeMajorVersion(): number | undefined; |
| let sys: System; |
| } |
| declare namespace ts { |
| type ErrorCallback = (message: DiagnosticMessage, length: number) => void; |
| interface Scanner { |
| getStartPos(): number; |
| getToken(): SyntaxKind; |
| getTextPos(): number; |
| getTokenPos(): number; |
| getTokenText(): string; |
| getTokenValue(): string; |
| hasExtendedUnicodeEscape(): boolean; |
| hasPrecedingLineBreak(): boolean; |
| isIdentifier(): boolean; |
| isReservedWord(): boolean; |
| isUnterminated(): boolean; |
| reScanGreaterToken(): SyntaxKind; |
| reScanSlashToken(): SyntaxKind; |
| reScanTemplateToken(): SyntaxKind; |
| scanJsxIdentifier(): SyntaxKind; |
| scanJsxAttributeValue(): SyntaxKind; |
| reScanJsxToken(): JsxTokenSyntaxKind; |
| reScanLessThanToken(): SyntaxKind; |
| scanJsxToken(): JsxTokenSyntaxKind; |
| scanJsDocToken(): JSDocSyntaxKind; |
| scan(): SyntaxKind; |
| getText(): string; |
| setText(text: string | undefined, start?: number, length?: number): void; |
| setOnError(onError: ErrorCallback | undefined): void; |
| setScriptTarget(scriptTarget: ScriptTarget): void; |
| setLanguageVariant(variant: LanguageVariant): void; |
| setTextPos(textPos: number): void; |
| lookAhead<T>(callback: () => T): T; |
| scanRange<T>(start: number, length: number, callback: () => T): T; |
| tryScan<T>(callback: () => T): T; |
| } |
| function tokenToString(t: SyntaxKind): string | undefined; |
| function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number; |
| function getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: number): LineAndCharacter; |
| function isWhiteSpaceLike(ch: number): boolean; |
| /** Does not include line breaks. For that, see isWhiteSpaceLike. */ |
| function isWhiteSpaceSingleLine(ch: number): boolean; |
| function isLineBreak(ch: number): boolean; |
| function couldStartTrivia(text: string, pos: number): boolean; |
| function forEachLeadingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; |
| function forEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; |
| function forEachTrailingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; |
| function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; |
| function reduceEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U | undefined; |
| function reduceEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T, memo: U) => U, state: T, initial: U): U | undefined; |
| function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined; |
| function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined; |
| /** Optionally, get the shebang */ |
| function getShebang(text: string): string | undefined; |
| function isIdentifierStart(ch: number, languageVersion: ScriptTarget | undefined): boolean; |
| function isIdentifierPart(ch: number, languageVersion: ScriptTarget | undefined): boolean; |
| function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, textInitial?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner; |
| } |
| declare namespace ts { |
| function isExternalModuleNameRelative(moduleName: string): boolean; |
| function sortAndDeduplicateDiagnostics<T extends Diagnostic>(diagnostics: ReadonlyArray<T>): SortedReadonlyArray<T>; |
| } |
| declare namespace ts { |
| function getDefaultLibFileName(options: CompilerOptions): string; |
| function textSpanEnd(span: TextSpan): number; |
| function textSpanIsEmpty(span: TextSpan): boolean; |
| function textSpanContainsPosition(span: TextSpan, position: number): boolean; |
| function textSpanContainsTextSpan(span: TextSpan, other: TextSpan): boolean; |
| function textSpanOverlapsWith(span: TextSpan, other: TextSpan): boolean; |
| function textSpanOverlap(span1: TextSpan, span2: TextSpan): TextSpan | undefined; |
| function textSpanIntersectsWithTextSpan(span: TextSpan, other: TextSpan): boolean; |
| function textSpanIntersectsWith(span: TextSpan, start: number, length: number): boolean; |
| function decodedTextSpanIntersectsWith(start1: number, length1: number, start2: number, length2: number): boolean; |
| function textSpanIntersectsWithPosition(span: TextSpan, position: number): boolean; |
| function textSpanIntersection(span1: TextSpan, span2: TextSpan): TextSpan | undefined; |
| function createTextSpan(start: number, length: number): TextSpan; |
| function createTextSpanFromBounds(start: number, end: number): TextSpan; |
| function textChangeRangeNewSpan(range: TextChangeRange): TextSpan; |
| function textChangeRangeIsUnchanged(range: TextChangeRange): boolean; |
| function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange; |
| let unchangedTextChangeRange: TextChangeRange; |
| /** |
| * Called to merge all the changes that occurred across several versions of a script snapshot |
| * into a single change. i.e. if a user keeps making successive edits to a script we will |
| * have a text change from V1 to V2, V2 to V3, ..., Vn. |
| * |
| * This function will then merge those changes into a single change range valid between V1 and |
| * Vn. |
| */ |
| function collapseTextChangeRangesAcrossMultipleVersions(changes: ReadonlyArray<TextChangeRange>): TextChangeRange; |
| function getTypeParameterOwner(d: Declaration): Declaration | undefined; |
| type ParameterPropertyDeclaration = ParameterDeclaration & { |
| parent: ConstructorDeclaration; |
| name: Identifier; |
| }; |
| function isParameterPropertyDeclaration(node: Node): node is ParameterPropertyDeclaration; |
| function isEmptyBindingPattern(node: BindingName): node is BindingPattern; |
| function isEmptyBindingElement(node: BindingElement): boolean; |
| function walkUpBindingElementsAndPatterns(binding: BindingElement): VariableDeclaration | ParameterDeclaration; |
| function getCombinedModifierFlags(node: Declaration): ModifierFlags; |
| function getCombinedNodeFlags(node: Node): NodeFlags; |
| /** |
| * Checks to see if the locale is in the appropriate format, |
| * and if it is, attempts to set the appropriate language. |
| */ |
| function validateLocaleAndSetLanguage(locale: string, sys: { |
| getExecutingFilePath(): string; |
| resolvePath(path: string): string; |
| fileExists(fileName: string): boolean; |
| readFile(fileName: string): string | undefined; |
| }, errors?: Push<Diagnostic>): void; |
| function getOriginalNode(node: Node): Node; |
| function getOriginalNode<T extends Node>(node: Node, nodeTest: (node: Node) => node is T): T; |
| function getOriginalNode(node: Node | undefined): Node | undefined; |
| function getOriginalNode<T extends Node>(node: Node | undefined, nodeTest: (node: Node | undefined) => node is T): T | undefined; |
| /** |
| * Gets a value indicating whether a node originated in the parse tree. |
| * |
| * @param node The node to test. |
| */ |
| function isParseTreeNode(node: Node): boolean; |
| /** |
| * Gets the original parse tree node for a node. |
| * |
| * @param node The original node. |
| * @returns The original parse tree node if found; otherwise, undefined. |
| */ |
| function getParseTreeNode(node: Node): Node; |
| /** |
| * Gets the original parse tree node for a node. |
| * |
| * @param node The original node. |
| * @param nodeTest A callback used to ensure the correct type of parse tree node is returned. |
| * @returns The original parse tree node if found; otherwise, undefined. |
| */ |
| function getParseTreeNode<T extends Node>(node: Node | undefined, nodeTest?: (node: Node) => node is T): T | undefined; |
| /** Add an extra underscore to identifiers that start with two underscores to avoid issues with magic names like '__proto__' */ |
| function escapeLeadingUnderscores(identifier: string): __String; |
| /** |
| * Remove extra underscore from escaped identifier text content. |
| * |
| * @param identifier The escaped identifier text. |
| * @returns The unescaped identifier text. |
| */ |
| function unescapeLeadingUnderscores(identifier: __String): string; |
| function idText(identifier: Identifier): string; |
| function symbolName(symbol: Symbol): string; |
| function getNameOfJSDocTypedef(declaration: JSDocTypedefTag): Identifier | undefined; |
| function getNameOfDeclaration(declaration: Declaration | Expression): DeclarationName | undefined; |
| /** |
| * Gets the JSDoc parameter tags for the node if present. |
| * |
| * @remarks Returns any JSDoc param tag whose name matches the provided |
| * parameter, whether a param tag on a containing function |
| * expression, or a param tag on a variable declaration whose |
| * initializer is the containing function. The tags closest to the |
| * node are returned first, so in the previous example, the param |
| * tag on the containing function expression would be first. |
| * |
| * For binding patterns, parameter tags are matched by position. |
| */ |
| function getJSDocParameterTags(param: ParameterDeclaration): ReadonlyArray<JSDocParameterTag>; |
| /** |
| * Gets the JSDoc type parameter tags for the node if present. |
| * |
| * @remarks Returns any JSDoc template tag whose names match the provided |
| * parameter, whether a template tag on a containing function |
| * expression, or a template tag on a variable declaration whose |
| * initializer is the containing function. The tags closest to the |
| * node are returned first, so in the previous example, the template |
| * tag on the containing function expression would be first. |
| */ |
| function getJSDocTypeParameterTags(param: TypeParameterDeclaration): ReadonlyArray<JSDocTemplateTag>; |
| /** |
| * Return true if the node has JSDoc parameter tags. |
| * |
| * @remarks Includes parameter tags that are not directly on the node, |
| * for example on a variable declaration whose initializer is a function expression. |
| */ |
| function hasJSDocParameterTags(node: FunctionLikeDeclaration | SignatureDeclaration): boolean; |
| /** Gets the JSDoc augments tag for the node if present */ |
| function getJSDocAugmentsTag(node: Node): JSDocAugmentsTag | undefined; |
| /** Gets the JSDoc class tag for the node if present */ |
| function getJSDocClassTag(node: Node): JSDocClassTag | undefined; |
| /** Gets the JSDoc enum tag for the node if present */ |
| function getJSDocEnumTag(node: Node): JSDocEnumTag | undefined; |
| /** Gets the JSDoc this tag for the node if present */ |
| function getJSDocThisTag(node: Node): JSDocThisTag | undefined; |
| /** Gets the JSDoc return tag for the node if present */ |
| function getJSDocReturnTag(node: Node): JSDocReturnTag | undefined; |
| /** Gets the JSDoc template tag for the node if present */ |
| function getJSDocTemplateTag(node: Node): JSDocTemplateTag | undefined; |
| /** Gets the JSDoc type tag for the node if present and valid */ |
| function getJSDocTypeTag(node: Node): JSDocTypeTag | undefined; |
| /** |
| * Gets the type node for the node if provided via JSDoc. |
| * |
| * @remarks The search includes any JSDoc param tag that relates |
| * to the provided parameter, for example a type tag on the |
| * parameter itself, or a param tag on a containing function |
| * expression, or a param tag on a variable declaration whose |
| * initializer is the containing function. The tags closest to the |
| * node are examined first, so in the previous example, the type |
| * tag directly on the node would be returned. |
| */ |
| function getJSDocType(node: Node): TypeNode | undefined; |
| /** |
| * Gets the return type node for the node if provided via JSDoc return tag or type tag. |
| * |
| * @remarks `getJSDocReturnTag` just gets the whole JSDoc tag. This function |
| * gets the type from inside the braces, after the fat arrow, etc. |
| */ |
| function getJSDocReturnType(node: Node): TypeNode | undefined; |
| /** Get all JSDoc tags related to a node, including those on parent nodes. */ |
| function getJSDocTags(node: Node): ReadonlyArray<JSDocTag>; |
| /** Gets all JSDoc tags of a specified kind, or undefined if not present. */ |
| function getAllJSDocTagsOfKind(node: Node, kind: SyntaxKind): ReadonlyArray<JSDocTag>; |
| /** |
| * Gets the effective type parameters. If the node was parsed in a |
| * JavaScript file, gets the type parameters from the `@template` tag from JSDoc. |
| */ |
| function getEffectiveTypeParameterDeclarations(node: DeclarationWithTypeParameters): ReadonlyArray<TypeParameterDeclaration>; |
| function getEffectiveConstraintOfTypeParameter(node: TypeParameterDeclaration): TypeNode | undefined; |
| } |
| declare namespace ts { |
| function isNumericLiteral(node: Node): node is NumericLiteral; |
| function isBigIntLiteral(node: Node): node is BigIntLiteral; |
| function isStringLiteral(node: Node): node is StringLiteral; |
| function isJsxText(node: Node): node is JsxText; |
| function isRegularExpressionLiteral(node: Node): node is RegularExpressionLiteral; |
| function isNoSubstitutionTemplateLiteral(node: Node): node is NoSubstitutionTemplateLiteral; |
| function isTemplateHead(node: Node): node is TemplateHead; |
| function isTemplateMiddle(node: Node): node is TemplateMiddle; |
| function isTemplateTail(node: Node): node is TemplateTail; |
| function isIdentifier(node: Node): node is Identifier; |
| function isQualifiedName(node: Node): node is QualifiedName; |
| function isComputedPropertyName(node: Node): node is ComputedPropertyName; |
| function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration; |
| function isParameter(node: Node): node is ParameterDeclaration; |
| function isDecorator(node: Node): node is Decorator; |
| function isPropertySignature(node: Node): node is PropertySignature; |
| function isPropertyDeclaration(node: Node): node is PropertyDeclaration; |
| function isMethodSignature(node: Node): node is MethodSignature; |
| function isMethodDeclaration(node: Node): node is MethodDeclaration; |
| function isConstructorDeclaration(node: Node): node is ConstructorDeclaration; |
| function isGetAccessorDeclaration(node: Node): node is GetAccessorDeclaration; |
| function isSetAccessorDeclaration(node: Node): node is SetAccessorDeclaration; |
| function isCallSignatureDeclaration(node: Node): node is CallSignatureDeclaration; |
| function isConstructSignatureDeclaration(node: Node): node is ConstructSignatureDeclaration; |
| function isIndexSignatureDeclaration(node: Node): node is IndexSignatureDeclaration; |
| function isTypePredicateNode(node: Node): node is TypePredicateNode; |
| function isTypeReferenceNode(node: Node): node is TypeReferenceNode; |
| function isFunctionTypeNode(node: Node): node is FunctionTypeNode; |
| function isConstructorTypeNode(node: Node): node is ConstructorTypeNode; |
| function isTypeQueryNode(node: Node): node is TypeQueryNode; |
| function isTypeLiteralNode(node: Node): node is TypeLiteralNode; |
| function isArrayTypeNode(node: Node): node is ArrayTypeNode; |
| function isTupleTypeNode(node: Node): node is TupleTypeNode; |
| function isUnionTypeNode(node: Node): node is UnionTypeNode; |
| function isIntersectionTypeNode(node: Node): node is IntersectionTypeNode; |
| function isConditionalTypeNode(node: Node): node is ConditionalTypeNode; |
| function isInferTypeNode(node: Node): node is InferTypeNode; |
| function isParenthesizedTypeNode(node: Node): node is ParenthesizedTypeNode; |
| function isThisTypeNode(node: Node): node is ThisTypeNode; |
| function isTypeOperatorNode(node: Node): node is TypeOperatorNode; |
| function isIndexedAccessTypeNode(node: Node): node is IndexedAccessTypeNode; |
| function isMappedTypeNode(node: Node): node is MappedTypeNode; |
| function isLiteralTypeNode(node: Node): node is LiteralTypeNode; |
| function isImportTypeNode(node: Node): node is ImportTypeNode; |
| function isObjectBindingPattern(node: Node): node is ObjectBindingPattern; |
| function isArrayBindingPattern(node: Node): node is ArrayBindingPattern; |
| function isBindingElement(node: Node): node is BindingElement; |
| function isArrayLiteralExpression(node: Node): node is ArrayLiteralExpression; |
| function isObjectLiteralExpression(node: Node): node is ObjectLiteralExpression; |
| function isPropertyAccessExpression(node: Node): node is PropertyAccessExpression; |
| function isElementAccessExpression(node: Node): node is ElementAccessExpression; |
| function isCallExpression(node: Node): node is CallExpression; |
| function isNewExpression(node: Node): node is NewExpression; |
| function isTaggedTemplateExpression(node: Node): node is TaggedTemplateExpression; |
| function isTypeAssertion(node: Node): node is TypeAssertion; |
| function isConstTypeReference(node: Node): boolean; |
| function isParenthesizedExpression(node: Node): node is ParenthesizedExpression; |
| function skipPartiallyEmittedExpressions(node: Expression): Expression; |
| function skipPartiallyEmittedExpressions(node: Node): Node; |
| function isFunctionExpression(node: Node): node is FunctionExpression; |
| function isArrowFunction(node: Node): node is ArrowFunction; |
| function isDeleteExpression(node: Node): node is DeleteExpression; |
| function isTypeOfExpression(node: Node): node is TypeOfExpression; |
| function isVoidExpression(node: Node): node is VoidExpression; |
| function isAwaitExpression(node: Node): node is AwaitExpression; |
| function isPrefixUnaryExpression(node: Node): node is PrefixUnaryExpression; |
| function isPostfixUnaryExpression(node: Node): node is PostfixUnaryExpression; |
| function isBinaryExpression(node: Node): node is BinaryExpression; |
| function isConditionalExpression(node: Node): node is ConditionalExpression; |
| function isTemplateExpression(node: Node): node is TemplateExpression; |
| function isYieldExpression(node: Node): node is YieldExpression; |
| function isSpreadElement(node: Node): node is SpreadElement; |
| function isClassExpression(node: Node): node is ClassExpression; |
| function isOmittedExpression(node: Node): node is OmittedExpression; |
| function isExpressionWithTypeArguments(node: Node): node is ExpressionWithTypeArguments; |
| function isAsExpression(node: Node): node is AsExpression; |
| function isNonNullExpression(node: Node): node is NonNullExpression; |
| function isMetaProperty(node: Node): node is MetaProperty; |
| function isTemplateSpan(node: Node): node is TemplateSpan; |
| function isSemicolonClassElement(node: Node): node is SemicolonClassElement; |
| function isBlock(node: Node): node is Block; |
| function isVariableStatement(node: Node): node is VariableStatement; |
| function isEmptyStatement(node: Node): node is EmptyStatement; |
| function isExpressionStatement(node: Node): node is ExpressionStatement; |
| function isIfStatement(node: Node): node is IfStatement; |
| function isDoStatement(node: Node): node is DoStatement; |
| function isWhileStatement(node: Node): node is WhileStatement; |
| function isForStatement(node: Node): node is ForStatement; |
| function isForInStatement(node: Node): node is ForInStatement; |
| function isForOfStatement(node: Node): node is ForOfStatement; |
| function isContinueStatement(node: Node): node is ContinueStatement; |
| function isBreakStatement(node: Node): node is BreakStatement; |
| function isBreakOrContinueStatement(node: Node): node is BreakOrContinueStatement; |
| function isReturnStatement(node: Node): node is ReturnStatement; |
| function isWithStatement(node: Node): node is WithStatement; |
| function isSwitchStatement(node: Node): node is SwitchStatement; |
| function isLabeledStatement(node: Node): node is LabeledStatement; |
| function isThrowStatement(node: Node): node is ThrowStatement; |
| function isTryStatement(node: Node): node is TryStatement; |
| function isDebuggerStatement(node: Node): node is DebuggerStatement; |
| function isVariableDeclaration(node: Node): node is VariableDeclaration; |
| function isVariableDeclarationList(node: Node): node is VariableDeclarationList; |
| function isFunctionDeclaration(node: Node): node is FunctionDeclaration; |
| function isClassDeclaration(node: Node): node is ClassDeclaration; |
| function isInterfaceDeclaration(node: Node): node is InterfaceDeclaration; |
| function isTypeAliasDeclaration(node: Node): node is TypeAliasDeclaration; |
| function isEnumDeclaration(node: Node): node is EnumDeclaration; |
| function isModuleDeclaration(node: Node): node is ModuleDeclaration; |
| function isModuleBlock(node: Node): node is ModuleBlock; |
| function isCaseBlock(node: Node): node is CaseBlock; |
| function isNamespaceExportDeclaration(node: Node): node is NamespaceExportDeclaration; |
| function isImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration; |
| function isImportDeclaration(node: Node): node is ImportDeclaration; |
| function isImportClause(node: Node): node is ImportClause; |
| function isNamespaceImport(node: Node): node is NamespaceImport; |
| function isNamedImports(node: Node): node is NamedImports; |
| function isImportSpecifier(node: Node): node is ImportSpecifier; |
| function isExportAssignment(node: Node): node is ExportAssignment; |
| function isExportDeclaration(node: Node): node is ExportDeclaration; |
| function isNamedExports(node: Node): node is NamedExports; |
| function isExportSpecifier(node: Node): node is ExportSpecifier; |
| function isMissingDeclaration(node: Node): node is MissingDeclaration; |
| function isExternalModuleReference(node: Node): node is ExternalModuleReference; |
| function isJsxElement(node: Node): node is JsxElement; |
| function isJsxSelfClosingElement(node: Node): node is JsxSelfClosingElement; |
| function isJsxOpeningElement(node: Node): node is JsxOpeningElement; |
| function isJsxClosingElement(node: Node): node is JsxClosingElement; |
| function isJsxFragment(node: Node): node is JsxFragment; |
| function isJsxOpeningFragment(node: Node): node is JsxOpeningFragment; |
| function isJsxClosingFragment(node: Node): node is JsxClosingFragment; |
| function isJsxAttribute(node: Node): node is JsxAttribute; |
| function isJsxAttributes(node: Node): node is JsxAttributes; |
| function isJsxSpreadAttribute(node: Node): node is JsxSpreadAttribute; |
| function isJsxExpression(node: Node): node is JsxExpression; |
| function isCaseClause(node: Node): node is CaseClause; |
| function isDefaultClause(node: Node): node is DefaultClause; |
| function isHeritageClause(node: Node): node is HeritageClause; |
| function isCatchClause(node: Node): node is CatchClause; |
| function isPropertyAssignment(node: Node): node is PropertyAssignment; |
| function isShorthandPropertyAssignment(node: Node): node is ShorthandPropertyAssignment; |
| function isSpreadAssignment(node: Node): node is SpreadAssignment; |
| function isEnumMember(node: Node): node is EnumMember; |
| function isSourceFile(node: Node): node is SourceFile; |
| function isBundle(node: Node): node is Bundle; |
| function isUnparsedSource(node: Node): node is UnparsedSource; |
| function isUnparsedPrepend(node: Node): node is UnparsedPrepend; |
| function isUnparsedTextLike(node: Node): node is UnparsedTextLike; |
| function isUnparsedNode(node: Node): node is UnparsedNode; |
| function isJSDocTypeExpression(node: Node): node is JSDocTypeExpression; |
| function isJSDocAllType(node: JSDocAllType): node is JSDocAllType; |
| function isJSDocUnknownType(node: Node): node is JSDocUnknownType; |
| function isJSDocNullableType(node: Node): node is JSDocNullableType; |
| function isJSDocNonNullableType(node: Node): node is JSDocNonNullableType; |
| function isJSDocOptionalType(node: Node): node is JSDocOptionalType; |
| function isJSDocFunctionType(node: Node): node is JSDocFunctionType; |
| function isJSDocVariadicType(node: Node): node is JSDocVariadicType; |
| function isJSDoc(node: Node): node is JSDoc; |
| function isJSDocAugmentsTag(node: Node): node is JSDocAugmentsTag; |
| function isJSDocClassTag(node: Node): node is JSDocClassTag; |
| function isJSDocEnumTag(node: Node): node is JSDocEnumTag; |
| function isJSDocThisTag(node: Node): node is JSDocThisTag; |
| function isJSDocParameterTag(node: Node): node is JSDocParameterTag; |
| function isJSDocReturnTag(node: Node): node is JSDocReturnTag; |
| function isJSDocTypeTag(node: Node): node is JSDocTypeTag; |
| function isJSDocTemplateTag(node: Node): node is JSDocTemplateTag; |
| function isJSDocTypedefTag(node: Node): node is JSDocTypedefTag; |
| function isJSDocPropertyTag(node: Node): node is JSDocPropertyTag; |
| function isJSDocPropertyLikeTag(node: Node): node is JSDocPropertyLikeTag; |
| function isJSDocTypeLiteral(node: Node): node is JSDocTypeLiteral; |
| function isJSDocCallbackTag(node: Node): node is JSDocCallbackTag; |
| function isJSDocSignature(node: Node): node is JSDocSignature; |
| } |
| declare namespace ts { |
| /** |
| * True if node is of some token syntax kind. |
| * For example, this is true for an IfKeyword but not for an IfStatement. |
| * Literals are considered tokens, except TemplateLiteral, but does include TemplateHead/Middle/Tail. |
| */ |
| function isToken(n: Node): boolean; |
| function isLiteralExpression(node: Node): node is LiteralExpression; |
| type TemplateLiteralToken = NoSubstitutionTemplateLiteral | TemplateHead | TemplateMiddle | TemplateTail; |
| function isTemplateLiteralToken(node: Node): node is TemplateLiteralToken; |
| function isTemplateMiddleOrTemplateTail(node: Node): node is TemplateMiddle | TemplateTail; |
| function isImportOrExportSpecifier(node: Node): node is ImportSpecifier | ExportSpecifier; |
| function isStringTextContainingNode(node: Node): node is StringLiteral | TemplateLiteralToken; |
| function isModifier(node: Node): node is Modifier; |
| function isEntityName(node: Node): node is EntityName; |
| function isPropertyName(node: Node): node is PropertyName; |
| function isBindingName(node: Node): node is BindingName; |
| function isFunctionLike(node: Node): node is SignatureDeclaration; |
| function isClassElement(node: Node): node is ClassElement; |
| function isClassLike(node: Node): node is ClassLikeDeclaration; |
| function isAccessor(node: Node): node is AccessorDeclaration; |
| function isTypeElement(node: Node): node is TypeElement; |
| function isClassOrTypeElement(node: Node): node is ClassElement | TypeElement; |
| function isObjectLiteralElementLike(node: Node): node is ObjectLiteralElementLike; |
| /** |
| * Node test that determines whether a node is a valid type node. |
| * This differs from the `isPartOfTypeNode` function which determines whether a node is *part* |
| * of a TypeNode. |
| */ |
| function isTypeNode(node: Node): node is TypeNode; |
| function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode; |
| function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName; |
| function isCallLikeExpression(node: Node): node is CallLikeExpression; |
| function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression; |
| function isTemplateLiteral(node: Node): node is TemplateLiteral; |
| function isAssertionExpression(node: Node): node is AssertionExpression; |
| function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement; |
| function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement; |
| function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement; |
| function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause; |
| /** True if node is of a kind that may contain comment text. */ |
| function isJSDocCommentContainingNode(node: Node): boolean; |
| function isSetAccessor(node: Node): node is SetAccessorDeclaration; |
| function isGetAccessor(node: Node): node is GetAccessorDeclaration; |
| function isObjectLiteralElement(node: Node): node is ObjectLiteralElement; |
| function isStringLiteralLike(node: Node): node is StringLiteralLike; |
| } |
| declare namespace ts { |
| function createNode(kind: SyntaxKind, pos?: number, end?: number): Node; |
| /** |
| * Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes |
| * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise, |
| * embedded arrays are flattened and the 'cbNode' callback is invoked for each element. If a callback returns |
| * a truthy value, iteration stops and that value is returned. Otherwise, undefined is returned. |
| * |
| * @param node a given node to visit its children |
| * @param cbNode a callback to be invoked for all child nodes |
| * @param cbNodes a callback to be invoked for embedded array |
| * |
| * @remarks `forEachChild` must visit the children of a node in the order |
| * that they appear in the source code. The language service depends on this property to locate nodes by position. |
| */ |
| function forEachChild<T>(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; |
| function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile; |
| function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined; |
| /** |
| * Parse json text into SyntaxTree and return node and parse errors if any |
| * @param fileName |
| * @param sourceText |
| */ |
| function parseJsonText(fileName: string, sourceText: string): JsonSourceFile; |
| function isExternalModule(file: SourceFile): boolean; |
| function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; |
| } |
| declare namespace ts { |
| function parseCommandLine(commandLine: ReadonlyArray<string>, readFile?: (path: string) => string | undefined): ParsedCommandLine; |
| type DiagnosticReporter = (diagnostic: Diagnostic) => void; |
| /** |
| * Reports config file diagnostics |
| */ |
| interface ConfigFileDiagnosticsReporter { |
| /** |
| * Reports unrecoverable error when parsing config file |
| */ |
| onUnRecoverableConfigFileDiagnostic: DiagnosticReporter; |
| } |
| /** |
| * Interface extending ParseConfigHost to support ParseConfigFile that reads config file and reports errors |
| */ |
| interface ParseConfigFileHost extends ParseConfigHost, ConfigFileDiagnosticsReporter { |
| getCurrentDirectory(): string; |
| } |
| /** |
| * Reads the config file, reports errors if any and exits if the config file cannot be found |
| */ |
| function getParsedCommandLineOfConfigFile(configFileName: string, optionsToExtend: CompilerOptions, host: ParseConfigFileHost, extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine | undefined; |
| /** |
| * Read tsconfig.json file |
| * @param fileName The path to the config file |
| */ |
| function readConfigFile(fileName: string, readFile: (path: string) => string | undefined): { |
| config?: any; |
| error?: Diagnostic; |
| }; |
| /** |
| * Parse the text of the tsconfig.json file |
| * @param fileName The path to the config file |
| * @param jsonText The text of the config file |
| */ |
| function parseConfigFileTextToJson(fileName: string, jsonText: string): { |
| config?: any; |
| error?: Diagnostic; |
| }; |
| /** |
| * Read tsconfig.json file |
| * @param fileName The path to the config file |
| */ |
| function readJsonConfigFile(fileName: string, readFile: (path: string) => string | undefined): TsConfigSourceFile; |
| /** |
| * Convert the json syntax tree into the json value |
| */ |
| function convertToObject(sourceFile: JsonSourceFile, errors: Push<Diagnostic>): any; |
| /** |
| * Parse the contents of a config file (tsconfig.json). |
| * @param json The contents of the config file to parse |
| * @param host Instance of ParseConfigHost used to enumerate files in folder. |
| * @param basePath A root directory to resolve relative path entries in the config |
| * file to. e.g. outDir |
| */ |
| function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: ReadonlyArray<FileExtensionInfo>, extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine; |
| /** |
| * Parse the contents of a config file (tsconfig.json). |
| * @param jsonNode The contents of the config file to parse |
| * @param host Instance of ParseConfigHost used to enumerate files in folder. |
| * @param basePath A root directory to resolve relative path entries in the config |
| * file to. e.g. outDir |
| */ |
| function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: ReadonlyArray<FileExtensionInfo>, extendedConfigCache?: Map<ExtendedConfigCacheEntry>): ParsedCommandLine; |
| interface ParsedTsconfig { |
| raw: any; |
| options?: CompilerOptions; |
| typeAcquisition?: TypeAcquisition; |
| /** |
| * Note that the case of the config path has not yet been normalized, as no files have been imported into the project yet |
| */ |
| extendedConfigPath?: string; |
| } |
| interface ExtendedConfigCacheEntry { |
| extendedResult: TsConfigSourceFile; |
| extendedConfig: ParsedTsconfig | undefined; |
| } |
| function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): { |
| options: CompilerOptions; |
| errors: Diagnostic[]; |
| }; |
| function convertTypeAcquisitionFromJson(jsonOptions: any, basePath: string, configFileName?: string): { |
| options: TypeAcquisition; |
| errors: Diagnostic[]; |
| }; |
| } |
| declare namespace ts { |
| function getEffectiveTypeRoots(options: CompilerOptions, host: GetEffectiveTypeRootsHost): string[] | undefined; |
| /** |
| * @param {string | undefined} containingFile - file that contains type reference directive, can be undefined if containing file is unknown. |
| * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups |
| * is assumed to be the same as root directory of the project. |
| */ |
| function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; |
| /** |
| * Given a set of options, returns the set of type directive names |
| * that should be included for this program automatically. |
| * This list could either come from the config file, |
| * or from enumerating the types root + initial secondary types lookup location. |
| * More type directives might appear in the program later as a result of loading actual source files; |
| * this list is only the set of defaults that are implicitly included. |
| */ |
| function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: ModuleResolutionHost): string[]; |
| /** |
| * Cached module resolutions per containing directory. |
| * This assumes that any module id will have the same resolution for sibling files located in the same folder. |
| */ |
| interface ModuleResolutionCache extends NonRelativeModuleNameResolutionCache { |
| getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): Map<ResolvedModuleWithFailedLookupLocations>; |
| } |
| /** |
| * Stored map from non-relative module name to a table: directory -> result of module lookup in this directory |
| * We support only non-relative module names because resolution of relative module names is usually more deterministic and thus less expensive. |
| */ |
| interface NonRelativeModuleNameResolutionCache { |
| getOrCreateCacheForModuleName(nonRelativeModuleName: string, redirectedReference?: ResolvedProjectReference): PerModuleNameCache; |
| } |
| interface PerModuleNameCache { |
| get(directory: string): ResolvedModuleWithFailedLookupLocations | undefined; |
| set(directory: string, result: ResolvedModuleWithFailedLookupLocations): void; |
| } |
| function createModuleResolutionCache(currentDirectory: string, getCanonicalFileName: (s: string) => string, options?: CompilerOptions): ModuleResolutionCache; |
| function resolveModuleNameFromCache(moduleName: string, containingFile: string, cache: ModuleResolutionCache): ResolvedModuleWithFailedLookupLocations | undefined; |
| function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; |
| function nodeModuleNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; |
| function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, cache?: NonRelativeModuleNameResolutionCache, redirectedReference?: ResolvedProjectReference): ResolvedModuleWithFailedLookupLocations; |
| } |
| declare namespace ts { |
| function createNodeArray<T extends Node>(elements?: ReadonlyArray<T>, hasTrailingComma?: boolean): NodeArray<T>; |
| /** If a node is passed, creates a string literal whose source text is read from a source node during emit. */ |
| function createLiteral(value: string | StringLiteral | NoSubstitutionTemplateLiteral | NumericLiteral | Identifier): StringLiteral; |
| function createLiteral(value: number | PseudoBigInt): NumericLiteral; |
| function createLiteral(value: boolean): BooleanLiteral; |
| function createLiteral(value: string | number | PseudoBigInt | boolean): PrimaryExpression; |
| function createNumericLiteral(value: string, numericLiteralFlags?: TokenFlags): NumericLiteral; |
| function createBigIntLiteral(value: string): BigIntLiteral; |
| function createStringLiteral(text: string): StringLiteral; |
| function createRegularExpressionLiteral(text: string): RegularExpressionLiteral; |
| function createIdentifier(text: string): Identifier; |
| function updateIdentifier(node: Identifier): Identifier; |
| /** Create a unique temporary variable. */ |
| function createTempVariable(recordTempVariable: ((node: Identifier) => void) | undefined): Identifier; |
| /** Create a unique temporary variable for use in a loop. */ |
| function createLoopVariable(): Identifier; |
| /** Create a unique name based on the supplied text. */ |
| function createUniqueName(text: string): Identifier; |
| /** Create a unique name based on the supplied text. */ |
| function createOptimisticUniqueName(text: string): Identifier; |
| /** Create a unique name based on the supplied text. This does not consider names injected by the transformer. */ |
| function createFileLevelUniqueName(text: string): Identifier; |
| /** Create a unique name generated for a node. */ |
| function getGeneratedNameForNode(node: Node | undefined): Identifier; |
| function createToken<TKind extends SyntaxKind>(token: TKind): Token<TKind>; |
| function createSuper(): SuperExpression; |
| function createThis(): ThisExpression & Token<SyntaxKind.ThisKeyword>; |
| function createNull(): NullLiteral & Token<SyntaxKind.NullKeyword>; |
| function createTrue(): BooleanLiteral & Token<SyntaxKind.TrueKeyword>; |
| function createFalse(): BooleanLiteral & Token<SyntaxKind.FalseKeyword>; |
| function createModifier<T extends Modifier["kind"]>(kind: T): Token<T>; |
| function createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[]; |
| function createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName; |
| function updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName; |
| function createComputedPropertyName(expression: Expression): ComputedPropertyName; |
| function updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName; |
| function createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; |
| function updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; |
| function createParameter(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; |
| function updateParameter(node: ParameterDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; |
| function createDecorator(expression: Expression): Decorator; |
| function updateDecorator(node: Decorator, expression: Expression): Decorator; |
| function createPropertySignature(modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName | string, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertySignature; |
| function updatePropertySignature(node: PropertySignature, modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertySignature; |
| function createProperty(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; |
| function updateProperty(node: PropertyDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, questionOrExclamationToken: QuestionToken | ExclamationToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration; |
| function createMethodSignature(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined): MethodSignature; |
| function updateMethodSignature(node: MethodSignature, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined, name: PropertyName, questionToken: QuestionToken | undefined): MethodSignature; |
| function createMethod(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: string | PropertyName, questionToken: QuestionToken | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; |
| function updateMethod(node: MethodDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: PropertyName, questionToken: QuestionToken | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): MethodDeclaration; |
| function createConstructor(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): ConstructorDeclaration; |
| function updateConstructor(node: ConstructorDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): ConstructorDeclaration; |
| function createGetAccessor(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; |
| function updateGetAccessor(node: GetAccessorDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): GetAccessorDeclaration; |
| function createSetAccessor(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): SetAccessorDeclaration; |
| function updateSetAccessor(node: SetAccessorDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: PropertyName, parameters: ReadonlyArray<ParameterDeclaration>, body: Block | undefined): SetAccessorDeclaration; |
| function createCallSignature(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration; |
| function updateCallSignature(node: CallSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): CallSignatureDeclaration; |
| function createConstructSignature(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration; |
| function updateConstructSignature(node: ConstructSignatureDeclaration, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructSignatureDeclaration; |
| function createIndexSignature(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode): IndexSignatureDeclaration; |
| function updateIndexSignature(node: IndexSignatureDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode): IndexSignatureDeclaration; |
| function createKeywordTypeNode(kind: KeywordTypeNode["kind"]): KeywordTypeNode; |
| function createTypePredicateNode(parameterName: Identifier | ThisTypeNode | string, type: TypeNode): TypePredicateNode; |
| function updateTypePredicateNode(node: TypePredicateNode, parameterName: Identifier | ThisTypeNode, type: TypeNode): TypePredicateNode; |
| function createTypeReferenceNode(typeName: string | EntityName, typeArguments: ReadonlyArray<TypeNode> | undefined): TypeReferenceNode; |
| function updateTypeReferenceNode(node: TypeReferenceNode, typeName: EntityName, typeArguments: NodeArray<TypeNode> | undefined): TypeReferenceNode; |
| function createFunctionTypeNode(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): FunctionTypeNode; |
| function updateFunctionTypeNode(node: FunctionTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): FunctionTypeNode; |
| function createConstructorTypeNode(typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructorTypeNode; |
| function updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray<TypeParameterDeclaration> | undefined, parameters: NodeArray<ParameterDeclaration>, type: TypeNode | undefined): ConstructorTypeNode; |
| function createTypeQueryNode(exprName: EntityName): TypeQueryNode; |
| function updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName): TypeQueryNode; |
| function createTypeLiteralNode(members: ReadonlyArray<TypeElement> | undefined): TypeLiteralNode; |
| function updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray<TypeElement>): TypeLiteralNode; |
| function createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; |
| function updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode; |
| function createTupleTypeNode(elementTypes: ReadonlyArray<TypeNode>): TupleTypeNode; |
| function updateTupleTypeNode(node: TupleTypeNode, elementTypes: ReadonlyArray<TypeNode>): TupleTypeNode; |
| function createOptionalTypeNode(type: TypeNode): OptionalTypeNode; |
| function updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode; |
| function createRestTypeNode(type: TypeNode): RestTypeNode; |
| function updateRestTypeNode(node: RestTypeNode, type: TypeNode): RestTypeNode; |
| function createUnionTypeNode(types: ReadonlyArray<TypeNode>): UnionTypeNode; |
| function updateUnionTypeNode(node: UnionTypeNode, types: NodeArray<TypeNode>): UnionTypeNode; |
| function createIntersectionTypeNode(types: ReadonlyArray<TypeNode>): IntersectionTypeNode; |
| function updateIntersectionTypeNode(node: IntersectionTypeNode, types: NodeArray<TypeNode>): IntersectionTypeNode; |
| function createUnionOrIntersectionTypeNode(kind: SyntaxKind.UnionType | SyntaxKind.IntersectionType, types: ReadonlyArray<TypeNode>): UnionOrIntersectionTypeNode; |
| function createConditionalTypeNode(checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; |
| function updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; |
| function createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; |
| function updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; |
| function createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: ReadonlyArray<TypeNode>, isTypeOf?: boolean): ImportTypeNode; |
| function updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier?: EntityName, typeArguments?: ReadonlyArray<TypeNode>, isTypeOf?: boolean): ImportTypeNode; |
| function createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; |
| function updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; |
| function createThisTypeNode(): ThisTypeNode; |
| function createTypeOperatorNode(type: TypeNode): TypeOperatorNode; |
| function createTypeOperatorNode(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword, type: TypeNode): TypeOperatorNode; |
| function updateTypeOperatorNode(node: TypeOperatorNode, type: TypeNode): TypeOperatorNode; |
| function createIndexedAccessTypeNode(objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; |
| function updateIndexedAccessTypeNode(node: IndexedAccessTypeNode, objectType: TypeNode, indexType: TypeNode): IndexedAccessTypeNode; |
| function createMappedTypeNode(readonlyToken: ReadonlyToken | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined): MappedTypeNode; |
| function updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyToken | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined): MappedTypeNode; |
| function createLiteralTypeNode(literal: LiteralTypeNode["literal"]): LiteralTypeNode; |
| function updateLiteralTypeNode(node: LiteralTypeNode, literal: LiteralTypeNode["literal"]): LiteralTypeNode; |
| function createObjectBindingPattern(elements: ReadonlyArray<BindingElement>): ObjectBindingPattern; |
| function updateObjectBindingPattern(node: ObjectBindingPattern, elements: ReadonlyArray<BindingElement>): ObjectBindingPattern; |
| function createArrayBindingPattern(elements: ReadonlyArray<ArrayBindingElement>): ArrayBindingPattern; |
| function updateArrayBindingPattern(node: ArrayBindingPattern, elements: ReadonlyArray<ArrayBindingElement>): ArrayBindingPattern; |
| function createBindingElement(dotDotDotToken: DotDotDotToken | undefined, propertyName: string | PropertyName | undefined, name: string | BindingName, initializer?: Expression): BindingElement; |
| function updateBindingElement(node: BindingElement, dotDotDotToken: DotDotDotToken | undefined, propertyName: PropertyName | undefined, name: BindingName, initializer: Expression | undefined): BindingElement; |
| function createArrayLiteral(elements?: ReadonlyArray<Expression>, multiLine?: boolean): ArrayLiteralExpression; |
| function updateArrayLiteral(node: ArrayLiteralExpression, elements: ReadonlyArray<Expression>): ArrayLiteralExpression; |
| function createObjectLiteral(properties?: ReadonlyArray<ObjectLiteralElementLike>, multiLine?: boolean): ObjectLiteralExpression; |
| function updateObjectLiteral(node: ObjectLiteralExpression, properties: ReadonlyArray<ObjectLiteralElementLike>): ObjectLiteralExpression; |
| function createPropertyAccess(expression: Expression, name: string | Identifier): PropertyAccessExpression; |
| function updatePropertyAccess(node: PropertyAccessExpression, expression: Expression, name: Identifier): PropertyAccessExpression; |
| function createElementAccess(expression: Expression, index: number | Expression): ElementAccessExpression; |
| function updateElementAccess(node: ElementAccessExpression, expression: Expression, argumentExpression: Expression): ElementAccessExpression; |
| function createCall(expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression> | undefined): CallExpression; |
| function updateCall(node: CallExpression, expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression>): CallExpression; |
| function createNew(expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression> | undefined): NewExpression; |
| function updateNew(node: NewExpression, expression: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, argumentsArray: ReadonlyArray<Expression> | undefined): NewExpression; |
| /** @deprecated */ function createTaggedTemplate(tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; |
| function createTaggedTemplate(tag: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, template: TemplateLiteral): TaggedTemplateExpression; |
| /** @deprecated */ function updateTaggedTemplate(node: TaggedTemplateExpression, tag: Expression, template: TemplateLiteral): TaggedTemplateExpression; |
| function updateTaggedTemplate(node: TaggedTemplateExpression, tag: Expression, typeArguments: ReadonlyArray<TypeNode> | undefined, template: TemplateLiteral): TaggedTemplateExpression; |
| function createTypeAssertion(type: TypeNode, expression: Expression): TypeAssertion; |
| function updateTypeAssertion(node: TypeAssertion, type: TypeNode, expression: Expression): TypeAssertion; |
| function createParen(expression: Expression): ParenthesizedExpression; |
| function updateParen(node: ParenthesizedExpression, expression: Expression): ParenthesizedExpression; |
| function createFunctionExpression(modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration> | undefined, type: TypeNode | undefined, body: Block): FunctionExpression; |
| function updateFunctionExpression(node: FunctionExpression, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block): FunctionExpression; |
| function createArrowFunction(modifiers: ReadonlyArray<Modifier> | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, equalsGreaterThanToken: EqualsGreaterThanToken | undefined, body: ConciseBody): ArrowFunction; |
| function updateArrowFunction(node: ArrowFunction, modifiers: ReadonlyArray<Modifier> | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, equalsGreaterThanToken: Token<SyntaxKind.EqualsGreaterThanToken>, body: ConciseBody): ArrowFunction; |
| function createDelete(expression: Expression): DeleteExpression; |
| function updateDelete(node: DeleteExpression, expression: Expression): DeleteExpression; |
| function createTypeOf(expression: Expression): TypeOfExpression; |
| function updateTypeOf(node: TypeOfExpression, expression: Expression): TypeOfExpression; |
| function createVoid(expression: Expression): VoidExpression; |
| function updateVoid(node: VoidExpression, expression: Expression): VoidExpression; |
| function createAwait(expression: Expression): AwaitExpression; |
| function updateAwait(node: AwaitExpression, expression: Expression): AwaitExpression; |
| function createPrefix(operator: PrefixUnaryOperator, operand: Expression): PrefixUnaryExpression; |
| function updatePrefix(node: PrefixUnaryExpression, operand: Expression): PrefixUnaryExpression; |
| function createPostfix(operand: Expression, operator: PostfixUnaryOperator): PostfixUnaryExpression; |
| function updatePostfix(node: PostfixUnaryExpression, operand: Expression): PostfixUnaryExpression; |
| function createBinary(left: Expression, operator: BinaryOperator | BinaryOperatorToken, right: Expression): BinaryExpression; |
| function updateBinary(node: BinaryExpression, left: Expression, right: Expression, operator?: BinaryOperator | BinaryOperatorToken): BinaryExpression; |
| /** @deprecated */ function createConditional(condition: Expression, whenTrue: Expression, whenFalse: Expression): ConditionalExpression; |
| function createConditional(condition: Expression, questionToken: QuestionToken, whenTrue: Expression, colonToken: ColonToken, whenFalse: Expression): ConditionalExpression; |
| function updateConditional(node: ConditionalExpression, condition: Expression, questionToken: Token<SyntaxKind.QuestionToken>, whenTrue: Expression, colonToken: Token<SyntaxKind.ColonToken>, whenFalse: Expression): ConditionalExpression; |
| function createTemplateExpression(head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression; |
| function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression; |
| function createTemplateHead(text: string): TemplateHead; |
| function createTemplateMiddle(text: string): TemplateMiddle; |
| function createTemplateTail(text: string): TemplateTail; |
| function createNoSubstitutionTemplateLiteral(text: string): NoSubstitutionTemplateLiteral; |
| function createYield(expression?: Expression): YieldExpression; |
| function createYield(asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression; |
| function updateYield(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression; |
| function createSpread(expression: Expression): SpreadElement; |
| function updateSpread(node: SpreadElement, expression: Expression): SpreadElement; |
| function createClassExpression(modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassExpression; |
| function updateClassExpression(node: ClassExpression, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassExpression; |
| function createOmittedExpression(): OmittedExpression; |
| function createExpressionWithTypeArguments(typeArguments: ReadonlyArray<TypeNode> | undefined, expression: Expression): ExpressionWithTypeArguments; |
| function updateExpressionWithTypeArguments(node: ExpressionWithTypeArguments, typeArguments: ReadonlyArray<TypeNode> | undefined, expression: Expression): ExpressionWithTypeArguments; |
| function createAsExpression(expression: Expression, type: TypeNode): AsExpression; |
| function updateAsExpression(node: AsExpression, expression: Expression, type: TypeNode): AsExpression; |
| function createNonNullExpression(expression: Expression): NonNullExpression; |
| function updateNonNullExpression(node: NonNullExpression, expression: Expression): NonNullExpression; |
| function createMetaProperty(keywordToken: MetaProperty["keywordToken"], name: Identifier): MetaProperty; |
| function updateMetaProperty(node: MetaProperty, name: Identifier): MetaProperty; |
| function createTemplateSpan(expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; |
| function updateTemplateSpan(node: TemplateSpan, expression: Expression, literal: TemplateMiddle | TemplateTail): TemplateSpan; |
| function createSemicolonClassElement(): SemicolonClassElement; |
| function createBlock(statements: ReadonlyArray<Statement>, multiLine?: boolean): Block; |
| function updateBlock(node: Block, statements: ReadonlyArray<Statement>): Block; |
| function createVariableStatement(modifiers: ReadonlyArray<Modifier> | undefined, declarationList: VariableDeclarationList | ReadonlyArray<VariableDeclaration>): VariableStatement; |
| function updateVariableStatement(node: VariableStatement, modifiers: ReadonlyArray<Modifier> | undefined, declarationList: VariableDeclarationList): VariableStatement; |
| function createEmptyStatement(): EmptyStatement; |
| function createExpressionStatement(expression: Expression): ExpressionStatement; |
| function updateExpressionStatement(node: ExpressionStatement, expression: Expression): ExpressionStatement; |
| /** @deprecated Use `createExpressionStatement` instead. */ |
| const createStatement: typeof createExpressionStatement; |
| /** @deprecated Use `updateExpressionStatement` instead. */ |
| const updateStatement: typeof updateExpressionStatement; |
| function createIf(expression: Expression, thenStatement: Statement, elseStatement?: Statement): IfStatement; |
| function updateIf(node: IfStatement, expression: Expression, thenStatement: Statement, elseStatement: Statement | undefined): IfStatement; |
| function createDo(statement: Statement, expression: Expression): DoStatement; |
| function updateDo(node: DoStatement, statement: Statement, expression: Expression): DoStatement; |
| function createWhile(expression: Expression, statement: Statement): WhileStatement; |
| function updateWhile(node: WhileStatement, expression: Expression, statement: Statement): WhileStatement; |
| function createFor(initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; |
| function updateFor(node: ForStatement, initializer: ForInitializer | undefined, condition: Expression | undefined, incrementor: Expression | undefined, statement: Statement): ForStatement; |
| function createForIn(initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; |
| function updateForIn(node: ForInStatement, initializer: ForInitializer, expression: Expression, statement: Statement): ForInStatement; |
| function createForOf(awaitModifier: AwaitKeywordToken | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; |
| function updateForOf(node: ForOfStatement, awaitModifier: AwaitKeywordToken | undefined, initializer: ForInitializer, expression: Expression, statement: Statement): ForOfStatement; |
| function createContinue(label?: string | Identifier): ContinueStatement; |
| function updateContinue(node: ContinueStatement, label: Identifier | undefined): ContinueStatement; |
| function createBreak(label?: string | Identifier): BreakStatement; |
| function updateBreak(node: BreakStatement, label: Identifier | undefined): BreakStatement; |
| function createReturn(expression?: Expression): ReturnStatement; |
| function updateReturn(node: ReturnStatement, expression: Expression | undefined): ReturnStatement; |
| function createWith(expression: Expression, statement: Statement): WithStatement; |
| function updateWith(node: WithStatement, expression: Expression, statement: Statement): WithStatement; |
| function createSwitch(expression: Expression, caseBlock: CaseBlock): SwitchStatement; |
| function updateSwitch(node: SwitchStatement, expression: Expression, caseBlock: CaseBlock): SwitchStatement; |
| function createLabel(label: string | Identifier, statement: Statement): LabeledStatement; |
| function updateLabel(node: LabeledStatement, label: Identifier, statement: Statement): LabeledStatement; |
| function createThrow(expression: Expression): ThrowStatement; |
| function updateThrow(node: ThrowStatement, expression: Expression): ThrowStatement; |
| function createTry(tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; |
| function updateTry(node: TryStatement, tryBlock: Block, catchClause: CatchClause | undefined, finallyBlock: Block | undefined): TryStatement; |
| function createDebuggerStatement(): DebuggerStatement; |
| function createVariableDeclaration(name: string | BindingName, type?: TypeNode, initializer?: Expression): VariableDeclaration; |
| function updateVariableDeclaration(node: VariableDeclaration, name: BindingName, type: TypeNode | undefined, initializer: Expression | undefined): VariableDeclaration; |
| function createVariableDeclarationList(declarations: ReadonlyArray<VariableDeclaration>, flags?: NodeFlags): VariableDeclarationList; |
| function updateVariableDeclarationList(node: VariableDeclarationList, declarations: ReadonlyArray<VariableDeclaration>): VariableDeclarationList; |
| function createFunctionDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; |
| function updateFunctionDeclaration(node: FunctionDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, asteriskToken: AsteriskToken | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, parameters: ReadonlyArray<ParameterDeclaration>, type: TypeNode | undefined, body: Block | undefined): FunctionDeclaration; |
| function createClassDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassDeclaration; |
| function updateClassDeclaration(node: ClassDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier | undefined, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<ClassElement>): ClassDeclaration; |
| function createInterfaceDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<TypeElement>): InterfaceDeclaration; |
| function updateInterfaceDeclaration(node: InterfaceDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, heritageClauses: ReadonlyArray<HeritageClause> | undefined, members: ReadonlyArray<TypeElement>): InterfaceDeclaration; |
| function createTypeAliasDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, type: TypeNode): TypeAliasDeclaration; |
| function updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, typeParameters: ReadonlyArray<TypeParameterDeclaration> | undefined, type: TypeNode): TypeAliasDeclaration; |
| function createEnumDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, members: ReadonlyArray<EnumMember>): EnumDeclaration; |
| function updateEnumDeclaration(node: EnumDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, members: ReadonlyArray<EnumMember>): EnumDeclaration; |
| function createModuleDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: ModuleName, body: ModuleBody | undefined, flags?: NodeFlags): ModuleDeclaration; |
| function updateModuleDeclaration(node: ModuleDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration; |
| function createModuleBlock(statements: ReadonlyArray<Statement>): ModuleBlock; |
| function updateModuleBlock(node: ModuleBlock, statements: ReadonlyArray<Statement>): ModuleBlock; |
| function createCaseBlock(clauses: ReadonlyArray<CaseOrDefaultClause>): CaseBlock; |
| function updateCaseBlock(node: CaseBlock, clauses: ReadonlyArray<CaseOrDefaultClause>): CaseBlock; |
| function createNamespaceExportDeclaration(name: string | Identifier): NamespaceExportDeclaration; |
| function updateNamespaceExportDeclaration(node: NamespaceExportDeclaration, name: Identifier): NamespaceExportDeclaration; |
| function createImportEqualsDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: string | Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; |
| function updateImportEqualsDeclaration(node: ImportEqualsDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, name: Identifier, moduleReference: ModuleReference): ImportEqualsDeclaration; |
| function createImportDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression): ImportDeclaration; |
| function updateImportDeclaration(node: ImportDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression): ImportDeclaration; |
| function createImportClause(name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; |
| function updateImportClause(node: ImportClause, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; |
| function createNamespaceImport(name: Identifier): NamespaceImport; |
| function updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; |
| function createNamedImports(elements: ReadonlyArray<ImportSpecifier>): NamedImports; |
| function updateNamedImports(node: NamedImports, elements: ReadonlyArray<ImportSpecifier>): NamedImports; |
| function createImportSpecifier(propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; |
| function updateImportSpecifier(node: ImportSpecifier, propertyName: Identifier | undefined, name: Identifier): ImportSpecifier; |
| function createExportAssignment(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, isExportEquals: boolean | undefined, expression: Expression): ExportAssignment; |
| function updateExportAssignment(node: ExportAssignment, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, expression: Expression): ExportAssignment; |
| function createExportDeclaration(decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, exportClause: NamedExports | undefined, moduleSpecifier?: Expression): ExportDeclaration; |
| function updateExportDeclaration(node: ExportDeclaration, decorators: ReadonlyArray<Decorator> | undefined, modifiers: ReadonlyArray<Modifier> | undefined, exportClause: NamedExports | undefined, moduleSpecifier: Expression | undefined): ExportDeclaration; |
| function createNamedExports(elements: ReadonlyArray<ExportSpecifier>): NamedExports; |
| function updateNamedExports(node: NamedExports, elements: ReadonlyArray<ExportSpecifier>): NamedExports; |
| function createExportSpecifier(propertyName: string | Identifier | undefined, name: string | Identifier): ExportSpecifier; |
| function updateExportSpecifier(node: ExportSpecifier, propertyName: Identifier | undefined, name: Identifier): ExportSpecifier; |
| function createExternalModuleReference(expression: Expression): ExternalModuleReference; |
| function updateExternalModuleReference(node: ExternalModuleReference, expression: Expression): ExternalModuleReference; |
| function createJsxElement(openingElement: JsxOpeningElement, children: ReadonlyArray<JsxChild>, closingElement: JsxClosingElement): JsxElement; |
| function updateJsxElement(node: JsxElement, openingElement: JsxOpeningElement, children: ReadonlyArray<JsxChild>, closingElement: JsxClosingElement): JsxElement; |
| function createJsxSelfClosingElement(tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxSelfClosingElement; |
| function updateJsxSelfClosingElement(node: JsxSelfClosingElement, tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxSelfClosingElement; |
| function createJsxOpeningElement(tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxOpeningElement; |
| function updateJsxOpeningElement(node: JsxOpeningElement, tagName: JsxTagNameExpression, typeArguments: ReadonlyArray<TypeNode> | undefined, attributes: JsxAttributes): JsxOpeningElement; |
| function createJsxClosingElement(tagName: JsxTagNameExpression): JsxClosingElement; |
| function updateJsxClosingElement(node: JsxClosingElement, tagName: JsxTagNameExpression): JsxClosingElement; |
| function createJsxFragment(openingFragment: JsxOpeningFragment, children: ReadonlyArray<JsxChild>, closingFragment: JsxClosingFragment): JsxFragment; |
| function createJsxText(text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; |
| function updateJsxText(node: JsxText, text: string, containsOnlyTriviaWhiteSpaces?: boolean): JsxText; |
| function createJsxOpeningFragment(): JsxOpeningFragment; |
| function createJsxJsxClosingFragment(): JsxClosingFragment; |
| function updateJsxFragment(node: JsxFragment, openingFragment: JsxOpeningFragment, children: ReadonlyArray<JsxChild>, closingFragment: JsxClosingFragment): JsxFragment; |
| function createJsxAttribute(name: Identifier, initializer: StringLiteral | JsxExpression): JsxAttribute; |
| function updateJsxAttribute(node: JsxAttribute, name: Identifier, initializer: StringLiteral | JsxExpression): JsxAttribute; |
| function createJsxAttributes(properties: ReadonlyArray<JsxAttributeLike>): JsxAttributes; |
| function updateJsxAttributes(node: JsxAttributes, properties: ReadonlyArray<JsxAttributeLike>): JsxAttributes; |
| function createJsxSpreadAttribute(expression: Expression): JsxSpreadAttribute; |
| function updateJsxSpreadAttribute(node: JsxSpreadAttribute, expression: Expression): JsxSpreadAttribute; |
| function createJsxExpression(dotDotDotToken: DotDotDotToken | undefined, expression: Expression | undefined): JsxExpression; |
| function updateJsxExpression(node: JsxExpression, expression: Expression | undefined): JsxExpression; |
| function createCaseClause(expression: Expression, statements: ReadonlyArray<Statement>): CaseClause; |
| function updateCaseClause(node: CaseClause, expression: Expression, statements: ReadonlyArray<Statement>): CaseClause; |
| function createDefaultClause(statements: ReadonlyArray<Statement>): DefaultClause; |
| function updateDefaultClause(node: DefaultClause, statements: ReadonlyArray<Statement>): DefaultClause; |
| function createHeritageClause(token: HeritageClause["token"], types: ReadonlyArray<ExpressionWithTypeArguments>): HeritageClause; |
| function updateHeritageClause(node: HeritageClause, types: ReadonlyArray<ExpressionWithTypeArguments>): HeritageClause; |
| function createCatchClause(variableDeclaration: string | VariableDeclaration | undefined, block: Block): CatchClause; |
| function updateCatchClause(node: CatchClause, variableDeclaration: VariableDeclaration | undefined, block: Block): CatchClause; |
| function createPropertyAssignment(name: string | PropertyName, initializer: Expression): PropertyAssignment; |
| function updatePropertyAssignment(node: PropertyAssignment, name: PropertyName, initializer: Expression): PropertyAssignment; |
| function createShorthandPropertyAssignment(name: string | Identifier, objectAssignmentInitializer?: Expression): ShorthandPropertyAssignment; |
| function updateShorthandPropertyAssignment(node: ShorthandPropertyAssignment, name: Identifier, objectAssignmentInitializer: Expression | undefined): ShorthandPropertyAssignment; |
| function createSpreadAssignment(expression: Expression): SpreadAssignment; |
| function updateSpreadAssignment(node: SpreadAssignment, expression: Expression): SpreadAssignment; |
| function createEnumMember(name: string | PropertyName, initializer?: Expression): EnumMember; |
| function updateEnumMember(node: EnumMember, name: PropertyName, initializer: Expression | undefined): EnumMember; |
| function updateSourceFileNode(node: SourceFile, statements: ReadonlyArray<Statement>, isDeclarationFile?: boolean, referencedFiles?: SourceFile["referencedFiles"], typeReferences?: SourceFile["typeReferenceDirectives"], hasNoDefaultLib?: boolean, libReferences?: SourceFile["libReferenceDirectives"]): SourceFile; |
| /** |
| * Creates a shallow, memberwise clone of a node for mutation. |
| */ |
| function getMutableClone<T extends Node>(node: T): T; |
| /** |
| * Creates a synthetic statement to act as a placeholder for a not-emitted statement in |
| * order to preserve comments. |
| * |
| * @param original The original statement. |
| */ |
| function createNotEmittedStatement(original: Node): NotEmittedStatement; |
| /** |
| * Creates a synthetic expression to act as a placeholder for a not-emitted expression in |
| * order to preserve comments or sourcemap positions. |
| * |
| * @param expression The inner expression to emit. |
| * @param original The original outer expression. |
| * @param location The location for the expression. Defaults to the positions from "original" if provided. |
| */ |
| function createPartiallyEmittedExpression(expression: Expression, original?: Node): PartiallyEmittedExpression; |
| function updatePartiallyEmittedExpression(node: PartiallyEmittedExpression, expression: Expression): PartiallyEmittedExpression; |
| function createCommaList(elements: ReadonlyArray<Expression>): CommaListExpression; |
| function updateCommaList(node: CommaListExpression, elements: ReadonlyArray<Expression>): CommaListExpression; |
| function createBundle(sourceFiles: ReadonlyArray<SourceFile>, prepends?: ReadonlyArray<UnparsedSource | InputFiles>): Bundle; |
| function createUnparsedSourceFile(text: string): UnparsedSource; |
| function createUnparsedSourceFile(inputFile: InputFiles, type: "js" | "dts", stripInternal?: boolean): UnparsedSource; |
| function createUnparsedSourceFile(text: string, mapPath: string | undefined, map: string | undefined): UnparsedSource; |
| function createInputFiles(javascriptText: string, declarationText: string): InputFiles; |
| function createInputFiles(readFileText: (path: string) => string | undefined, javascriptPath: string, javascriptMapPath: string | undefined, declarationPath: string, declarationMapPath: string | undefined, buildInfoPath: string | undefined): InputFiles; |
| function createInputFiles(javascriptText: string, declarationText: string, javascriptMapPath: string | undefined, javascriptMapText: string | undefined, declarationMapPath: string | undefined, declarationMapText: string | undefined): InputFiles; |
| function updateBundle(node: Bundle, sourceFiles: ReadonlyArray<SourceFile>, prepends?: ReadonlyArray<UnparsedSource | InputFiles>): Bundle; |
| function createImmediatelyInvokedFunctionExpression(statements: ReadonlyArray<Statement>): CallExpression; |
| function createImmediatelyInvokedFunctionExpression(statements: ReadonlyArray<Statement>, param: ParameterDeclaration, paramValue: Expression): CallExpression; |
| function createImmediatelyInvokedArrowFunction(statements: ReadonlyArray<Statement>): CallExpression; |
| function createImmediatelyInvokedArrowFunction(statements: ReadonlyArray<Statement>, param: ParameterDeclaration, paramValue: Expression): CallExpression; |
| function createComma(left: Expression, right: Expression): Expression; |
| function createLessThan(left: Expression, right: Expression): Expression; |
| function createAssignment(left: ObjectLiteralExpression | ArrayLiteralExpression, right: Expression): DestructuringAssignment; |
| function createAssignment(left: Expression, right: Expression): BinaryExpression; |
| function createStrictEquality(left: Expression, right: Expression): BinaryExpression; |
| function createStrictInequality(left: Expression, right: Expression): BinaryExpression; |
| function createAdd(left: Expression, right: Expression): BinaryExpression; |
| function createSubtract(left: Expression, right: Expression): BinaryExpression; |
| function createPostfixIncrement(operand: Expression): PostfixUnaryExpression; |
| function createLogicalAnd(left: Expression, right: Expression): BinaryExpression; |
| function createLogicalOr(left: Expression, right: Expression): BinaryExpression; |
| function createLogicalNot(operand: Expression): PrefixUnaryExpression; |
| function createVoidZero(): VoidExpression; |
| function createExportDefault(expression: Expression): ExportAssignment; |
| function createExternalModuleExport(exportName: Identifier): ExportDeclaration; |
| /** |
| * Clears any EmitNode entries from parse-tree nodes. |
| * @param sourceFile A source file. |
| */ |
| function disposeEmitNodes(sourceFile: SourceFile): void; |
| function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T; |
| /** |
| * Sets flags that control emit behavior of a node. |
| */ |
| function setEmitFlags<T extends Node>(node: T, emitFlags: EmitFlags): T; |
| /** |
| * Gets a custom text range to use when emitting source maps. |
| */ |
| function getSourceMapRange(node: Node): SourceMapRange; |
| /** |
| * Sets a custom text range to use when emitting source maps. |
| */ |
| function setSourceMapRange<T extends Node>(node: T, range: SourceMapRange | undefined): T; |
| /** |
| * Create an external source map source file reference |
| */ |
| function createSourceMapSource(fileName: string, text: string, skipTrivia?: (pos: number) => number): SourceMapSource; |
| /** |
| * Gets the TextRange to use for source maps for a token of a node. |
| */ |
| function getTokenSourceMapRange(node: Node, token: SyntaxKind): SourceMapRange | undefined; |
| /** |
| * Sets the TextRange to use for source maps for a token of a node. |
| */ |
| function setTokenSourceMapRange<T extends Node>(node: T, token: SyntaxKind, range: SourceMapRange | undefined): T; |
| /** |
| * Gets a custom text range to use when emitting comments. |
| */ |
| function getCommentRange(node: Node): TextRange; |
| /** |
| * Sets a custom text range to use when emitting comments. |
| */ |
| function setCommentRange<T extends Node>(node: T, range: TextRange): T; |
| function getSyntheticLeadingComments(node: Node): SynthesizedComment[] | undefined; |
| function setSyntheticLeadingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; |
| function addSyntheticLeadingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; |
| function getSyntheticTrailingComments(node: Node): SynthesizedComment[] | undefined; |
| function setSyntheticTrailingComments<T extends Node>(node: T, comments: SynthesizedComment[] | undefined): T; |
| function addSyntheticTrailingComment<T extends Node>(node: T, kind: SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia, text: string, hasTrailingNewLine?: boolean): T; |
| function moveSyntheticComments<T extends Node>(node: T, original: Node): T; |
| /** |
| * Gets the constant value to emit for an expression. |
| */ |
| function getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): string | number | undefined; |
| /** |
| * Sets the constant value to emit for an expression. |
| */ |
| function setConstantValue(node: PropertyAccessExpression | ElementAccessExpression, value: string | number): PropertyAccessExpression | ElementAccessExpression; |
| /** |
| * Adds an EmitHelper to a node. |
| */ |
| function addEmitHelper<T extends Node>(node: T, helper: EmitHelper): T; |
| /** |
| * Add EmitHelpers to a node. |
| */ |
| function addEmitHelpers<T extends Node>(node: T, helpers: EmitHelper[] | undefined): T; |
| /** |
| * Removes an EmitHelper from a node. |
| */ |
| function removeEmitHelper(node: Node, helper: EmitHelper): boolean; |
| /** |
| * Gets the EmitHelpers of a node. |
| */ |
| function getEmitHelpers(node: Node): EmitHelper[] | undefined; |
| /** |
| * Moves matching emit helpers from a source node to a target node. |
| */ |
| function moveEmitHelpers(source: Node, target: Node, predicate: (helper: EmitHelper) => boolean): void; |
| function setOriginalNode<T extends Node>(node: T, original: Node | undefined): T; |
| } |
| declare namespace ts { |
| /** |
| * Visits a Node using the supplied visitor, possibly returning a new Node in its place. |
| * |
| * @param node The Node to visit. |
| * @param visitor The callback used to visit the Node. |
| * @param test A callback to execute to verify the Node is valid. |
| * @param lift An optional callback to execute to lift a NodeArray into a valid Node. |
| */ |
| function visitNode<T extends Node>(node: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: NodeArray<Node>) => T): T; |
| /** |
| * Visits a Node using the supplied visitor, possibly returning a new Node in its place. |
| * |
| * @param node The Node to visit. |
| * @param visitor The callback used to visit the Node. |
| * @param test A callback to execute to verify the Node is valid. |
| * @param lift An optional callback to execute to lift a NodeArray into a valid Node. |
| */ |
| function visitNode<T extends Node>(node: T | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, lift?: (node: NodeArray<Node>) => T): T | undefined; |
| /** |
| * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. |
| * |
| * @param nodes The NodeArray to visit. |
| * @param visitor The callback used to visit a Node. |
| * @param test A node test to execute for each node. |
| * @param start An optional value indicating the starting offset at which to start visiting. |
| * @param count An optional value indicating the maximum number of nodes to visit. |
| */ |
| function visitNodes<T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T>; |
| /** |
| * Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place. |
| * |
| * @param nodes The NodeArray to visit. |
| * @param visitor The callback used to visit a Node. |
| * @param test A node test to execute for each node. |
| * @param start An optional value indicating the starting offset at which to start visiting. |
| * @param count An optional value indicating the maximum number of nodes to visit. |
| */ |
| function visitNodes<T extends Node>(nodes: NodeArray<T> | undefined, visitor: Visitor, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<T> | undefined; |
| /** |
| * Starts a new lexical environment and visits a statement list, ending the lexical environment |
| * and merging hoisted declarations upon completion. |
| */ |
| function visitLexicalEnvironment(statements: NodeArray<Statement>, visitor: Visitor, context: TransformationContext, start?: number, ensureUseStrict?: boolean): NodeArray<Statement>; |
| /** |
| * Starts a new lexical environment and visits a parameter list, suspending the lexical |
| * environment upon completion. |
| */ |
| function visitParameterList(nodes: NodeArray<ParameterDeclaration> | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes): NodeArray<ParameterDeclaration>; |
| /** |
| * Resumes a suspended lexical environment and visits a function body, ending the lexical |
| * environment and merging hoisted declarations upon completion. |
| */ |
| function visitFunctionBody(node: FunctionBody, visitor: Visitor, context: TransformationContext): FunctionBody; |
| /** |
| * Resumes a suspended lexical environment and visits a function body, ending the lexical |
| * environment and merging hoisted declarations upon completion. |
| */ |
| function visitFunctionBody(node: FunctionBody | undefined, visitor: Visitor, context: TransformationContext): FunctionBody | undefined; |
| /** |
| * Resumes a suspended lexical environment and visits a concise body, ending the lexical |
| * environment and merging hoisted declarations upon completion. |
| */ |
| function visitFunctionBody(node: ConciseBody, visitor: Visitor, context: TransformationContext): ConciseBody; |
| /** |
| * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. |
| * |
| * @param node The Node whose children will be visited. |
| * @param visitor The callback used to visit each child. |
| * @param context A lexical environment context for the visitor. |
| */ |
| function visitEachChild<T extends Node>(node: T, visitor: Visitor, context: TransformationContext): T; |
| /** |
| * Visits each child of a Node using the supplied visitor, possibly returning a new Node of the same kind in its place. |
| * |
| * @param node The Node whose children will be visited. |
| * @param visitor The callback used to visit each child. |
| * @param context A lexical environment context for the visitor. |
| */ |
| function visitEachChild<T extends Node>(node: T | undefined, visitor: Visitor, context: TransformationContext, nodesVisitor?: typeof visitNodes, tokenVisitor?: Visitor): T | undefined; |
| } |
| declare namespace ts { |
| function createPrinter(printerOptions?: PrinterOptions, handlers?: PrintHandlers): Printer; |
| } |
| declare namespace ts { |
| function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName?: string): string | undefined; |
| function resolveTripleslashReference(moduleName: string, containingFile: string): string; |
| function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost; |
| function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| interface FormatDiagnosticsHost { |
| getCurrentDirectory(): string; |
| getCanonicalFileName(fileName: string): string; |
| getNewLine(): string; |
| } |
| function formatDiagnostics(diagnostics: ReadonlyArray<Diagnostic>, host: FormatDiagnosticsHost): string; |
| function formatDiagnostic(diagnostic: Diagnostic, host: FormatDiagnosticsHost): string; |
| function formatDiagnosticsWithColorAndContext(diagnostics: ReadonlyArray<Diagnostic>, host: FormatDiagnosticsHost): string; |
| function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain | undefined, newLine: string): string; |
| function getConfigFileParsingDiagnostics(configFileParseResult: ParsedCommandLine): ReadonlyArray<Diagnostic>; |
| /** |
| * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' |
| * that represent a compilation unit. |
| * |
| * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and |
| * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. |
| * |
| * @param createProgramOptions - The options for creating a program. |
| * @returns A 'Program' object. |
| */ |
| function createProgram(createProgramOptions: CreateProgramOptions): Program; |
| /** |
| * Create a new 'Program' instance. A Program is an immutable collection of 'SourceFile's and a 'CompilerOptions' |
| * that represent a compilation unit. |
| * |
| * Creating a program proceeds from a set of root files, expanding the set of inputs by following imports and |
| * triple-slash-reference-path directives transitively. '@types' and triple-slash-reference-types are also pulled in. |
| * |
| * @param rootNames - A set of root files. |
| * @param options - The compiler options which should be used. |
| * @param host - The host interacts with the underlying file system. |
| * @param oldProgram - Reuses an old program structure. |
| * @param configFileParsingDiagnostics - error during config file parsing |
| * @returns A 'Program' object. |
| */ |
| function createProgram(rootNames: ReadonlyArray<string>, options: CompilerOptions, host?: CompilerHost, oldProgram?: Program, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): Program; |
| /** @deprecated */ interface ResolveProjectReferencePathHost { |
| fileExists(fileName: string): boolean; |
| } |
| /** |
| * Returns the target config filename of a project reference. |
| * Note: The file might not exist. |
| */ |
| function resolveProjectReferencePath(ref: ProjectReference): ResolvedConfigFileName; |
| /** @deprecated */ function resolveProjectReferencePath(host: ResolveProjectReferencePathHost, ref: ProjectReference): ResolvedConfigFileName; |
| } |
| declare namespace ts { |
| interface EmitOutput { |
| outputFiles: OutputFile[]; |
| emitSkipped: boolean; |
| } |
| interface OutputFile { |
| name: string; |
| writeByteOrderMark: boolean; |
| text: string; |
| } |
| } |
| declare namespace ts { |
| type AffectedFileResult<T> = { |
| result: T; |
| affected: SourceFile | Program; |
| } | undefined; |
| interface BuilderProgramHost { |
| /** |
| * return true if file names are treated with case sensitivity |
| */ |
| useCaseSensitiveFileNames(): boolean; |
| /** |
| * If provided this would be used this hash instead of actual file shape text for detecting changes |
| */ |
| createHash?: (data: string) => string; |
| /** |
| * When emit or emitNextAffectedFile are called without writeFile, |
| * this callback if present would be used to write files |
| */ |
| writeFile?: WriteFileCallback; |
| } |
| /** |
| * Builder to manage the program state changes |
| */ |
| interface BuilderProgram { |
| /** |
| * Returns current program |
| */ |
| getProgram(): Program; |
| /** |
| * Get compiler options of the program |
| */ |
| getCompilerOptions(): CompilerOptions; |
| /** |
| * Get the source file in the program with file name |
| */ |
| getSourceFile(fileName: string): SourceFile | undefined; |
| /** |
| * Get a list of files in the program |
| */ |
| getSourceFiles(): ReadonlyArray<SourceFile>; |
| /** |
| * Get the diagnostics for compiler options |
| */ |
| getOptionsDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| /** |
| * Get the diagnostics that dont belong to any file |
| */ |
| getGlobalDiagnostics(cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| /** |
| * Get the diagnostics from config file parsing |
| */ |
| getConfigFileParsingDiagnostics(): ReadonlyArray<Diagnostic>; |
| /** |
| * Get the syntax diagnostics, for all source files if source file is not supplied |
| */ |
| getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| /** |
| * Get the declaration diagnostics, for all source files if source file is not supplied |
| */ |
| getDeclarationDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<DiagnosticWithLocation>; |
| /** |
| * Get all the dependencies of the file |
| */ |
| getAllDependencies(sourceFile: SourceFile): ReadonlyArray<string>; |
| /** |
| * Gets the semantic diagnostics from the program corresponding to this state of file (if provided) or whole program |
| * The semantic diagnostics are cached and managed here |
| * Note that it is assumed that when asked about semantic diagnostics through this API, |
| * the file has been taken out of affected files so it is safe to use cache or get from program and cache the diagnostics |
| * In case of SemanticDiagnosticsBuilderProgram if the source file is not provided, |
| * it will iterate through all the affected files, to ensure that cache stays valid and yet provide a way to get all semantic diagnostics |
| */ |
| getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): ReadonlyArray<Diagnostic>; |
| /** |
| * Emits the JavaScript and declaration files. |
| * When targetSource file is specified, emits the files corresponding to that source file, |
| * otherwise for the whole program. |
| * In case of EmitAndSemanticDiagnosticsBuilderProgram, when targetSourceFile is specified, |
| * it is assumed that that file is handled from affected file list. If targetSourceFile is not specified, |
| * it will only emit all the affected files instead of whole program |
| * |
| * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host |
| * in that order would be used to write the files |
| */ |
| emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult; |
| /** |
| * Get the current directory of the program |
| */ |
| getCurrentDirectory(): string; |
| } |
| /** |
| * The builder that caches the semantic diagnostics for the program and handles the changed files and affected files |
| */ |
| interface SemanticDiagnosticsBuilderProgram extends BuilderProgram { |
| /** |
| * Gets the semantic diagnostics from the program for the next affected file and caches it |
| * Returns undefined if the iteration is complete |
| */ |
| getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult<ReadonlyArray<Diagnostic>>; |
| } |
| /** |
| * The builder that can handle the changes in program and iterate through changed file to emit the files |
| * The semantic diagnostics are cached per file and managed by clearing for the changed/affected files |
| */ |
| interface EmitAndSemanticDiagnosticsBuilderProgram extends BuilderProgram { |
| /** |
| * Emits the next affected file's emit result (EmitResult and sourceFiles emitted) or returns undefined if iteration is complete |
| * The first of writeFile if provided, writeFile of BuilderProgramHost if provided, writeFile of compiler host |
| * in that order would be used to write the files |
| */ |
| emitNextAffectedFile(writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): AffectedFileResult<EmitResult>; |
| } |
| /** |
| * Create the builder to manage semantic diagnostics and cache them |
| */ |
| function createSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): SemanticDiagnosticsBuilderProgram; |
| function createSemanticDiagnosticsBuilderProgram(rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: SemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference>): SemanticDiagnosticsBuilderProgram; |
| /** |
| * Create the builder that can handle the changes in program and iterate through changed files |
| * to emit the those files and manage semantic diagnostics cache as well |
| */ |
| function createEmitAndSemanticDiagnosticsBuilderProgram(newProgram: Program, host: BuilderProgramHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): EmitAndSemanticDiagnosticsBuilderProgram; |
| function createEmitAndSemanticDiagnosticsBuilderProgram(rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: EmitAndSemanticDiagnosticsBuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference>): EmitAndSemanticDiagnosticsBuilderProgram; |
| /** |
| * Creates a builder thats just abstraction over program and can be used with watch |
| */ |
| function createAbstractBuilder(newProgram: Program, host: BuilderProgramHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>): BuilderProgram; |
| function createAbstractBuilder(rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: BuilderProgram, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference>): BuilderProgram; |
| } |
| declare namespace ts { |
| type WatchStatusReporter = (diagnostic: Diagnostic, newLine: string, options: CompilerOptions) => void; |
| /** Create the program with rootNames and options, if they are undefined, oldProgram and new configFile diagnostics create new program */ |
| type CreateProgram<T extends BuilderProgram> = (rootNames: ReadonlyArray<string> | undefined, options: CompilerOptions | undefined, host?: CompilerHost, oldProgram?: T, configFileParsingDiagnostics?: ReadonlyArray<Diagnostic>, projectReferences?: ReadonlyArray<ProjectReference> | undefined) => T; |
| /** Host that has watch functionality used in --watch mode */ |
| interface WatchHost { |
| /** If provided, called with Diagnostic message that informs about change in watch status */ |
| onWatchStatusChange?(diagnostic: Diagnostic, newLine: string, options: CompilerOptions): void; |
| /** Used to watch changes in source files, missing files needed to update the program or config file */ |
| watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number): FileWatcher; |
| /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */ |
| watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean): FileWatcher; |
| /** If provided, will be used to set delayed compilation, so that multiple changes in short span are compiled together */ |
| setTimeout?(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; |
| /** If provided, will be used to reset existing delayed compilation */ |
| clearTimeout?(timeoutId: any): void; |
| } |
| interface ProgramHost<T extends BuilderProgram> { |
| /** |
| * Used to create the program when need for program creation or recreation detected |
| */ |
| createProgram: CreateProgram<T>; |
| useCaseSensitiveFileNames(): boolean; |
| getNewLine(): string; |
| getCurrentDirectory(): string; |
| getDefaultLibFileName(options: CompilerOptions): string; |
| getDefaultLibLocation?(): string; |
| createHash?(data: string): string; |
| /** |
| * Use to check file presence for source files and |
| * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well |
| */ |
| fileExists(path: string): boolean; |
| /** |
| * Use to read file text for source files and |
| * if resolveModuleNames is not provided (complier is in charge of module resolution) then module files as well |
| */ |
| readFile(path: string, encoding?: string): string | undefined; |
| /** If provided, used for module resolution as well as to handle directory structure */ |
| directoryExists?(path: string): boolean; |
| /** If provided, used in resolutions as well as handling directory structure */ |
| getDirectories?(path: string): string[]; |
| /** If provided, used to cache and handle directory structure modifications */ |
| readDirectory?(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[]; |
| /** Symbol links resolution */ |
| realpath?(path: string): string; |
| /** If provided would be used to write log about compilation */ |
| trace?(s: string): void; |
| /** If provided is used to get the environment variable */ |
| getEnvironmentVariable?(name: string): string | undefined; |
| /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ |
| resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference): (ResolvedModule | undefined)[]; |
| /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ |
| resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[]; |
| } |
| interface WatchCompilerHost<T extends BuilderProgram> extends ProgramHost<T>, WatchHost { |
| /** If provided, callback to invoke after every new program creation */ |
| afterProgramCreate?(program: T): void; |
| } |
| /** |
| * Host to create watch with root files and options |
| */ |
| interface WatchCompilerHostOfFilesAndCompilerOptions<T extends BuilderProgram> extends WatchCompilerHost<T> { |
| /** root files to use to generate program */ |
| rootFiles: string[]; |
| /** Compiler options */ |
| options: CompilerOptions; |
| /** Project References */ |
| projectReferences?: ReadonlyArray<ProjectReference>; |
| } |
| /** |
| * Host to create watch with config file |
| */ |
| interface WatchCompilerHostOfConfigFile<T extends BuilderProgram> extends WatchCompilerHost<T>, ConfigFileDiagnosticsReporter { |
| /** Name of the config file to compile */ |
| configFileName: string; |
| /** Options to extend */ |
| optionsToExtend?: CompilerOptions; |
| /** |
| * Used to generate source file names from the config file and its include, exclude, files rules |
| * and also to cache the directory stucture |
| */ |
| readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[]; |
| } |
| interface Watch<T> { |
| /** Synchronize with host and get updated program */ |
| getProgram(): T; |
| } |
| /** |
| * Creates the watch what generates program using the config file |
| */ |
| interface WatchOfConfigFile<T> extends Watch<T> { |
| } |
| /** |
| * Creates the watch that generates program using the root files and compiler options |
| */ |
| interface WatchOfFilesAndCompilerOptions<T> extends Watch<T> { |
| /** Updates the root files in the program, only if this is not config file compilation */ |
| updateRootFileNames(fileNames: string[]): void; |
| } |
| /** |
| * Create the watch compiler host for either configFile or fileNames and its options |
| */ |
| function createWatchCompilerHost<T extends BuilderProgram>(configFileName: string, optionsToExtend: CompilerOptions | undefined, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): WatchCompilerHostOfConfigFile<T>; |
| function createWatchCompilerHost<T extends BuilderProgram>(rootFiles: string[], options: CompilerOptions, system: System, createProgram?: CreateProgram<T>, reportDiagnostic?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter, projectReferences?: ReadonlyArray<ProjectReference>): WatchCompilerHostOfFilesAndCompilerOptions<T>; |
| /** |
| * Creates the watch from the host for root files and compiler options |
| */ |
| function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfFilesAndCompilerOptions<T>): WatchOfFilesAndCompilerOptions<T>; |
| /** |
| * Creates the watch from the host for config file |
| */ |
| function createWatchProgram<T extends BuilderProgram>(host: WatchCompilerHostOfConfigFile<T>): WatchOfConfigFile<T>; |
| } |
| declare namespace ts.server { |
| type ActionSet = "action::set"; |
| type ActionInvalidate = "action::invalidate"; |
| type ActionPackageInstalled = "action::packageInstalled"; |
| type EventTypesRegistry = "event::typesRegistry"; |
| type EventBeginInstallTypes = "event::beginInstallTypes"; |
| type EventEndInstallTypes = "event::endInstallTypes"; |
| type EventInitializationFailed = "event::initializationFailed"; |
| interface TypingInstallerResponse { |
| readonly kind: ActionSet | ActionInvalidate | EventTypesRegistry | ActionPackageInstalled | EventBeginInstallTypes | EventEndInstallTypes | EventInitializationFailed; |
| } |
| interface TypingInstallerRequestWithProjectName { |
| readonly projectName: string; |
| } |
| interface DiscoverTypings extends TypingInstallerRequestWithProjectName { |
| readonly fileNames: string[]; |
| readonly projectRootPath: Path; |
| readonly compilerOptions: CompilerOptions; |
| readonly typeAcquisition: TypeAcquisition; |
| readonly unresolvedImports: SortedReadonlyArray<string>; |
| readonly cachePath?: string; |
| readonly kind: "discover"; |
| } |
| interface CloseProject extends TypingInstallerRequestWithProjectName { |
| readonly kind: "closeProject"; |
| } |
| interface TypesRegistryRequest { |
| readonly kind: "typesRegistry"; |
| } |
| interface InstallPackageRequest extends TypingInstallerRequestWithProjectName { |
| readonly kind: "installPackage"; |
| readonly fileName: Path; |
| readonly packageName: string; |
| readonly projectRootPath: Path; |
| } |
| interface PackageInstalledResponse extends ProjectResponse { |
| readonly kind: ActionPackageInstalled; |
| readonly success: boolean; |
| readonly message: string; |
| } |
| interface InitializationFailedResponse extends TypingInstallerResponse { |
| readonly kind: EventInitializationFailed; |
| readonly message: string; |
| } |
| interface ProjectResponse extends TypingInstallerResponse { |
| readonly projectName: string; |
| } |
| interface InvalidateCachedTypings extends ProjectResponse { |
| readonly kind: ActionInvalidate; |
| } |
| interface InstallTypes extends ProjectResponse { |
| readonly kind: EventBeginInstallTypes | EventEndInstallTypes; |
| readonly eventId: number; |
| readonly typingsInstallerVersion: string; |
| readonly packagesToInstall: ReadonlyArray<string>; |
| } |
| interface BeginInstallTypes extends InstallTypes { |
| readonly kind: EventBeginInstallTypes; |
| } |
| interface EndInstallTypes extends InstallTypes { |
| readonly kind: EventEndInstallTypes; |
| readonly installSuccess: boolean; |
| } |
| interface SetTypings extends ProjectResponse { |
| readonly typeAcquisition: TypeAcquisition; |
| readonly compilerOptions: CompilerOptions; |
| readonly typings: string[]; |
| readonly unresolvedImports: SortedReadonlyArray<string>; |
| readonly kind: ActionSet; |
| } |
| } |
| declare namespace ts { |
| interface Node { |
| getSourceFile(): SourceFile; |
| getChildCount(sourceFile?: SourceFile): number; |
| getChildAt(index: number, sourceFile?: SourceFile): Node; |
| getChildren(sourceFile?: SourceFile): Node[]; |
| getStart(sourceFile?: SourceFile, includeJsDocComment?: boolean): number; |
| getFullStart(): number; |
| getEnd(): number; |
| getWidth(sourceFile?: SourceFileLike): number; |
| getFullWidth(): number; |
| getLeadingTriviaWidth(sourceFile?: SourceFile): number; |
| getFullText(sourceFile?: SourceFile): string; |
| getText(sourceFile?: SourceFile): string; |
| getFirstToken(sourceFile?: SourceFile): Node | undefined; |
| getLastToken(sourceFile?: SourceFile): Node | undefined; |
| forEachChild<T>(cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray<Node>) => T | undefined): T | undefined; |
| } |
| interface Identifier { |
| readonly text: string; |
| } |
| interface Symbol { |
| readonly name: string; |
| getFlags(): SymbolFlags; |
| getEscapedName(): __String; |
| getName(): string; |
| getDeclarations(): Declaration[] | undefined; |
| getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; |
| getJsDocTags(): JSDocTagInfo[]; |
| } |
| interface Type { |
| getFlags(): TypeFlags; |
| getSymbol(): Symbol | undefined; |
| getProperties(): Symbol[]; |
| getProperty(propertyName: string): Symbol | undefined; |
| getApparentProperties(): Symbol[]; |
| getCallSignatures(): ReadonlyArray<Signature>; |
| getConstructSignatures(): ReadonlyArray<Signature>; |
| getStringIndexType(): Type | undefined; |
| getNumberIndexType(): Type | undefined; |
| getBaseTypes(): BaseType[] | undefined; |
| getNonNullableType(): Type; |
| getConstraint(): Type | undefined; |
| getDefault(): Type | undefined; |
| isUnion(): this is UnionType; |
| isIntersection(): this is IntersectionType; |
| isUnionOrIntersection(): this is UnionOrIntersectionType; |
| isLiteral(): this is LiteralType; |
| isStringLiteral(): this is StringLiteralType; |
| isNumberLiteral(): this is NumberLiteralType; |
| isTypeParameter(): this is TypeParameter; |
| isClassOrInterface(): this is InterfaceType; |
| isClass(): this is InterfaceType; |
| } |
| interface Signature { |
| getDeclaration(): SignatureDeclaration; |
| getTypeParameters(): TypeParameter[] | undefined; |
| getParameters(): Symbol[]; |
| getReturnType(): Type; |
| getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; |
| getJsDocTags(): JSDocTagInfo[]; |
| } |
| interface SourceFile { |
| getLineAndCharacterOfPosition(pos: number): LineAndCharacter; |
| getLineEndOfPosition(pos: number): number; |
| getLineStarts(): ReadonlyArray<number>; |
| getPositionOfLineAndCharacter(line: number, character: number): number; |
| update(newText: string, textChangeRange: TextChangeRange): SourceFile; |
| } |
| interface SourceFileLike { |
| getLineAndCharacterOfPosition(pos: number): LineAndCharacter; |
| } |
| interface SourceMapSource { |
| getLineAndCharacterOfPosition(pos: number): LineAndCharacter; |
| } |
| /** |
| * Represents an immutable snapshot of a script at a specified time.Once acquired, the |
| * snapshot is observably immutable. i.e. the same calls with the same parameters will return |
| * the same values. |
| */ |
| interface IScriptSnapshot { |
| /** Gets a portion of the script snapshot specified by [start, end). */ |
| getText(start: number, end: number): string; |
| /** Gets the length of this script snapshot. */ |
| getLength(): number; |
| /** |
| * Gets the TextChangeRange that describe how the text changed between this text and |
| * an older version. This information is used by the incremental parser to determine |
| * what sections of the script need to be re-parsed. 'undefined' can be returned if the |
| * change range cannot be determined. However, in that case, incremental parsing will |
| * not happen and the entire document will be re - parsed. |
| */ |
| getChangeRange(oldSnapshot: IScriptSnapshot): TextChangeRange | undefined; |
| /** Releases all resources held by this script snapshot */ |
| dispose?(): void; |
| } |
| namespace ScriptSnapshot { |
| function fromString(text: string): IScriptSnapshot; |
| } |
| interface PreProcessedFileInfo { |
| referencedFiles: FileReference[]; |
| typeReferenceDirectives: FileReference[]; |
| libReferenceDirectives: FileReference[]; |
| importedFiles: FileReference[]; |
| ambientExternalModules?: string[]; |
| isLibFile: boolean; |
| } |
| interface HostCancellationToken { |
| isCancellationRequested(): boolean; |
| } |
| interface InstallPackageOptions { |
| fileName: Path; |
| packageName: string; |
| } |
| interface LanguageServiceHost extends GetEffectiveTypeRootsHost { |
| getCompilationSettings(): CompilerOptions; |
| getNewLine?(): string; |
| getProjectVersion?(): string; |
| getScriptFileNames(): string[]; |
| getScriptKind?(fileName: string): ScriptKind; |
| getScriptVersion(fileName: string): string; |
| getScriptSnapshot(fileName: string): IScriptSnapshot | undefined; |
| getProjectReferences?(): ReadonlyArray<ProjectReference> | undefined; |
| getLocalizedDiagnosticMessages?(): any; |
| getCancellationToken?(): HostCancellationToken; |
| getCurrentDirectory(): string; |
| getDefaultLibFileName(options: CompilerOptions): string; |
| log?(s: string): void; |
| trace?(s: string): void; |
| error?(s: string): void; |
| useCaseSensitiveFileNames?(): boolean; |
| readDirectory?(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[]; |
| readFile?(path: string, encoding?: string): string | undefined; |
| realpath?(path: string): string; |
| fileExists?(path: string): boolean; |
| getTypeRootsVersion?(): number; |
| resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference): (ResolvedModule | undefined)[]; |
| getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string): ResolvedModuleWithFailedLookupLocations | undefined; |
| resolveTypeReferenceDirectives?(typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[]; |
| getDirectories?(directoryName: string): string[]; |
| /** |
| * Gets a set of custom transformers to use during emit. |
| */ |
| getCustomTransformers?(): CustomTransformers | undefined; |
| isKnownTypesPackageName?(name: string): boolean; |
| installPackage?(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; |
| writeFile?(fileName: string, content: string): void; |
| } |
| type WithMetadata<T> = T & { |
| metadata?: unknown; |
| }; |
| interface LanguageService { |
| cleanupSemanticCache(): void; |
| getSyntacticDiagnostics(fileName: string): DiagnosticWithLocation[]; |
| /** The first time this is called, it will return global diagnostics (no location). */ |
| getSemanticDiagnostics(fileName: string): Diagnostic[]; |
| getSuggestionDiagnostics(fileName: string): DiagnosticWithLocation[]; |
| getCompilerOptionsDiagnostics(): Diagnostic[]; |
| /** |
| * @deprecated Use getEncodedSyntacticClassifications instead. |
| */ |
| getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; |
| /** |
| * @deprecated Use getEncodedSemanticClassifications instead. |
| */ |
| getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[]; |
| getEncodedSyntacticClassifications(fileName: string, span: TextSpan): Classifications; |
| getEncodedSemanticClassifications(fileName: string, span: TextSpan): Classifications; |
| getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): WithMetadata<CompletionInfo> | undefined; |
| getCompletionEntryDetails(fileName: string, position: number, name: string, formatOptions: FormatCodeOptions | FormatCodeSettings | undefined, source: string | undefined, preferences: UserPreferences | undefined): CompletionEntryDetails | undefined; |
| getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): Symbol | undefined; |
| getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined; |
| getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined; |
| getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined; |
| getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined; |
| getRenameInfo(fileName: string, position: number, options?: RenameInfoOptions): RenameInfo; |
| findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename?: boolean): ReadonlyArray<RenameLocation> | undefined; |
| getSmartSelectionRange(fileName: string, position: number): SelectionRange; |
| getDefinitionAtPosition(fileName: string, position: number): ReadonlyArray<DefinitionInfo> | undefined; |
| getDefinitionAndBoundSpan(fileName: string, position: number): DefinitionInfoAndBoundSpan | undefined; |
| getTypeDefinitionAtPosition(fileName: string, position: number): ReadonlyArray<DefinitionInfo> | undefined; |
| getImplementationAtPosition(fileName: string, position: number): ReadonlyArray<ImplementationLocation> | undefined; |
| getReferencesAtPosition(fileName: string, position: number): ReferenceEntry[] | undefined; |
| findReferences(fileName: string, position: number): ReferencedSymbol[] | undefined; |
| getDocumentHighlights(fileName: string, position: number, filesToSearch: string[]): DocumentHighlights[] | undefined; |
| /** @deprecated */ |
| getOccurrencesAtPosition(fileName: string, position: number): ReadonlyArray<ReferenceEntry> | undefined; |
| getNavigateToItems(searchValue: string, maxResultCount?: number, fileName?: string, excludeDtsFiles?: boolean): NavigateToItem[]; |
| getNavigationBarItems(fileName: string): NavigationBarItem[]; |
| getNavigationTree(fileName: string): NavigationTree; |
| getOutliningSpans(fileName: string): OutliningSpan[]; |
| getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[]; |
| getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[]; |
| getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number; |
| getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; |
| getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; |
| getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; |
| getDocCommentTemplateAtPosition(fileName: string, position: number): TextInsertion | undefined; |
| isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; |
| /** |
| * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag. |
| * Editors should call this after `>` is typed. |
| */ |
| getJsxClosingTagAtPosition(fileName: string, position: number): JsxClosingTagInfo | undefined; |
| getSpanOfEnclosingComment(fileName: string, position: number, onlyMultiLine: boolean): TextSpan | undefined; |
| toLineColumnOffset?(fileName: string, position: number): LineAndCharacter; |
| getCodeFixesAtPosition(fileName: string, start: number, end: number, errorCodes: ReadonlyArray<number>, formatOptions: FormatCodeSettings, preferences: UserPreferences): ReadonlyArray<CodeFixAction>; |
| getCombinedCodeFix(scope: CombinedCodeFixScope, fixId: {}, formatOptions: FormatCodeSettings, preferences: UserPreferences): CombinedCodeActions; |
| applyCodeActionCommand(action: CodeActionCommand, formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult>; |
| applyCodeActionCommand(action: CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult[]>; |
| applyCodeActionCommand(action: CodeActionCommand | CodeActionCommand[], formatSettings?: FormatCodeSettings): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; |
| /** @deprecated `fileName` will be ignored */ |
| applyCodeActionCommand(fileName: string, action: CodeActionCommand): Promise<ApplyCodeActionCommandResult>; |
| /** @deprecated `fileName` will be ignored */ |
| applyCodeActionCommand(fileName: string, action: CodeActionCommand[]): Promise<ApplyCodeActionCommandResult[]>; |
| /** @deprecated `fileName` will be ignored */ |
| applyCodeActionCommand(fileName: string, action: CodeActionCommand | CodeActionCommand[]): Promise<ApplyCodeActionCommandResult | ApplyCodeActionCommandResult[]>; |
| getApplicableRefactors(fileName: string, positionOrRange: number | TextRange, preferences: UserPreferences | undefined): ApplicableRefactorInfo[]; |
| getEditsForRefactor(fileName: string, formatOptions: FormatCodeSettings, positionOrRange: number | TextRange, refactorName: string, actionName: string, preferences: UserPreferences | undefined): RefactorEditInfo | undefined; |
| organizeImports(scope: OrganizeImportsScope, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): ReadonlyArray<FileTextChanges>; |
| getEditsForFileRename(oldFilePath: string, newFilePath: string, formatOptions: FormatCodeSettings, preferences: UserPreferences | undefined): ReadonlyArray<FileTextChanges>; |
| getEmitOutput(fileName: string, emitOnlyDtsFiles?: boolean): EmitOutput; |
| getProgram(): Program | undefined; |
| dispose(): void; |
| } |
| interface JsxClosingTagInfo { |
| readonly newText: string; |
| } |
| interface CombinedCodeFixScope { |
| type: "file"; |
| fileName: string; |
| } |
| type OrganizeImportsScope = CombinedCodeFixScope; |
| type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<"; |
| interface GetCompletionsAtPositionOptions extends UserPreferences { |
| /** |
| * If the editor is asking for completions because a certain character was typed |
| * (as opposed to when the user explicitly requested them) this should be set. |
| */ |
| triggerCharacter?: CompletionsTriggerCharacter; |
| /** @deprecated Use includeCompletionsForModuleExports */ |
| includeExternalModuleExports?: boolean; |
| /** @deprecated Use includeCompletionsWithInsertText */ |
| includeInsertTextCompletions?: boolean; |
| } |
| type SignatureHelpTriggerCharacter = "," | "(" | "<"; |
| type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; |
| interface SignatureHelpItemsOptions { |
| triggerReason?: SignatureHelpTriggerReason; |
| } |
| type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; |
| /** |
| * Signals that the user manually requested signature help. |
| * The language service will unconditionally attempt to provide a result. |
| */ |
| interface SignatureHelpInvokedReason { |
| kind: "invoked"; |
| triggerCharacter?: undefined; |
| } |
| /** |
| * Signals that the signature help request came from a user typing a character. |
| * Depending on the character and the syntactic context, the request may or may not be served a result. |
| */ |
| interface SignatureHelpCharacterTypedReason { |
| kind: "characterTyped"; |
| /** |
| * Character that was responsible for triggering signature help. |
| */ |
| triggerCharacter: SignatureHelpTriggerCharacter; |
| } |
| /** |
| * Signals that this signature help request came from typing a character or moving the cursor. |
| * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. |
| * The language service will unconditionally attempt to provide a result. |
| * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. |
| */ |
| interface SignatureHelpRetriggeredReason { |
| kind: "retrigger"; |
| /** |
| * Character that was responsible for triggering signature help. |
| */ |
| triggerCharacter?: SignatureHelpRetriggerCharacter; |
| } |
| interface ApplyCodeActionCommandResult { |
| successMessage: string; |
| } |
| interface Classifications { |
| spans: number[]; |
| endOfLineState: EndOfLineState; |
| } |
| interface ClassifiedSpan { |
| textSpan: TextSpan; |
| classificationType: ClassificationTypeNames; |
| } |
| /** |
| * Navigation bar interface designed for visual studio's dual-column layout. |
| * This does not form a proper tree. |
| * The navbar is returned as a list of top-level items, each of which has a list of child items. |
| * Child items always have an empty array for their `childItems`. |
| */ |
| interface NavigationBarItem { |
| text: string; |
| kind: ScriptElementKind; |
| kindModifiers: string; |
| spans: TextSpan[]; |
| childItems: NavigationBarItem[]; |
| indent: number; |
| bolded: boolean; |
| grayed: boolean; |
| } |
| /** |
| * Node in a tree of nested declarations in a file. |
| * The top node is always a script or module node. |
| */ |
| interface NavigationTree { |
| /** Name of the declaration, or a short description, e.g. "<class>". */ |
| text: string; |
| kind: ScriptElementKind; |
| /** ScriptElementKindModifier separated by commas, e.g. "public,abstract" */ |
| kindModifiers: string; |
| /** |
| * Spans of the nodes that generated this declaration. |
| * There will be more than one if this is the result of merging. |
| */ |
| spans: TextSpan[]; |
| nameSpan: TextSpan | undefined; |
| /** Present if non-empty */ |
| childItems?: NavigationTree[]; |
| } |
| interface TodoCommentDescriptor { |
| text: string; |
| priority: number; |
| } |
| interface TodoComment { |
| descriptor: TodoCommentDescriptor; |
| message: string; |
| position: number; |
| } |
| interface TextChange { |
| span: TextSpan; |
| newText: string; |
| } |
| interface FileTextChanges { |
| fileName: string; |
| textChanges: TextChange[]; |
| isNewFile?: boolean; |
| } |
| interface CodeAction { |
| /** Description of the code action to display in the UI of the editor */ |
| description: string; |
| /** Text changes to apply to each file as part of the code action */ |
| changes: FileTextChanges[]; |
| /** |
| * If the user accepts the code fix, the editor should send the action back in a `applyAction` request. |
| * This allows the language service to have side effects (e.g. installing dependencies) upon a code fix. |
| */ |
| commands?: CodeActionCommand[]; |
| } |
| interface CodeFixAction extends CodeAction { |
| /** Short name to identify the fix, for use by telemetry. */ |
| fixName: string; |
| /** |
| * If present, one may call 'getCombinedCodeFix' with this fixId. |
| * This may be omitted to indicate that the code fix can't be applied in a group. |
| */ |
| fixId?: {}; |
| fixAllDescription?: string; |
| } |
| interface CombinedCodeActions { |
| changes: ReadonlyArray<FileTextChanges>; |
| commands?: ReadonlyArray<CodeActionCommand>; |
| } |
| type CodeActionCommand = InstallPackageAction; |
| interface InstallPackageAction { |
| } |
| /** |
| * A set of one or more available refactoring actions, grouped under a parent refactoring. |
| */ |
| interface ApplicableRefactorInfo { |
| /** |
| * The programmatic name of the refactoring |
| */ |
| name: string; |
| /** |
| * A description of this refactoring category to show to the user. |
| * If the refactoring gets inlined (see below), this text will not be visible. |
| */ |
| description: string; |
| /** |
| * Inlineable refactorings can have their actions hoisted out to the top level |
| * of a context menu. Non-inlineanable refactorings should always be shown inside |
| * their parent grouping. |
| * |
| * If not specified, this value is assumed to be 'true' |
| */ |
| inlineable?: boolean; |
| actions: RefactorActionInfo[]; |
| } |
| /** |
| * Represents a single refactoring action - for example, the "Extract Method..." refactor might |
| * offer several actions, each corresponding to a surround class or closure to extract into. |
| */ |
| interface RefactorActionInfo { |
| /** |
| * The programmatic name of the refactoring action |
| */ |
| name: string; |
| /** |
| * A description of this refactoring action to show to the user. |
| * If the parent refactoring is inlined away, this will be the only text shown, |
| * so this description should make sense by itself if the parent is inlineable=true |
| */ |
| description: string; |
| } |
| /** |
| * A set of edits to make in response to a refactor action, plus an optional |
| * location where renaming should be invoked from |
| */ |
| interface RefactorEditInfo { |
| edits: FileTextChanges[]; |
| renameFilename?: string; |
| renameLocation?: number; |
| commands?: CodeActionCommand[]; |
| } |
| interface TextInsertion { |
| newText: string; |
| /** The position in newText the caret should point to after the insertion. */ |
| caretOffset: number; |
| } |
| interface DocumentSpan { |
| textSpan: TextSpan; |
| fileName: string; |
| /** |
| * If the span represents a location that was remapped (e.g. via a .d.ts.map file), |
| * then the original filename and span will be specified here |
| */ |
| originalTextSpan?: TextSpan; |
| originalFileName?: string; |
| } |
| interface RenameLocation extends DocumentSpan { |
| readonly prefixText?: string; |
| readonly suffixText?: string; |
| } |
| interface ReferenceEntry extends DocumentSpan { |
| isWriteAccess: boolean; |
| isDefinition: boolean; |
| isInString?: true; |
| } |
| interface ImplementationLocation extends DocumentSpan { |
| kind: ScriptElementKind; |
| displayParts: SymbolDisplayPart[]; |
| } |
| interface DocumentHighlights { |
| fileName: string; |
| highlightSpans: HighlightSpan[]; |
| } |
| enum HighlightSpanKind { |
| none = "none", |
| definition = "definition", |
| reference = "reference", |
| writtenReference = "writtenReference" |
| } |
| interface HighlightSpan { |
| fileName?: string; |
| isInString?: true; |
| textSpan: TextSpan; |
| kind: HighlightSpanKind; |
| } |
| interface NavigateToItem { |
| name: string; |
| kind: ScriptElementKind; |
| kindModifiers: string; |
| matchKind: "exact" | "prefix" | "substring" | "camelCase"; |
| isCaseSensitive: boolean; |
| fileName: string; |
| textSpan: TextSpan; |
| containerName: string; |
| containerKind: ScriptElementKind; |
| } |
| enum IndentStyle { |
| None = 0, |
| Block = 1, |
| Smart = 2 |
| } |
| interface EditorOptions { |
| BaseIndentSize?: number; |
| IndentSize: number; |
| TabSize: number; |
| NewLineCharacter: string; |
| ConvertTabsToSpaces: boolean; |
| IndentStyle: IndentStyle; |
| } |
| interface EditorSettings { |
| baseIndentSize?: number; |
| indentSize?: number; |
| tabSize?: number; |
| newLineCharacter?: string; |
| convertTabsToSpaces?: boolean; |
| indentStyle?: IndentStyle; |
| } |
| interface FormatCodeOptions extends EditorOptions { |
| InsertSpaceAfterCommaDelimiter: boolean; |
| InsertSpaceAfterSemicolonInForStatements: boolean; |
| InsertSpaceBeforeAndAfterBinaryOperators: boolean; |
| InsertSpaceAfterConstructor?: boolean; |
| InsertSpaceAfterKeywordsInControlFlowStatements: boolean; |
| InsertSpaceAfterFunctionKeywordForAnonymousFunctions: boolean; |
| InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: boolean; |
| InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: boolean; |
| InsertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; |
| InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean; |
| InsertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; |
| InsertSpaceAfterTypeAssertion?: boolean; |
| InsertSpaceBeforeFunctionParenthesis?: boolean; |
| PlaceOpenBraceOnNewLineForFunctions: boolean; |
| PlaceOpenBraceOnNewLineForControlBlocks: boolean; |
| insertSpaceBeforeTypeAnnotation?: boolean; |
| } |
| interface FormatCodeSettings extends EditorSettings { |
| readonly insertSpaceAfterCommaDelimiter?: boolean; |
| readonly insertSpaceAfterSemicolonInForStatements?: boolean; |
| readonly insertSpaceBeforeAndAfterBinaryOperators?: boolean; |
| readonly insertSpaceAfterConstructor?: boolean; |
| readonly insertSpaceAfterKeywordsInControlFlowStatements?: boolean; |
| readonly insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; |
| readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; |
| readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; |
| readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; |
| readonly insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; |
| readonly insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; |
| readonly insertSpaceAfterTypeAssertion?: boolean; |
| readonly insertSpaceBeforeFunctionParenthesis?: boolean; |
| readonly placeOpenBraceOnNewLineForFunctions?: boolean; |
| readonly placeOpenBraceOnNewLineForControlBlocks?: boolean; |
| readonly insertSpaceBeforeTypeAnnotation?: boolean; |
| readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean; |
| } |
| function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings; |
| interface DefinitionInfo extends DocumentSpan { |
| kind: ScriptElementKind; |
| name: string; |
| containerKind: ScriptElementKind; |
| containerName: string; |
| } |
| interface DefinitionInfoAndBoundSpan { |
| definitions?: ReadonlyArray<DefinitionInfo>; |
| textSpan: TextSpan; |
| } |
| interface ReferencedSymbolDefinitionInfo extends DefinitionInfo { |
| displayParts: SymbolDisplayPart[]; |
| } |
| interface ReferencedSymbol { |
| definition: ReferencedSymbolDefinitionInfo; |
| references: ReferenceEntry[]; |
| } |
| enum SymbolDisplayPartKind { |
| aliasName = 0, |
| className = 1, |
| enumName = 2, |
| fieldName = 3, |
| interfaceName = 4, |
| keyword = 5, |
| lineBreak = 6, |
| numericLiteral = 7, |
| stringLiteral = 8, |
| localName = 9, |
| methodName = 10, |
| moduleName = 11, |
| operator = 12, |
| parameterName = 13, |
| propertyName = 14, |
| punctuation = 15, |
| space = 16, |
| text = 17, |
| typeParameterName = 18, |
| enumMemberName = 19, |
| functionName = 20, |
| regularExpressionLiteral = 21 |
| } |
| interface SymbolDisplayPart { |
| text: string; |
| kind: string; |
| } |
| interface JSDocTagInfo { |
| name: string; |
| text?: string; |
| } |
| interface QuickInfo { |
| kind: ScriptElementKind; |
| kindModifiers: string; |
| textSpan: TextSpan; |
| displayParts?: SymbolDisplayPart[]; |
| documentation?: SymbolDisplayPart[]; |
| tags?: JSDocTagInfo[]; |
| } |
| type RenameInfo = RenameInfoSuccess | RenameInfoFailure; |
| interface RenameInfoSuccess { |
| canRename: true; |
| /** |
| * File or directory to rename. |
| * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. |
| */ |
| fileToRename?: string; |
| displayName: string; |
| fullDisplayName: string; |
| kind: ScriptElementKind; |
| kindModifiers: string; |
| triggerSpan: TextSpan; |
| } |
| interface RenameInfoFailure { |
| canRename: false; |
| localizedErrorMessage: string; |
| } |
| interface RenameInfoOptions { |
| readonly allowRenameOfImportPath?: boolean; |
| } |
| interface SignatureHelpParameter { |
| name: string; |
| documentation: SymbolDisplayPart[]; |
| displayParts: SymbolDisplayPart[]; |
| isOptional: boolean; |
| } |
| interface SelectionRange { |
| textSpan: TextSpan; |
| parent?: SelectionRange; |
| } |
| /** |
| * Represents a single signature to show in signature help. |
| * The id is used for subsequent calls into the language service to ask questions about the |
| * signature help item in the context of any documents that have been updated. i.e. after |
| * an edit has happened, while signature help is still active, the host can ask important |
| * questions like 'what parameter is the user currently contained within?'. |
| */ |
| interface SignatureHelpItem { |
| isVariadic: boolean; |
| prefixDisplayParts: SymbolDisplayPart[]; |
| suffixDisplayParts: SymbolDisplayPart[]; |
| separatorDisplayParts: SymbolDisplayPart[]; |
| parameters: SignatureHelpParameter[]; |
| documentation: SymbolDisplayPart[]; |
| tags: JSDocTagInfo[]; |
| } |
| /** |
| * Represents a set of signature help items, and the preferred item that should be selected. |
| */ |
| interface SignatureHelpItems { |
| items: SignatureHelpItem[]; |
| applicableSpan: TextSpan; |
| selectedItemIndex: number; |
| argumentIndex: number; |
| argumentCount: number; |
| } |
| interface CompletionInfo { |
| /** Not true for all glboal completions. This will be true if the enclosing scope matches a few syntax kinds. See `isSnippetScope`. */ |
| isGlobalCompletion: boolean; |
| isMemberCompletion: boolean; |
| /** |
| * true when the current location also allows for a new identifier |
| */ |
| isNewIdentifierLocation: boolean; |
| entries: CompletionEntry[]; |
| } |
| interface CompletionEntry { |
| name: string; |
| kind: ScriptElementKind; |
| kindModifiers?: string; |
| sortText: string; |
| insertText?: string; |
| /** |
| * An optional span that indicates the text to be replaced by this completion item. |
| * If present, this span should be used instead of the default one. |
| * It will be set if the required span differs from the one generated by the default replacement behavior. |
| */ |
| replacementSpan?: TextSpan; |
| hasAction?: true; |
| source?: string; |
| isRecommended?: true; |
| } |
| interface CompletionEntryDetails { |
| name: string; |
| kind: ScriptElementKind; |
| kindModifiers: string; |
| displayParts: SymbolDisplayPart[]; |
| documentation?: SymbolDisplayPart[]; |
| tags?: JSDocTagInfo[]; |
| codeActions?: CodeAction[]; |
| source?: SymbolDisplayPart[]; |
| } |
| interface OutliningSpan { |
| /** The span of the document to actually collapse. */ |
| textSpan: TextSpan; |
| /** The span of the document to display when the user hovers over the collapsed span. */ |
| hintSpan: TextSpan; |
| /** The text to display in the editor for the collapsed region. */ |
| bannerText: string; |
| /** |
| * Whether or not this region should be automatically collapsed when |
| * the 'Collapse to Definitions' command is invoked. |
| */ |
| autoCollapse: boolean; |
| /** |
| * Classification of the contents of the span |
| */ |
| kind: OutliningSpanKind; |
| } |
| enum OutliningSpanKind { |
| /** Single or multi-line comments */ |
| Comment = "comment", |
| /** Sections marked by '// #region' and '// #endregion' comments */ |
| Region = "region", |
| /** Declarations and expressions */ |
| Code = "code", |
| /** Contiguous blocks of import declarations */ |
| Imports = "imports" |
| } |
| enum OutputFileType { |
| JavaScript = 0, |
| SourceMap = 1, |
| Declaration = 2 |
| } |
| enum EndOfLineState { |
| None = 0, |
| InMultiLineCommentTrivia = 1, |
| InSingleQuoteStringLiteral = 2, |
| InDoubleQuoteStringLiteral = 3, |
| InTemplateHeadOrNoSubstitutionTemplate = 4, |
| InTemplateMiddleOrTail = 5, |
| InTemplateSubstitutionPosition = 6 |
| } |
| enum TokenClass { |
| Punctuation = 0, |
| Keyword = 1, |
| Operator = 2, |
| Comment = 3, |
| Whitespace = 4, |
| Identifier = 5, |
| NumberLiteral = 6, |
| BigIntLiteral = 7, |
| StringLiteral = 8, |
| RegExpLiteral = 9 |
| } |
| interface ClassificationResult { |
| finalLexState: EndOfLineState; |
| entries: ClassificationInfo[]; |
| } |
| interface ClassificationInfo { |
| length: number; |
| classification: TokenClass; |
| } |
| interface Classifier { |
| /** |
| * Gives lexical classifications of tokens on a line without any syntactic context. |
| * For instance, a token consisting of the text 'string' can be either an identifier |
| * named 'string' or the keyword 'string', however, because this classifier is not aware, |
| * it relies on certain heuristics to give acceptable results. For classifications where |
| * speed trumps accuracy, this function is preferable; however, for true accuracy, the |
| * syntactic classifier is ideal. In fact, in certain editing scenarios, combining the |
| * lexical, syntactic, and semantic classifiers may issue the best user experience. |
| * |
| * @param text The text of a line to classify. |
| * @param lexState The state of the lexical classifier at the end of the previous line. |
| * @param syntacticClassifierAbsent Whether the client is *not* using a syntactic classifier. |
| * If there is no syntactic classifier (syntacticClassifierAbsent=true), |
| * certain heuristics may be used in its place; however, if there is a |
| * syntactic classifier (syntacticClassifierAbsent=false), certain |
| * classifications which may be incorrectly categorized will be given |
| * back as Identifiers in order to allow the syntactic classifier to |
| * subsume the classification. |
| * @deprecated Use getLexicalClassifications instead. |
| */ |
| getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult; |
| getEncodedLexicalClassifications(text: string, endOfLineState: EndOfLineState, syntacticClassifierAbsent: boolean): Classifications; |
| } |
| enum ScriptElementKind { |
| unknown = "", |
| warning = "warning", |
| /** predefined type (void) or keyword (class) */ |
| keyword = "keyword", |
| /** top level script node */ |
| scriptElement = "script", |
| /** module foo {} */ |
| moduleElement = "module", |
| /** class X {} */ |
| classElement = "class", |
| /** var x = class X {} */ |
| localClassElement = "local class", |
| /** interface Y {} */ |
| interfaceElement = "interface", |
| /** type T = ... */ |
| typeElement = "type", |
| /** enum E */ |
| enumElement = "enum", |
| enumMemberElement = "enum member", |
| /** |
| * Inside module and script only |
| * const v = .. |
| */ |
| variableElement = "var", |
| /** Inside function */ |
| localVariableElement = "local var", |
| /** |
| * Inside module and script only |
| * function f() { } |
| */ |
| functionElement = "function", |
| /** Inside function */ |
| localFunctionElement = "local function", |
| /** class X { [public|private]* foo() {} } */ |
| memberFunctionElement = "method", |
| /** class X { [public|private]* [get|set] foo:number; } */ |
| memberGetAccessorElement = "getter", |
| memberSetAccessorElement = "setter", |
| /** |
| * class X { [public|private]* foo:number; } |
| * interface Y { foo:number; } |
| */ |
| memberVariableElement = "property", |
| /** class X { constructor() { } } */ |
| constructorImplementationElement = "constructor", |
| /** interface Y { ():number; } */ |
| callSignatureElement = "call", |
| /** interface Y { []:number; } */ |
| indexSignatureElement = "index", |
| /** interface Y { new():Y; } */ |
| constructSignatureElement = "construct", |
| /** function foo(*Y*: string) */ |
| parameterElement = "parameter", |
| typeParameterElement = "type parameter", |
| primitiveType = "primitive type", |
| label = "label", |
| alias = "alias", |
| constElement = "const", |
| letElement = "let", |
| directory = "directory", |
| externalModuleName = "external module name", |
| /** |
| * <JsxTagName attribute1 attribute2={0} /> |
| */ |
| jsxAttribute = "JSX attribute", |
| /** String literal */ |
| string = "string" |
| } |
| enum ScriptElementKindModifier { |
| none = "", |
| publicMemberModifier = "public", |
| privateMemberModifier = "private", |
| protectedMemberModifier = "protected", |
| exportedModifier = "export", |
| ambientModifier = "declare", |
| staticModifier = "static", |
| abstractModifier = "abstract", |
| optionalModifier = "optional", |
| dtsModifier = ".d.ts", |
| tsModifier = ".ts", |
| tsxModifier = ".tsx", |
| jsModifier = ".js", |
| jsxModifier = ".jsx", |
| jsonModifier = ".json" |
| } |
| enum ClassificationTypeNames { |
| comment = "comment", |
| identifier = "identifier", |
| keyword = "keyword", |
| numericLiteral = "number", |
| bigintLiteral = "bigint", |
| operator = "operator", |
| stringLiteral = "string", |
| whiteSpace = "whitespace", |
| text = "text", |
| punctuation = "punctuation", |
| className = "class name", |
| enumName = "enum name", |
| interfaceName = "interface name", |
| moduleName = "module name", |
| typeParameterName = "type parameter name", |
| typeAliasName = "type alias name", |
| parameterName = "parameter name", |
| docCommentTagName = "doc comment tag name", |
| jsxOpenTagName = "jsx open tag name", |
| jsxCloseTagName = "jsx close tag name", |
| jsxSelfClosingTagName = "jsx self closing tag name", |
| jsxAttribute = "jsx attribute", |
| jsxText = "jsx text", |
| jsxAttributeStringLiteralValue = "jsx attribute string literal value" |
| } |
| enum ClassificationType { |
| comment = 1, |
| identifier = 2, |
| keyword = 3, |
| numericLiteral = 4, |
| operator = 5, |
| stringLiteral = 6, |
| regularExpressionLiteral = 7, |
| whiteSpace = 8, |
| text = 9, |
| punctuation = 10, |
| className = 11, |
| enumName = 12, |
| interfaceName = 13, |
| moduleName = 14, |
| typeParameterName = 15, |
| typeAliasName = 16, |
| parameterName = 17, |
| docCommentTagName = 18, |
| jsxOpenTagName = 19, |
| jsxCloseTagName = 20, |
| jsxSelfClosingTagName = 21, |
| jsxAttribute = 22, |
| jsxText = 23, |
| jsxAttributeStringLiteralValue = 24, |
| bigintLiteral = 25 |
| } |
| } |
| declare namespace ts { |
| function createClassifier(): Classifier; |
| } |
| declare namespace ts { |
| /** |
| * The document registry represents a store of SourceFile objects that can be shared between |
| * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) |
| * of files in the context. |
| * SourceFile objects account for most of the memory usage by the language service. Sharing |
| * the same DocumentRegistry instance between different instances of LanguageService allow |
| * for more efficient memory utilization since all projects will share at least the library |
| * file (lib.d.ts). |
| * |
| * A more advanced use of the document registry is to serialize sourceFile objects to disk |
| * and re-hydrate them when needed. |
| * |
| * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it |
| * to all subsequent createLanguageService calls. |
| */ |
| interface DocumentRegistry { |
| /** |
| * Request a stored SourceFile with a given fileName and compilationSettings. |
| * The first call to acquire will call createLanguageServiceSourceFile to generate |
| * the SourceFile if was not found in the registry. |
| * |
| * @param fileName The name of the file requested |
| * @param compilationSettings Some compilation settings like target affects the |
| * shape of a the resulting SourceFile. This allows the DocumentRegistry to store |
| * multiple copies of the same file for different compilation settings. |
| * @param scriptSnapshot Text of the file. Only used if the file was not found |
| * in the registry and a new one was created. |
| * @param version Current version of the file. Only used if the file was not found |
| * in the registry and a new one was created. |
| */ |
| acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; |
| acquireDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; |
| /** |
| * Request an updated version of an already existing SourceFile with a given fileName |
| * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile |
| * to get an updated SourceFile. |
| * |
| * @param fileName The name of the file requested |
| * @param compilationSettings Some compilation settings like target affects the |
| * shape of a the resulting SourceFile. This allows the DocumentRegistry to store |
| * multiple copies of the same file for different compilation settings. |
| * @param scriptSnapshot Text of the file. |
| * @param version Current version of the file. |
| */ |
| updateDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; |
| updateDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; |
| getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey; |
| /** |
| * Informs the DocumentRegistry that a file is not needed any longer. |
| * |
| * Note: It is not allowed to call release on a SourceFile that was not acquired from |
| * this registry originally. |
| * |
| * @param fileName The name of the file to be released |
| * @param compilationSettings The compilation settings used to acquire the file |
| */ |
| releaseDocument(fileName: string, compilationSettings: CompilerOptions): void; |
| releaseDocumentWithKey(path: Path, key: DocumentRegistryBucketKey): void; |
| reportStats(): string; |
| } |
| type DocumentRegistryBucketKey = string & { |
| __bucketKey: any; |
| }; |
| function createDocumentRegistry(useCaseSensitiveFileNames?: boolean, currentDirectory?: string): DocumentRegistry; |
| } |
| declare namespace ts { |
| function preProcessFile(sourceText: string, readImportFiles?: boolean, detectJavaScriptImports?: boolean): PreProcessedFileInfo; |
| } |
| declare namespace ts { |
| interface TranspileOptions { |
| compilerOptions?: CompilerOptions; |
| fileName?: string; |
| reportDiagnostics?: boolean; |
| moduleName?: string; |
| renamedDependencies?: MapLike<string>; |
| transformers?: CustomTransformers; |
| } |
| interface TranspileOutput { |
| outputText: string; |
| diagnostics?: Diagnostic[]; |
| sourceMapText?: string; |
| } |
| function transpileModule(input: string, transpileOptions: TranspileOptions): TranspileOutput; |
| function transpile(input: string, compilerOptions?: CompilerOptions, fileName?: string, diagnostics?: Diagnostic[], moduleName?: string): string; |
| } |
| declare namespace ts { |
| /** The version of the language service API */ |
| const servicesVersion = "0.8"; |
| function toEditorSettings(options: EditorOptions | EditorSettings): EditorSettings; |
| function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string; |
| function getDefaultCompilerOptions(): CompilerOptions; |
| function getSupportedCodeFixes(): string[]; |
| function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile; |
| let disableIncrementalParsing: boolean; |
| function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean): SourceFile; |
| function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnly?: boolean): LanguageService; |
| /** |
| * Get the path of the default library files (lib.d.ts) as distributed with the typescript |
| * node package. |
| * The functionality is not supported if the ts module is consumed outside of a node module. |
| */ |
| function getDefaultLibFilePath(options: CompilerOptions): string; |
| } |
| declare namespace ts { |
| /** |
| * Transform one or more nodes using the supplied transformers. |
| * @param source A single `Node` or an array of `Node` objects. |
| * @param transformers An array of `TransformerFactory` callbacks used to process the transformation. |
| * @param compilerOptions Optional compiler options. |
| */ |
| function transform<T extends Node>(source: T | T[], transformers: TransformerFactory<T>[], compilerOptions?: CompilerOptions): TransformationResult<T>; |
| } |
| declare namespace ts.server { |
| interface CompressedData { |
| length: number; |
| compressionKind: string; |
| data: any; |
| } |
| type RequireResult = { |
| module: {}; |
| error: undefined; |
| } | { |
| module: undefined; |
| error: { |
| stack?: string; |
| message?: string; |
| }; |
| }; |
| interface ServerHost extends System { |
| watchFile(path: string, callback: FileWatcherCallback, pollingInterval?: number): FileWatcher; |
| watchDirectory(path: string, callback: DirectoryWatcherCallback, recursive?: boolean): FileWatcher; |
| setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any; |
| clearTimeout(timeoutId: any): void; |
| setImmediate(callback: (...args: any[]) => void, ...args: any[]): any; |
| clearImmediate(timeoutId: any): void; |
| gc?(): void; |
| trace?(s: string): void; |
| require?(initialPath: string, moduleName: string): RequireResult; |
| } |
| } |
| declare namespace ts.server { |
| enum LogLevel { |
| terse = 0, |
| normal = 1, |
| requestTime = 2, |
| verbose = 3 |
| } |
| const emptyArray: SortedReadonlyArray<never>; |
| interface Logger { |
| close(): void; |
| hasLevel(level: LogLevel): boolean; |
| loggingEnabled(): boolean; |
| perftrc(s: string): void; |
| info(s: string): void; |
| startGroup(): void; |
| endGroup(): void; |
| msg(s: string, type?: Msg): void; |
| getLogFileName(): string | undefined; |
| } |
| enum Msg { |
| Err = "Err", |
| Info = "Info", |
| Perf = "Perf" |
| } |
| namespace Msg { |
| /** @deprecated Only here for backwards-compatibility. Prefer just `Msg`. */ |
| type Types = Msg; |
| } |
| function createInstallTypingsRequest(project: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray<string>, cachePath?: string): DiscoverTypings; |
| namespace Errors { |
| function ThrowNoProject(): never; |
| function ThrowProjectLanguageServiceDisabled(): never; |
| function ThrowProjectDoesNotContainDocument(fileName: string, project: Project): never; |
| } |
| type NormalizedPath = string & { |
| __normalizedPathTag: any; |
| }; |
| function toNormalizedPath(fileName: string): NormalizedPath; |
| function normalizedPathToPath(normalizedPath: NormalizedPath, currentDirectory: string, getCanonicalFileName: (f: string) => string): Path; |
| function asNormalizedPath(fileName: string): NormalizedPath; |
| interface NormalizedPathMap<T> { |
| get(path: NormalizedPath): T | undefined; |
| set(path: NormalizedPath, value: T): void; |
| contains(path: NormalizedPath): boolean; |
| remove(path: NormalizedPath): void; |
| } |
| function createNormalizedPathMap<T>(): NormalizedPathMap<T>; |
| function isInferredProjectName(name: string): boolean; |
| function makeInferredProjectName(counter: number): string; |
| function createSortedArray<T>(): SortedArray<T>; |
| } |
| /** |
| * Declaration module describing the TypeScript Server protocol |
| */ |
| declare namespace ts.server.protocol { |
| enum CommandTypes { |
| JsxClosingTag = "jsxClosingTag", |
| Brace = "brace", |
| BraceCompletion = "braceCompletion", |
| GetSpanOfEnclosingComment = "getSpanOfEnclosingComment", |
| Change = "change", |
| Close = "close", |
| /** @deprecated Prefer CompletionInfo -- see comment on CompletionsResponse */ |
| Completions = "completions", |
| CompletionInfo = "completionInfo", |
| CompletionDetails = "completionEntryDetails", |
| CompileOnSaveAffectedFileList = "compileOnSaveAffectedFileList", |
| CompileOnSaveEmitFile = "compileOnSaveEmitFile", |
| Configure = "configure", |
| Definition = "definition", |
| DefinitionAndBoundSpan = "definitionAndBoundSpan", |
| Implementation = "implementation", |
| Exit = "exit", |
| Format = "format", |
| Formatonkey = "formatonkey", |
| Geterr = "geterr", |
| GeterrForProject = "geterrForProject", |
| SemanticDiagnosticsSync = "semanticDiagnosticsSync", |
| SyntacticDiagnosticsSync = "syntacticDiagnosticsSync", |
| SuggestionDiagnosticsSync = "suggestionDiagnosticsSync", |
| NavBar = "navbar", |
| Navto = "navto", |
| NavTree = "navtree", |
| NavTreeFull = "navtree-full", |
| /** @deprecated */ |
| Occurrences = "occurrences", |
| DocumentHighlights = "documentHighlights", |
| Open = "open", |
| Quickinfo = "quickinfo", |
| References = "references", |
| Reload = "reload", |
| Rename = "rename", |
| Saveto = "saveto", |
| SignatureHelp = "signatureHelp", |
| Status = "status", |
| TypeDefinition = "typeDefinition", |
| ProjectInfo = "projectInfo", |
| ReloadProjects = "reloadProjects", |
| Unknown = "unknown", |
| OpenExternalProject = "openExternalProject", |
| OpenExternalProjects = "openExternalProjects", |
| CloseExternalProject = "closeExternalProject", |
| UpdateOpen = "updateOpen", |
| GetOutliningSpans = "getOutliningSpans", |
| TodoComments = "todoComments", |
| Indentation = "indentation", |
| DocCommentTemplate = "docCommentTemplate", |
| CompilerOptionsForInferredProjects = "compilerOptionsForInferredProjects", |
| GetCodeFixes = "getCodeFixes", |
| GetCombinedCodeFix = "getCombinedCodeFix", |
| ApplyCodeActionCommand = "applyCodeActionCommand", |
| GetSupportedCodeFixes = "getSupportedCodeFixes", |
| GetApplicableRefactors = "getApplicableRefactors", |
| GetEditsForRefactor = "getEditsForRefactor", |
| OrganizeImports = "organizeImports", |
| GetEditsForFileRename = "getEditsForFileRename", |
| ConfigurePlugin = "configurePlugin", |
| SelectionRange = "selectionRange", |
| } |
| /** |
| * A TypeScript Server message |
| */ |
| interface Message { |
| /** |
| * Sequence number of the message |
| */ |
| seq: number; |
| /** |
| * One of "request", "response", or "event" |
| */ |
| type: "request" | "response" | "event"; |
| } |
| /** |
| * Client-initiated request message |
| */ |
| interface Request extends Message { |
| type: "request"; |
| /** |
| * The command to execute |
| */ |
| command: string; |
| /** |
| * Object containing arguments for the command |
| */ |
| arguments?: any; |
| } |
| /** |
| * Request to reload the project structure for all the opened files |
| */ |
| interface ReloadProjectsRequest extends Message { |
| command: CommandTypes.ReloadProjects; |
| } |
| /** |
| * Server-initiated event message |
| */ |
| interface Event extends Message { |
| type: "event"; |
| /** |
| * Name of event |
| */ |
| event: string; |
| /** |
| * Event-specific information |
| */ |
| body?: any; |
| } |
| /** |
| * Response by server to client request message. |
| */ |
| interface Response extends Message { |
| type: "response"; |
| /** |
| * Sequence number of the request message. |
| */ |
| request_seq: number; |
| /** |
| * Outcome of the request. |
| */ |
| success: boolean; |
| /** |
| * The command requested. |
| */ |
| command: string; |
| /** |
| * If success === false, this should always be provided. |
| * Otherwise, may (or may not) contain a success message. |
| */ |
| message?: string; |
| /** |
| * Contains message body if success === true. |
| */ |
| body?: any; |
| /** |
| * Contains extra information that plugin can include to be passed on |
| */ |
| metadata?: unknown; |
| } |
| /** |
| * Arguments for FileRequest messages. |
| */ |
| interface FileRequestArgs { |
| /** |
| * The file for the request (absolute pathname required). |
| */ |
| file: string; |
| projectFileName?: string; |
| } |
| interface StatusRequest extends Request { |
| command: CommandTypes.Status; |
| } |
| interface StatusResponseBody { |
| /** |
| * The TypeScript version (`ts.version`). |
| */ |
| version: string; |
| } |
| /** |
| * Response to StatusRequest |
| */ |
| interface StatusResponse extends Response { |
| body: StatusResponseBody; |
| } |
| /** |
| * Requests a JS Doc comment template for a given position |
| */ |
| interface DocCommentTemplateRequest extends FileLocationRequest { |
| command: CommandTypes.DocCommentTemplate; |
| } |
| /** |
| * Response to DocCommentTemplateRequest |
| */ |
| interface DocCommandTemplateResponse extends Response { |
| body?: TextInsertion; |
| } |
| /** |
| * A request to get TODO comments from the file |
| */ |
| interface TodoCommentRequest extends FileRequest { |
| command: CommandTypes.TodoComments; |
| arguments: TodoCommentRequestArgs; |
| } |
| /** |
| * Arguments for TodoCommentRequest request. |
| */ |
| interface TodoCommentRequestArgs extends FileRequestArgs { |
| /** |
| * Array of target TodoCommentDescriptors that describes TODO comments to be found |
| */ |
| descriptors: TodoCommentDescriptor[]; |
| } |
| /** |
| * Response for TodoCommentRequest request. |
| */ |
| interface TodoCommentsResponse extends Response { |
| body?: TodoComment[]; |
| } |
| /** |
| * A request to determine if the caret is inside a comment. |
| */ |
| interface SpanOfEnclosingCommentRequest extends FileLocationRequest { |
| command: CommandTypes.GetSpanOfEnclosingComment; |
| arguments: SpanOfEnclosingCommentRequestArgs; |
| } |
| interface SpanOfEnclosingCommentRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Requires that the enclosing span be a multi-line comment, or else the request returns undefined. |
| */ |
| onlyMultiLine: boolean; |
| } |
| /** |
| * Request to obtain outlining spans in file. |
| */ |
| interface OutliningSpansRequest extends FileRequest { |
| command: CommandTypes.GetOutliningSpans; |
| } |
| interface OutliningSpan { |
| /** The span of the document to actually collapse. */ |
| textSpan: TextSpan; |
| /** The span of the document to display when the user hovers over the collapsed span. */ |
| hintSpan: TextSpan; |
| /** The text to display in the editor for the collapsed region. */ |
| bannerText: string; |
| /** |
| * Whether or not this region should be automatically collapsed when |
| * the 'Collapse to Definitions' command is invoked. |
| */ |
| autoCollapse: boolean; |
| /** |
| * Classification of the contents of the span |
| */ |
| kind: OutliningSpanKind; |
| } |
| /** |
| * Response to OutliningSpansRequest request. |
| */ |
| interface OutliningSpansResponse extends Response { |
| body?: OutliningSpan[]; |
| } |
| /** |
| * A request to get indentation for a location in file |
| */ |
| interface IndentationRequest extends FileLocationRequest { |
| command: CommandTypes.Indentation; |
| arguments: IndentationRequestArgs; |
| } |
| /** |
| * Response for IndentationRequest request. |
| */ |
| interface IndentationResponse extends Response { |
| body?: IndentationResult; |
| } |
| /** |
| * Indentation result representing where indentation should be placed |
| */ |
| interface IndentationResult { |
| /** |
| * The base position in the document that the indent should be relative to |
| */ |
| position: number; |
| /** |
| * The number of columns the indent should be at relative to the position's column. |
| */ |
| indentation: number; |
| } |
| /** |
| * Arguments for IndentationRequest request. |
| */ |
| interface IndentationRequestArgs extends FileLocationRequestArgs { |
| /** |
| * An optional set of settings to be used when computing indentation. |
| * If argument is omitted - then it will use settings for file that were previously set via 'configure' request or global settings. |
| */ |
| options?: EditorSettings; |
| } |
| /** |
| * Arguments for ProjectInfoRequest request. |
| */ |
| interface ProjectInfoRequestArgs extends FileRequestArgs { |
| /** |
| * Indicate if the file name list of the project is needed |
| */ |
| needFileNameList: boolean; |
| } |
| /** |
| * A request to get the project information of the current file. |
| */ |
| interface ProjectInfoRequest extends Request { |
| command: CommandTypes.ProjectInfo; |
| arguments: ProjectInfoRequestArgs; |
| } |
| /** |
| * A request to retrieve compiler options diagnostics for a project |
| */ |
| interface CompilerOptionsDiagnosticsRequest extends Request { |
| arguments: CompilerOptionsDiagnosticsRequestArgs; |
| } |
| /** |
| * Arguments for CompilerOptionsDiagnosticsRequest request. |
| */ |
| interface CompilerOptionsDiagnosticsRequestArgs { |
| /** |
| * Name of the project to retrieve compiler options diagnostics. |
| */ |
| projectFileName: string; |
| } |
| /** |
| * Response message body for "projectInfo" request |
| */ |
| interface ProjectInfo { |
| /** |
| * For configured project, this is the normalized path of the 'tsconfig.json' file |
| * For inferred project, this is undefined |
| */ |
| configFileName: string; |
| /** |
| * The list of normalized file name in the project, including 'lib.d.ts' |
| */ |
| fileNames?: string[]; |
| /** |
| * Indicates if the project has a active language service instance |
| */ |
| languageServiceDisabled?: boolean; |
| } |
| /** |
| * Represents diagnostic info that includes location of diagnostic in two forms |
| * - start position and length of the error span |
| * - startLocation and endLocation - a pair of Location objects that store start/end line and offset of the error span. |
| */ |
| interface DiagnosticWithLinePosition { |
| message: string; |
| start: number; |
| length: number; |
| startLocation: Location; |
| endLocation: Location; |
| category: string; |
| code: number; |
| /** May store more in future. For now, this will simply be `true` to indicate when a diagnostic is an unused-identifier diagnostic. */ |
| reportsUnnecessary?: {}; |
| relatedInformation?: DiagnosticRelatedInformation[]; |
| } |
| /** |
| * Response message for "projectInfo" request |
| */ |
| interface ProjectInfoResponse extends Response { |
| body?: ProjectInfo; |
| } |
| /** |
| * Request whose sole parameter is a file name. |
| */ |
| interface FileRequest extends Request { |
| arguments: FileRequestArgs; |
| } |
| /** |
| * Instances of this interface specify a location in a source file: |
| * (file, line, character offset), where line and character offset are 1-based. |
| */ |
| interface FileLocationRequestArgs extends FileRequestArgs { |
| /** |
| * The line number for the request (1-based). |
| */ |
| line: number; |
| /** |
| * The character offset (on the line) for the request (1-based). |
| */ |
| offset: number; |
| } |
| type FileLocationOrRangeRequestArgs = FileLocationRequestArgs | FileRangeRequestArgs; |
| /** |
| * Request refactorings at a given position or selection area. |
| */ |
| interface GetApplicableRefactorsRequest extends Request { |
| command: CommandTypes.GetApplicableRefactors; |
| arguments: GetApplicableRefactorsRequestArgs; |
| } |
| type GetApplicableRefactorsRequestArgs = FileLocationOrRangeRequestArgs; |
| /** |
| * Response is a list of available refactorings. |
| * Each refactoring exposes one or more "Actions"; a user selects one action to invoke a refactoring |
| */ |
| interface GetApplicableRefactorsResponse extends Response { |
| body?: ApplicableRefactorInfo[]; |
| } |
| /** |
| * A set of one or more available refactoring actions, grouped under a parent refactoring. |
| */ |
| interface ApplicableRefactorInfo { |
| /** |
| * The programmatic name of the refactoring |
| */ |
| name: string; |
| /** |
| * A description of this refactoring category to show to the user. |
| * If the refactoring gets inlined (see below), this text will not be visible. |
| */ |
| description: string; |
| /** |
| * Inlineable refactorings can have their actions hoisted out to the top level |
| * of a context menu. Non-inlineanable refactorings should always be shown inside |
| * their parent grouping. |
| * |
| * If not specified, this value is assumed to be 'true' |
| */ |
| inlineable?: boolean; |
| actions: RefactorActionInfo[]; |
| } |
| /** |
| * Represents a single refactoring action - for example, the "Extract Method..." refactor might |
| * offer several actions, each corresponding to a surround class or closure to extract into. |
| */ |
| interface RefactorActionInfo { |
| /** |
| * The programmatic name of the refactoring action |
| */ |
| name: string; |
| /** |
| * A description of this refactoring action to show to the user. |
| * If the parent refactoring is inlined away, this will be the only text shown, |
| * so this description should make sense by itself if the parent is inlineable=true |
| */ |
| description: string; |
| } |
| interface GetEditsForRefactorRequest extends Request { |
| command: CommandTypes.GetEditsForRefactor; |
| arguments: GetEditsForRefactorRequestArgs; |
| } |
| /** |
| * Request the edits that a particular refactoring action produces. |
| * Callers must specify the name of the refactor and the name of the action. |
| */ |
| type GetEditsForRefactorRequestArgs = FileLocationOrRangeRequestArgs & { |
| refactor: string; |
| action: string; |
| }; |
| interface GetEditsForRefactorResponse extends Response { |
| body?: RefactorEditInfo; |
| } |
| interface RefactorEditInfo { |
| edits: FileCodeEdits[]; |
| /** |
| * An optional location where the editor should start a rename operation once |
| * the refactoring edits have been applied |
| */ |
| renameLocation?: Location; |
| renameFilename?: string; |
| } |
| /** |
| * Organize imports by: |
| * 1) Removing unused imports |
| * 2) Coalescing imports from the same module |
| * 3) Sorting imports |
| */ |
| interface OrganizeImportsRequest extends Request { |
| command: CommandTypes.OrganizeImports; |
| arguments: OrganizeImportsRequestArgs; |
| } |
| type OrganizeImportsScope = GetCombinedCodeFixScope; |
| interface OrganizeImportsRequestArgs { |
| scope: OrganizeImportsScope; |
| } |
| interface OrganizeImportsResponse extends Response { |
| body: ReadonlyArray<FileCodeEdits>; |
| } |
| interface GetEditsForFileRenameRequest extends Request { |
| command: CommandTypes.GetEditsForFileRename; |
| arguments: GetEditsForFileRenameRequestArgs; |
| } |
| /** Note: Paths may also be directories. */ |
| interface GetEditsForFileRenameRequestArgs { |
| readonly oldFilePath: string; |
| readonly newFilePath: string; |
| } |
| interface GetEditsForFileRenameResponse extends Response { |
| body: ReadonlyArray<FileCodeEdits>; |
| } |
| /** |
| * Request for the available codefixes at a specific position. |
| */ |
| interface CodeFixRequest extends Request { |
| command: CommandTypes.GetCodeFixes; |
| arguments: CodeFixRequestArgs; |
| } |
| interface GetCombinedCodeFixRequest extends Request { |
| command: CommandTypes.GetCombinedCodeFix; |
| arguments: GetCombinedCodeFixRequestArgs; |
| } |
| interface GetCombinedCodeFixResponse extends Response { |
| body: CombinedCodeActions; |
| } |
| interface ApplyCodeActionCommandRequest extends Request { |
| command: CommandTypes.ApplyCodeActionCommand; |
| arguments: ApplyCodeActionCommandRequestArgs; |
| } |
| interface ApplyCodeActionCommandResponse extends Response { |
| } |
| interface FileRangeRequestArgs extends FileRequestArgs { |
| /** |
| * The line number for the request (1-based). |
| */ |
| startLine: number; |
| /** |
| * The character offset (on the line) for the request (1-based). |
| */ |
| startOffset: number; |
| /** |
| * The line number for the request (1-based). |
| */ |
| endLine: number; |
| /** |
| * The character offset (on the line) for the request (1-based). |
| */ |
| endOffset: number; |
| } |
| /** |
| * Instances of this interface specify errorcodes on a specific location in a sourcefile. |
| */ |
| interface CodeFixRequestArgs extends FileRangeRequestArgs { |
| /** |
| * Errorcodes we want to get the fixes for. |
| */ |
| errorCodes: ReadonlyArray<number>; |
| } |
| interface GetCombinedCodeFixRequestArgs { |
| scope: GetCombinedCodeFixScope; |
| fixId: {}; |
| } |
| interface GetCombinedCodeFixScope { |
| type: "file"; |
| args: FileRequestArgs; |
| } |
| interface ApplyCodeActionCommandRequestArgs { |
| /** May also be an array of commands. */ |
| command: {}; |
| } |
| /** |
| * Response for GetCodeFixes request. |
| */ |
| interface GetCodeFixesResponse extends Response { |
| body?: CodeAction[]; |
| } |
| /** |
| * A request whose arguments specify a file location (file, line, col). |
| */ |
| interface FileLocationRequest extends FileRequest { |
| arguments: FileLocationRequestArgs; |
| } |
| /** |
| * A request to get codes of supported code fixes. |
| */ |
| interface GetSupportedCodeFixesRequest extends Request { |
| command: CommandTypes.GetSupportedCodeFixes; |
| } |
| /** |
| * A response for GetSupportedCodeFixesRequest request. |
| */ |
| interface GetSupportedCodeFixesResponse extends Response { |
| /** |
| * List of error codes supported by the server. |
| */ |
| body?: string[]; |
| } |
| /** |
| * Arguments for EncodedSemanticClassificationsRequest request. |
| */ |
| interface EncodedSemanticClassificationsRequestArgs extends FileRequestArgs { |
| /** |
| * Start position of the span. |
| */ |
| start: number; |
| /** |
| * Length of the span. |
| */ |
| length: number; |
| } |
| /** |
| * Arguments in document highlight request; include: filesToSearch, file, |
| * line, offset. |
| */ |
| interface DocumentHighlightsRequestArgs extends FileLocationRequestArgs { |
| /** |
| * List of files to search for document highlights. |
| */ |
| filesToSearch: string[]; |
| } |
| /** |
| * Go to definition request; value of command field is |
| * "definition". Return response giving the file locations that |
| * define the symbol found in file at location line, col. |
| */ |
| interface DefinitionRequest extends FileLocationRequest { |
| command: CommandTypes.Definition; |
| } |
| interface DefinitionAndBoundSpanRequest extends FileLocationRequest { |
| readonly command: CommandTypes.DefinitionAndBoundSpan; |
| } |
| interface DefinitionAndBoundSpanResponse extends Response { |
| readonly body: DefinitionInfoAndBoundSpan; |
| } |
| /** |
| * Go to type request; value of command field is |
| * "typeDefinition". Return response giving the file locations that |
| * define the type for the symbol found in file at location line, col. |
| */ |
| interface TypeDefinitionRequest extends FileLocationRequest { |
| command: CommandTypes.TypeDefinition; |
| } |
| /** |
| * Go to implementation request; value of command field is |
| * "implementation". Return response giving the file locations that |
| * implement the symbol found in file at location line, col. |
| */ |
| interface ImplementationRequest extends FileLocationRequest { |
| command: CommandTypes.Implementation; |
| } |
| /** |
| * Location in source code expressed as (one-based) line and (one-based) column offset. |
| */ |
| interface Location { |
| line: number; |
| offset: number; |
| } |
| /** |
| * Object found in response messages defining a span of text in source code. |
| */ |
| interface TextSpan { |
| /** |
| * First character of the definition. |
| */ |
| start: Location; |
| /** |
| * One character past last character of the definition. |
| */ |
| end: Location; |
| } |
| /** |
| * Object found in response messages defining a span of text in a specific source file. |
| */ |
| interface FileSpan extends TextSpan { |
| /** |
| * File containing text span. |
| */ |
| file: string; |
| } |
| interface DefinitionInfoAndBoundSpan { |
| definitions: ReadonlyArray<FileSpan>; |
| textSpan: TextSpan; |
| } |
| /** |
| * Definition response message. Gives text range for definition. |
| */ |
| interface DefinitionResponse extends Response { |
| body?: FileSpan[]; |
| } |
| interface DefinitionInfoAndBoundSpanReponse extends Response { |
| body?: DefinitionInfoAndBoundSpan; |
| } |
| /** |
| * Definition response message. Gives text range for definition. |
| */ |
| interface TypeDefinitionResponse extends Response { |
| body?: FileSpan[]; |
| } |
| /** |
| * Implementation response message. Gives text range for implementations. |
| */ |
| interface ImplementationResponse extends Response { |
| body?: FileSpan[]; |
| } |
| /** |
| * Request to get brace completion for a location in the file. |
| */ |
| interface BraceCompletionRequest extends FileLocationRequest { |
| command: CommandTypes.BraceCompletion; |
| arguments: BraceCompletionRequestArgs; |
| } |
| /** |
| * Argument for BraceCompletionRequest request. |
| */ |
| interface BraceCompletionRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Kind of opening brace |
| */ |
| openingBrace: string; |
| } |
| interface JsxClosingTagRequest extends FileLocationRequest { |
| readonly command: CommandTypes.JsxClosingTag; |
| readonly arguments: JsxClosingTagRequestArgs; |
| } |
| interface JsxClosingTagRequestArgs extends FileLocationRequestArgs { |
| } |
| interface JsxClosingTagResponse extends Response { |
| readonly body: TextInsertion; |
| } |
| /** |
| * @deprecated |
| * Get occurrences request; value of command field is |
| * "occurrences". Return response giving spans that are relevant |
| * in the file at a given line and column. |
| */ |
| interface OccurrencesRequest extends FileLocationRequest { |
| command: CommandTypes.Occurrences; |
| } |
| /** @deprecated */ |
| interface OccurrencesResponseItem extends FileSpan { |
| /** |
| * True if the occurrence is a write location, false otherwise. |
| */ |
| isWriteAccess: boolean; |
| /** |
| * True if the occurrence is in a string, undefined otherwise; |
| */ |
| isInString?: true; |
| } |
| /** @deprecated */ |
| interface OccurrencesResponse extends Response { |
| body?: OccurrencesResponseItem[]; |
| } |
| /** |
| * Get document highlights request; value of command field is |
| * "documentHighlights". Return response giving spans that are relevant |
| * in the file at a given line and column. |
| */ |
| interface DocumentHighlightsRequest extends FileLocationRequest { |
| command: CommandTypes.DocumentHighlights; |
| arguments: DocumentHighlightsRequestArgs; |
| } |
| /** |
| * Span augmented with extra information that denotes the kind of the highlighting to be used for span. |
| */ |
| interface HighlightSpan extends TextSpan { |
| kind: HighlightSpanKind; |
| } |
| /** |
| * Represents a set of highligh spans for a give name |
| */ |
| interface DocumentHighlightsItem { |
| /** |
| * File containing highlight spans. |
| */ |
| file: string; |
| /** |
| * Spans to highlight in file. |
| */ |
| highlightSpans: HighlightSpan[]; |
| } |
| /** |
| * Response for a DocumentHighlightsRequest request. |
| */ |
| interface DocumentHighlightsResponse extends Response { |
| body?: DocumentHighlightsItem[]; |
| } |
| /** |
| * Find references request; value of command field is |
| * "references". Return response giving the file locations that |
| * reference the symbol found in file at location line, col. |
| */ |
| interface ReferencesRequest extends FileLocationRequest { |
| command: CommandTypes.References; |
| } |
| interface ReferencesResponseItem extends FileSpan { |
| /** Text of line containing the reference. Including this |
| * with the response avoids latency of editor loading files |
| * to show text of reference line (the server already has |
| * loaded the referencing files). |
| */ |
| lineText: string; |
| /** |
| * True if reference is a write location, false otherwise. |
| */ |
| isWriteAccess: boolean; |
| /** |
| * True if reference is a definition, false otherwise. |
| */ |
| isDefinition: boolean; |
| } |
| /** |
| * The body of a "references" response message. |
| */ |
| interface ReferencesResponseBody { |
| /** |
| * The file locations referencing the symbol. |
| */ |
| refs: ReadonlyArray<ReferencesResponseItem>; |
| /** |
| * The name of the symbol. |
| */ |
| symbolName: string; |
| /** |
| * The start character offset of the symbol (on the line provided by the references request). |
| */ |
| symbolStartOffset: number; |
| /** |
| * The full display name of the symbol. |
| */ |
| symbolDisplayString: string; |
| } |
| /** |
| * Response to "references" request. |
| */ |
| interface ReferencesResponse extends Response { |
| body?: ReferencesResponseBody; |
| } |
| /** |
| * Argument for RenameRequest request. |
| */ |
| interface RenameRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Should text at specified location be found/changed in comments? |
| */ |
| findInComments?: boolean; |
| /** |
| * Should text at specified location be found/changed in strings? |
| */ |
| findInStrings?: boolean; |
| } |
| /** |
| * Rename request; value of command field is "rename". Return |
| * response giving the file locations that reference the symbol |
| * found in file at location line, col. Also return full display |
| * name of the symbol so that client can print it unambiguously. |
| */ |
| interface RenameRequest extends FileLocationRequest { |
| command: CommandTypes.Rename; |
| arguments: RenameRequestArgs; |
| } |
| /** |
| * Information about the item to be renamed. |
| */ |
| type RenameInfo = RenameInfoSuccess | RenameInfoFailure; |
| interface RenameInfoSuccess { |
| /** |
| * True if item can be renamed. |
| */ |
| canRename: true; |
| /** |
| * File or directory to rename. |
| * If set, `getEditsForFileRename` should be called instead of `findRenameLocations`. |
| */ |
| fileToRename?: string; |
| /** |
| * Display name of the item to be renamed. |
| */ |
| displayName: string; |
| /** |
| * Full display name of item to be renamed. |
| */ |
| fullDisplayName: string; |
| /** |
| * The items's kind (such as 'className' or 'parameterName' or plain 'text'). |
| */ |
| kind: ScriptElementKind; |
| /** |
| * Optional modifiers for the kind (such as 'public'). |
| */ |
| kindModifiers: string; |
| /** Span of text to rename. */ |
| triggerSpan: TextSpan; |
| } |
| interface RenameInfoFailure { |
| canRename: false; |
| /** |
| * Error message if item can not be renamed. |
| */ |
| localizedErrorMessage: string; |
| } |
| /** |
| * A group of text spans, all in 'file'. |
| */ |
| interface SpanGroup { |
| /** The file to which the spans apply */ |
| file: string; |
| /** The text spans in this group */ |
| locs: RenameTextSpan[]; |
| } |
| interface RenameTextSpan extends TextSpan { |
| readonly prefixText?: string; |
| readonly suffixText?: string; |
| } |
| interface RenameResponseBody { |
| /** |
| * Information about the item to be renamed. |
| */ |
| info: RenameInfo; |
| /** |
| * An array of span groups (one per file) that refer to the item to be renamed. |
| */ |
| locs: ReadonlyArray<SpanGroup>; |
| } |
| /** |
| * Rename response message. |
| */ |
| interface RenameResponse extends Response { |
| body?: RenameResponseBody; |
| } |
| /** |
| * Represents a file in external project. |
| * External project is project whose set of files, compilation options and open\close state |
| * is maintained by the client (i.e. if all this data come from .csproj file in Visual Studio). |
| * External project will exist even if all files in it are closed and should be closed explicitly. |
| * If external project includes one or more tsconfig.json/jsconfig.json files then tsserver will |
| * create configured project for every config file but will maintain a link that these projects were created |
| * as a result of opening external project so they should be removed once external project is closed. |
| */ |
| interface ExternalFile { |
| /** |
| * Name of file file |
| */ |
| fileName: string; |
| /** |
| * Script kind of the file |
| */ |
| scriptKind?: ScriptKindName | ts.ScriptKind; |
| /** |
| * Whether file has mixed content (i.e. .cshtml file that combines html markup with C#/JavaScript) |
| */ |
| hasMixedContent?: boolean; |
| /** |
| * Content of the file |
| */ |
| content?: string; |
| } |
| /** |
| * Represent an external project |
| */ |
| interface ExternalProject { |
| /** |
| * Project name |
| */ |
| projectFileName: string; |
| /** |
| * List of root files in project |
| */ |
| rootFiles: ExternalFile[]; |
| /** |
| * Compiler options for the project |
| */ |
| options: ExternalProjectCompilerOptions; |
| /** |
| * @deprecated typingOptions. Use typeAcquisition instead |
| */ |
| typingOptions?: TypeAcquisition; |
| /** |
| * Explicitly specified type acquisition for the project |
| */ |
| typeAcquisition?: TypeAcquisition; |
| } |
| interface CompileOnSaveMixin { |
| /** |
| * If compile on save is enabled for the project |
| */ |
| compileOnSave?: boolean; |
| } |
| /** |
| * For external projects, some of the project settings are sent together with |
| * compiler settings. |
| */ |
| type ExternalProjectCompilerOptions = CompilerOptions & CompileOnSaveMixin; |
| /** |
| * Represents a set of changes that happen in project |
| */ |
| interface ProjectChanges { |
| /** |
| * List of added files |
| */ |
| added: string[]; |
| /** |
| * List of removed files |
| */ |
| removed: string[]; |
| /** |
| * List of updated files |
| */ |
| updated: string[]; |
| } |
| /** |
| * Information found in a configure request. |
| */ |
| interface ConfigureRequestArguments { |
| /** |
| * Information about the host, for example 'Emacs 24.4' or |
| * 'Sublime Text version 3075' |
| */ |
| hostInfo?: string; |
| /** |
| * If present, tab settings apply only to this file. |
| */ |
| file?: string; |
| /** |
| * The format options to use during formatting and other code editing features. |
| */ |
| formatOptions?: FormatCodeSettings; |
| preferences?: UserPreferences; |
| /** |
| * The host's additional supported .js file extensions |
| */ |
| extraFileExtensions?: FileExtensionInfo[]; |
| } |
| /** |
| * Configure request; value of command field is "configure". Specifies |
| * host information, such as host type, tab size, and indent size. |
| */ |
| interface ConfigureRequest extends Request { |
| command: CommandTypes.Configure; |
| arguments: ConfigureRequestArguments; |
| } |
| /** |
| * Response to "configure" request. This is just an acknowledgement, so |
| * no body field is required. |
| */ |
| interface ConfigureResponse extends Response { |
| } |
| interface ConfigurePluginRequestArguments { |
| pluginName: string; |
| configuration: any; |
| } |
| interface ConfigurePluginRequest extends Request { |
| command: CommandTypes.ConfigurePlugin; |
| arguments: ConfigurePluginRequestArguments; |
| } |
| interface ConfigurePluginResponse extends Response { |
| } |
| interface SelectionRangeRequest extends FileRequest { |
| command: CommandTypes.SelectionRange; |
| arguments: SelectionRangeRequestArgs; |
| } |
| interface SelectionRangeRequestArgs extends FileRequestArgs { |
| locations: Location[]; |
| } |
| interface SelectionRangeResponse extends Response { |
| body?: SelectionRange[]; |
| } |
| interface SelectionRange { |
| textSpan: TextSpan; |
| parent?: SelectionRange; |
| } |
| /** |
| * Information found in an "open" request. |
| */ |
| interface OpenRequestArgs extends FileRequestArgs { |
| /** |
| * Used when a version of the file content is known to be more up to date than the one on disk. |
| * Then the known content will be used upon opening instead of the disk copy |
| */ |
| fileContent?: string; |
| /** |
| * Used to specify the script kind of the file explicitly. It could be one of the following: |
| * "TS", "JS", "TSX", "JSX" |
| */ |
| scriptKindName?: ScriptKindName; |
| /** |
| * Used to limit the searching for project config file. If given the searching will stop at this |
| * root path; otherwise it will go all the way up to the dist root path. |
| */ |
| projectRootPath?: string; |
| } |
| type ScriptKindName = "TS" | "JS" | "TSX" | "JSX"; |
| /** |
| * Open request; value of command field is "open". Notify the |
| * server that the client has file open. The server will not |
| * monitor the filesystem for changes in this file and will assume |
| * that the client is updating the server (using the change and/or |
| * reload messages) when the file changes. Server does not currently |
| * send a response to an open request. |
| */ |
| interface OpenRequest extends Request { |
| command: CommandTypes.Open; |
| arguments: OpenRequestArgs; |
| } |
| /** |
| * Request to open or update external project |
| */ |
| interface OpenExternalProjectRequest extends Request { |
| command: CommandTypes.OpenExternalProject; |
| arguments: OpenExternalProjectArgs; |
| } |
| /** |
| * Arguments to OpenExternalProjectRequest request |
| */ |
| type OpenExternalProjectArgs = ExternalProject; |
| /** |
| * Request to open multiple external projects |
| */ |
| interface OpenExternalProjectsRequest extends Request { |
| command: CommandTypes.OpenExternalProjects; |
| arguments: OpenExternalProjectsArgs; |
| } |
| /** |
| * Arguments to OpenExternalProjectsRequest |
| */ |
| interface OpenExternalProjectsArgs { |
| /** |
| * List of external projects to open or update |
| */ |
| projects: ExternalProject[]; |
| } |
| /** |
| * Response to OpenExternalProjectRequest request. This is just an acknowledgement, so |
| * no body field is required. |
| */ |
| interface OpenExternalProjectResponse extends Response { |
| } |
| /** |
| * Response to OpenExternalProjectsRequest request. This is just an acknowledgement, so |
| * no body field is required. |
| */ |
| interface OpenExternalProjectsResponse extends Response { |
| } |
| /** |
| * Request to close external project. |
| */ |
| interface CloseExternalProjectRequest extends Request { |
| command: CommandTypes.CloseExternalProject; |
| arguments: CloseExternalProjectRequestArgs; |
| } |
| /** |
| * Arguments to CloseExternalProjectRequest request |
| */ |
| interface CloseExternalProjectRequestArgs { |
| /** |
| * Name of the project to close |
| */ |
| projectFileName: string; |
| } |
| /** |
| * Response to CloseExternalProjectRequest request. This is just an acknowledgement, so |
| * no body field is required. |
| */ |
| interface CloseExternalProjectResponse extends Response { |
| } |
| /** |
| * Request to synchronize list of open files with the client |
| */ |
| interface UpdateOpenRequest extends Request { |
| command: CommandTypes.UpdateOpen; |
| arguments: UpdateOpenRequestArgs; |
| } |
| /** |
| * Arguments to UpdateOpenRequest |
| */ |
| interface UpdateOpenRequestArgs { |
| /** |
| * List of newly open files |
| */ |
| openFiles?: OpenRequestArgs[]; |
| /** |
| * List of open files files that were changes |
| */ |
| changedFiles?: FileCodeEdits[]; |
| /** |
| * List of files that were closed |
| */ |
| closedFiles?: string[]; |
| } |
| /** |
| * Request to set compiler options for inferred projects. |
| * External projects are opened / closed explicitly. |
| * Configured projects are opened when user opens loose file that has 'tsconfig.json' or 'jsconfig.json' anywhere in one of containing folders. |
| * This configuration file will be used to obtain a list of files and configuration settings for the project. |
| * Inferred projects are created when user opens a loose file that is not the part of external project |
| * or configured project and will contain only open file and transitive closure of referenced files if 'useOneInferredProject' is false, |
| * or all open loose files and its transitive closure of referenced files if 'useOneInferredProject' is true. |
| */ |
| interface SetCompilerOptionsForInferredProjectsRequest extends Request { |
| command: CommandTypes.CompilerOptionsForInferredProjects; |
| arguments: SetCompilerOptionsForInferredProjectsArgs; |
| } |
| /** |
| * Argument for SetCompilerOptionsForInferredProjectsRequest request. |
| */ |
| interface SetCompilerOptionsForInferredProjectsArgs { |
| /** |
| * Compiler options to be used with inferred projects. |
| */ |
| options: ExternalProjectCompilerOptions; |
| /** |
| * Specifies the project root path used to scope compiler options. |
| * It is an error to provide this property if the server has not been started with |
| * `useInferredProjectPerProjectRoot` enabled. |
| */ |
| projectRootPath?: string; |
| } |
| /** |
| * Response to SetCompilerOptionsForInferredProjectsResponse request. This is just an acknowledgement, so |
| * no body field is required. |
| */ |
| interface SetCompilerOptionsForInferredProjectsResponse extends Response { |
| } |
| /** |
| * Exit request; value of command field is "exit". Ask the server process |
| * to exit. |
| */ |
| interface ExitRequest extends Request { |
| command: CommandTypes.Exit; |
| } |
| /** |
| * Close request; value of command field is "close". Notify the |
| * server that the client has closed a previously open file. If |
| * file is still referenced by open files, the server will resume |
| * monitoring the filesystem for changes to file. Server does not |
| * currently send a response to a close request. |
| */ |
| interface CloseRequest extends FileRequest { |
| command: CommandTypes.Close; |
| } |
| /** |
| * Request to obtain the list of files that should be regenerated if target file is recompiled. |
| * NOTE: this us query-only operation and does not generate any output on disk. |
| */ |
| interface CompileOnSaveAffectedFileListRequest extends FileRequest { |
| command: CommandTypes.CompileOnSaveAffectedFileList; |
| } |
| /** |
| * Contains a list of files that should be regenerated in a project |
| */ |
| interface CompileOnSaveAffectedFileListSingleProject { |
| /** |
| * Project name |
| */ |
| projectFileName: string; |
| /** |
| * List of files names that should be recompiled |
| */ |
| fileNames: string[]; |
| /** |
| * true if project uses outFile or out compiler option |
| */ |
| projectUsesOutFile: boolean; |
| } |
| /** |
| * Response for CompileOnSaveAffectedFileListRequest request; |
| */ |
| interface CompileOnSaveAffectedFileListResponse extends Response { |
| body: CompileOnSaveAffectedFileListSingleProject[]; |
| } |
| /** |
| * Request to recompile the file. All generated outputs (.js, .d.ts or .js.map files) is written on disk. |
| */ |
| interface CompileOnSaveEmitFileRequest extends FileRequest { |
| command: CommandTypes.CompileOnSaveEmitFile; |
| arguments: CompileOnSaveEmitFileRequestArgs; |
| } |
| /** |
| * Arguments for CompileOnSaveEmitFileRequest |
| */ |
| interface CompileOnSaveEmitFileRequestArgs extends FileRequestArgs { |
| /** |
| * if true - then file should be recompiled even if it does not have any changes. |
| */ |
| forced?: boolean; |
| } |
| /** |
| * Quickinfo request; value of command field is |
| * "quickinfo". Return response giving a quick type and |
| * documentation string for the symbol found in file at location |
| * line, col. |
| */ |
| interface QuickInfoRequest extends FileLocationRequest { |
| command: CommandTypes.Quickinfo; |
| } |
| /** |
| * Body of QuickInfoResponse. |
| */ |
| interface QuickInfoResponseBody { |
| /** |
| * The symbol's kind (such as 'className' or 'parameterName' or plain 'text'). |
| */ |
| kind: ScriptElementKind; |
| /** |
| * Optional modifiers for the kind (such as 'public'). |
| */ |
| kindModifiers: string; |
| /** |
| * Starting file location of symbol. |
| */ |
| start: Location; |
| /** |
| * One past last character of symbol. |
| */ |
| end: Location; |
| /** |
| * Type and kind of symbol. |
| */ |
| displayString: string; |
| /** |
| * Documentation associated with symbol. |
| */ |
| documentation: string; |
| /** |
| * JSDoc tags associated with symbol. |
| */ |
| tags: JSDocTagInfo[]; |
| } |
| /** |
| * Quickinfo response message. |
| */ |
| interface QuickInfoResponse extends Response { |
| body?: QuickInfoResponseBody; |
| } |
| /** |
| * Arguments for format messages. |
| */ |
| interface FormatRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Last line of range for which to format text in file. |
| */ |
| endLine: number; |
| /** |
| * Character offset on last line of range for which to format text in file. |
| */ |
| endOffset: number; |
| /** |
| * Format options to be used. |
| */ |
| options?: FormatCodeSettings; |
| } |
| /** |
| * Format request; value of command field is "format". Return |
| * response giving zero or more edit instructions. The edit |
| * instructions will be sorted in file order. Applying the edit |
| * instructions in reverse to file will result in correctly |
| * reformatted text. |
| */ |
| interface FormatRequest extends FileLocationRequest { |
| command: CommandTypes.Format; |
| arguments: FormatRequestArgs; |
| } |
| /** |
| * Object found in response messages defining an editing |
| * instruction for a span of text in source code. The effect of |
| * this instruction is to replace the text starting at start and |
| * ending one character before end with newText. For an insertion, |
| * the text span is empty. For a deletion, newText is empty. |
| */ |
| interface CodeEdit { |
| /** |
| * First character of the text span to edit. |
| */ |
| start: Location; |
| /** |
| * One character past last character of the text span to edit. |
| */ |
| end: Location; |
| /** |
| * Replace the span defined above with this string (may be |
| * the empty string). |
| */ |
| newText: string; |
| } |
| interface FileCodeEdits { |
| fileName: string; |
| textChanges: CodeEdit[]; |
| } |
| interface CodeFixResponse extends Response { |
| /** The code actions that are available */ |
| body?: CodeFixAction[]; |
| } |
| interface CodeAction { |
| /** Description of the code action to display in the UI of the editor */ |
| description: string; |
| /** Text changes to apply to each file as part of the code action */ |
| changes: FileCodeEdits[]; |
| /** A command is an opaque object that should be passed to `ApplyCodeActionCommandRequestArgs` without modification. */ |
| commands?: {}[]; |
| } |
| interface CombinedCodeActions { |
| changes: ReadonlyArray<FileCodeEdits>; |
| commands?: ReadonlyArray<{}>; |
| } |
| interface CodeFixAction extends CodeAction { |
| /** Short name to identify the fix, for use by telemetry. */ |
| fixName: string; |
| /** |
| * If present, one may call 'getCombinedCodeFix' with this fixId. |
| * This may be omitted to indicate that the code fix can't be applied in a group. |
| */ |
| fixId?: {}; |
| /** Should be present if and only if 'fixId' is. */ |
| fixAllDescription?: string; |
| } |
| /** |
| * Format and format on key response message. |
| */ |
| interface FormatResponse extends Response { |
| body?: CodeEdit[]; |
| } |
| /** |
| * Arguments for format on key messages. |
| */ |
| interface FormatOnKeyRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Key pressed (';', '\n', or '}'). |
| */ |
| key: string; |
| options?: FormatCodeSettings; |
| } |
| /** |
| * Format on key request; value of command field is |
| * "formatonkey". Given file location and key typed (as string), |
| * return response giving zero or more edit instructions. The |
| * edit instructions will be sorted in file order. Applying the |
| * edit instructions in reverse to file will result in correctly |
| * reformatted text. |
| */ |
| interface FormatOnKeyRequest extends FileLocationRequest { |
| command: CommandTypes.Formatonkey; |
| arguments: FormatOnKeyRequestArgs; |
| } |
| type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<"; |
| /** |
| * Arguments for completions messages. |
| */ |
| interface CompletionsRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Optional prefix to apply to possible completions. |
| */ |
| prefix?: string; |
| /** |
| * Character that was responsible for triggering completion. |
| * Should be `undefined` if a user manually requested completion. |
| */ |
| triggerCharacter?: CompletionsTriggerCharacter; |
| /** |
| * @deprecated Use UserPreferences.includeCompletionsForModuleExports |
| */ |
| includeExternalModuleExports?: boolean; |
| /** |
| * @deprecated Use UserPreferences.includeCompletionsWithInsertText |
| */ |
| includeInsertTextCompletions?: boolean; |
| } |
| /** |
| * Completions request; value of command field is "completions". |
| * Given a file location (file, line, col) and a prefix (which may |
| * be the empty string), return the possible completions that |
| * begin with prefix. |
| */ |
| interface CompletionsRequest extends FileLocationRequest { |
| command: CommandTypes.Completions | CommandTypes.CompletionInfo; |
| arguments: CompletionsRequestArgs; |
| } |
| /** |
| * Arguments for completion details request. |
| */ |
| interface CompletionDetailsRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Names of one or more entries for which to obtain details. |
| */ |
| entryNames: (string | CompletionEntryIdentifier)[]; |
| } |
| interface CompletionEntryIdentifier { |
| name: string; |
| source?: string; |
| } |
| /** |
| * Completion entry details request; value of command field is |
| * "completionEntryDetails". Given a file location (file, line, |
| * col) and an array of completion entry names return more |
| * detailed information for each completion entry. |
| */ |
| interface CompletionDetailsRequest extends FileLocationRequest { |
| command: CommandTypes.CompletionDetails; |
| arguments: CompletionDetailsRequestArgs; |
| } |
| /** |
| * Part of a symbol description. |
| */ |
| interface SymbolDisplayPart { |
| /** |
| * Text of an item describing the symbol. |
| */ |
| text: string; |
| /** |
| * The symbol's kind (such as 'className' or 'parameterName' or plain 'text'). |
| */ |
| kind: string; |
| } |
| /** |
| * An item found in a completion response. |
| */ |
| interface CompletionEntry { |
| /** |
| * The symbol's name. |
| */ |
| name: string; |
| /** |
| * The symbol's kind (such as 'className' or 'parameterName'). |
| */ |
| kind: ScriptElementKind; |
| /** |
| * Optional modifiers for the kind (such as 'public'). |
| */ |
| kindModifiers?: string; |
| /** |
| * A string that is used for comparing completion items so that they can be ordered. This |
| * is often the same as the name but may be different in certain circumstances. |
| */ |
| sortText: string; |
| /** |
| * Text to insert instead of `name`. |
| * This is used to support bracketed completions; If `name` might be "a-b" but `insertText` would be `["a-b"]`, |
| * coupled with `replacementSpan` to replace a dotted access with a bracket access. |
| */ |
| insertText?: string; |
| /** |
| * An optional span that indicates the text to be replaced by this completion item. |
| * If present, this span should be used instead of the default one. |
| * It will be set if the required span differs from the one generated by the default replacement behavior. |
| */ |
| replacementSpan?: TextSpan; |
| /** |
| * Indicates whether commiting this completion entry will require additional code actions to be |
| * made to avoid errors. The CompletionEntryDetails will have these actions. |
| */ |
| hasAction?: true; |
| /** |
| * Identifier (not necessarily human-readable) identifying where this completion came from. |
| */ |
| source?: string; |
| /** |
| * If true, this completion should be highlighted as recommended. There will only be one of these. |
| * This will be set when we know the user should write an expression with a certain type and that type is an enum or constructable class. |
| * Then either that enum/class or a namespace containing it will be the recommended symbol. |
| */ |
| isRecommended?: true; |
| } |
| /** |
| * Additional completion entry details, available on demand |
| */ |
| interface CompletionEntryDetails { |
| /** |
| * The symbol's name. |
| */ |
| name: string; |
| /** |
| * The symbol's kind (such as 'className' or 'parameterName'). |
| */ |
| kind: ScriptElementKind; |
| /** |
| * Optional modifiers for the kind (such as 'public'). |
| */ |
| kindModifiers: string; |
| /** |
| * Display parts of the symbol (similar to quick info). |
| */ |
| displayParts: SymbolDisplayPart[]; |
| /** |
| * Documentation strings for the symbol. |
| */ |
| documentation?: SymbolDisplayPart[]; |
| /** |
| * JSDoc tags for the symbol. |
| */ |
| tags?: JSDocTagInfo[]; |
| /** |
| * The associated code actions for this entry |
| */ |
| codeActions?: CodeAction[]; |
| /** |
| * Human-readable description of the `source` from the CompletionEntry. |
| */ |
| source?: SymbolDisplayPart[]; |
| } |
| /** @deprecated Prefer CompletionInfoResponse, which supports several top-level fields in addition to the array of entries. */ |
| interface CompletionsResponse extends Response { |
| body?: CompletionEntry[]; |
| } |
| interface CompletionInfoResponse extends Response { |
| body?: CompletionInfo; |
| } |
| interface CompletionInfo { |
| readonly isGlobalCompletion: boolean; |
| readonly isMemberCompletion: boolean; |
| readonly isNewIdentifierLocation: boolean; |
| readonly entries: ReadonlyArray<CompletionEntry>; |
| } |
| interface CompletionDetailsResponse extends Response { |
| body?: CompletionEntryDetails[]; |
| } |
| /** |
| * Signature help information for a single parameter |
| */ |
| interface SignatureHelpParameter { |
| /** |
| * The parameter's name |
| */ |
| name: string; |
| /** |
| * Documentation of the parameter. |
| */ |
| documentation: SymbolDisplayPart[]; |
| /** |
| * Display parts of the parameter. |
| */ |
| displayParts: SymbolDisplayPart[]; |
| /** |
| * Whether the parameter is optional or not. |
| */ |
| isOptional: boolean; |
| } |
| /** |
| * Represents a single signature to show in signature help. |
| */ |
| interface SignatureHelpItem { |
| /** |
| * Whether the signature accepts a variable number of arguments. |
| */ |
| isVariadic: boolean; |
| /** |
| * The prefix display parts. |
| */ |
| prefixDisplayParts: SymbolDisplayPart[]; |
| /** |
| * The suffix display parts. |
| */ |
| suffixDisplayParts: SymbolDisplayPart[]; |
| /** |
| * The separator display parts. |
| */ |
| separatorDisplayParts: SymbolDisplayPart[]; |
| /** |
| * The signature helps items for the parameters. |
| */ |
| parameters: SignatureHelpParameter[]; |
| /** |
| * The signature's documentation |
| */ |
| documentation: SymbolDisplayPart[]; |
| /** |
| * The signature's JSDoc tags |
| */ |
| tags: JSDocTagInfo[]; |
| } |
| /** |
| * Signature help items found in the response of a signature help request. |
| */ |
| interface SignatureHelpItems { |
| /** |
| * The signature help items. |
| */ |
| items: SignatureHelpItem[]; |
| /** |
| * The span for which signature help should appear on a signature |
| */ |
| applicableSpan: TextSpan; |
| /** |
| * The item selected in the set of available help items. |
| */ |
| selectedItemIndex: number; |
| /** |
| * The argument selected in the set of parameters. |
| */ |
| argumentIndex: number; |
| /** |
| * The argument count |
| */ |
| argumentCount: number; |
| } |
| type SignatureHelpTriggerCharacter = "," | "(" | "<"; |
| type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; |
| /** |
| * Arguments of a signature help request. |
| */ |
| interface SignatureHelpRequestArgs extends FileLocationRequestArgs { |
| /** |
| * Reason why signature help was invoked. |
| * See each individual possible |
| */ |
| triggerReason?: SignatureHelpTriggerReason; |
| } |
| type SignatureHelpTriggerReason = SignatureHelpInvokedReason | SignatureHelpCharacterTypedReason | SignatureHelpRetriggeredReason; |
| /** |
| * Signals that the user manually requested signature help. |
| * The language service will unconditionally attempt to provide a result. |
| */ |
| interface SignatureHelpInvokedReason { |
| kind: "invoked"; |
| triggerCharacter?: undefined; |
| } |
| /** |
| * Signals that the signature help request came from a user typing a character. |
| * Depending on the character and the syntactic context, the request may or may not be served a result. |
| */ |
| interface SignatureHelpCharacterTypedReason { |
| kind: "characterTyped"; |
| /** |
| * Character that was responsible for triggering signature help. |
| */ |
| triggerCharacter: SignatureHelpTriggerCharacter; |
| } |
| /** |
| * Signals that this signature help request came from typing a character or moving the cursor. |
| * This should only occur if a signature help session was already active and the editor needs to see if it should adjust. |
| * The language service will unconditionally attempt to provide a result. |
| * `triggerCharacter` can be `undefined` for a retrigger caused by a cursor move. |
| */ |
| interface SignatureHelpRetriggeredReason { |
| kind: "retrigger"; |
| /** |
| * Character that was responsible for triggering signature help. |
| */ |
| triggerCharacter?: SignatureHelpRetriggerCharacter; |
| } |
| /** |
| * Signature help request; value of command field is "signatureHelp". |
| * Given a file location (file, line, col), return the signature |
| * help. |
| */ |
| interface SignatureHelpRequest extends FileLocationRequest { |
| command: CommandTypes.SignatureHelp; |
| arguments: SignatureHelpRequestArgs; |
| } |
| /** |
| * Response object for a SignatureHelpRequest. |
| */ |
| interface SignatureHelpResponse extends Response { |
| body?: SignatureHelpItems; |
| } |
| /** |
| * Synchronous request for semantic diagnostics of one file. |
| */ |
| interface SemanticDiagnosticsSyncRequest extends FileRequest { |
| command: CommandTypes.SemanticDiagnosticsSync; |
| arguments: SemanticDiagnosticsSyncRequestArgs; |
| } |
| interface SemanticDiagnosticsSyncRequestArgs extends FileRequestArgs { |
| includeLinePosition?: boolean; |
| } |
| /** |
| * Response object for synchronous sematic diagnostics request. |
| */ |
| interface SemanticDiagnosticsSyncResponse extends Response { |
| body?: Diagnostic[] | DiagnosticWithLinePosition[]; |
| } |
| interface SuggestionDiagnosticsSyncRequest extends FileRequest { |
| command: CommandTypes.SuggestionDiagnosticsSync; |
| arguments: SuggestionDiagnosticsSyncRequestArgs; |
| } |
| type SuggestionDiagnosticsSyncRequestArgs = SemanticDiagnosticsSyncRequestArgs; |
| type SuggestionDiagnosticsSyncResponse = SemanticDiagnosticsSyncResponse; |
| /** |
| * Synchronous request for syntactic diagnostics of one file. |
| */ |
| interface SyntacticDiagnosticsSyncRequest extends FileRequest { |
| command: CommandTypes.SyntacticDiagnosticsSync; |
| arguments: SyntacticDiagnosticsSyncRequestArgs; |
| } |
| interface SyntacticDiagnosticsSyncRequestArgs extends FileRequestArgs { |
| includeLinePosition?: boolean; |
| } |
| /** |
| * Response object for synchronous syntactic diagnostics request. |
| */ |
| interface SyntacticDiagnosticsSyncResponse extends Response { |
| body?: Diagnostic[] | DiagnosticWithLinePosition[]; |
| } |
| /** |
| * Arguments for GeterrForProject request. |
| */ |
| interface GeterrForProjectRequestArgs { |
| /** |
| * the file requesting project error list |
| */ |
| file: string; |
| /** |
| * Delay in milliseconds to wait before starting to compute |
| * errors for the files in the file list |
| */ |
| delay: number; |
| } |
| /** |
| * GeterrForProjectRequest request; value of command field is |
| * "geterrForProject". It works similarly with 'Geterr', only |
| * it request for every file in this project. |
| */ |
| interface GeterrForProjectRequest extends Request { |
| command: CommandTypes.GeterrForProject; |
| arguments: GeterrForProjectRequestArgs; |
| } |
| /** |
| * Arguments for geterr messages. |
| */ |
| interface GeterrRequestArgs { |
| /** |
| * List of file names for which to compute compiler errors. |
| * The files will be checked in list order. |
| */ |
| files: string[]; |
| /** |
| * Delay in milliseconds to wait before starting to compute |
| * errors for the files in the file list |
| */ |
| delay: number; |
| } |
| /** |
| * Geterr request; value of command field is "geterr". Wait for |
| * delay milliseconds and then, if during the wait no change or |
| * reload messages have arrived for the first file in the files |
| * list, get the syntactic errors for the file, field requests, |
| * and then get the semantic errors for the file. Repeat with a |
| * smaller delay for each subsequent file on the files list. Best |
| * practice for an editor is to send a file list containing each |
| * file that is currently visible, in most-recently-used order. |
| */ |
| interface GeterrRequest extends Request { |
| command: CommandTypes.Geterr; |
| arguments: GeterrRequestArgs; |
| } |
| type RequestCompletedEventName = "requestCompleted"; |
| /** |
| * Event that is sent when server have finished processing request with specified id. |
| */ |
| interface RequestCompletedEvent extends Event { |
| event: RequestCompletedEventName; |
| body: RequestCompletedEventBody; |
| } |
| interface RequestCompletedEventBody { |
| request_seq: number; |
| } |
| /** |
| * Item of diagnostic information found in a DiagnosticEvent message. |
| */ |
| interface Diagnostic { |
| /** |
| * Starting file location at which text applies. |
| */ |
| start: Location; |
| /** |
| * The last file location at which the text applies. |
| */ |
| end: Location; |
| /** |
| * Text of diagnostic message. |
| */ |
| text: string; |
| /** |
| * The category of the diagnostic message, e.g. "error", "warning", or "suggestion". |
| */ |
| category: string; |
| reportsUnnecessary?: {}; |
| /** |
| * Any related spans the diagnostic may have, such as other locations relevant to an error, such as declarartion sites |
| */ |
| relatedInformation?: DiagnosticRelatedInformation[]; |
| /** |
| * The error code of the diagnostic message. |
| */ |
| code?: number; |
| /** |
| * The name of the plugin reporting the message. |
| */ |
| source?: string; |
| } |
| interface DiagnosticWithFileName extends Diagnostic { |
| /** |
| * Name of the file the diagnostic is in |
| */ |
| fileName: string; |
| } |
| /** |
| * Represents additional spans returned with a diagnostic which are relevant to it |
| */ |
| interface DiagnosticRelatedInformation { |
| /** |
| * The category of the related information message, e.g. "error", "warning", or "suggestion". |
| */ |
| category: string; |
| /** |
| * The code used ot identify the related information |
| */ |
| code: number; |
| /** |
| * Text of related or additional information. |
| */ |
| message: string; |
| /** |
| * Associated location |
| */ |
| span?: FileSpan; |
| } |
| interface DiagnosticEventBody { |
| /** |
| * The file for which diagnostic information is reported. |
| */ |
| file: string; |
| /** |
| * An array of diagnostic information items. |
| */ |
| diagnostics: Diagnostic[]; |
| } |
| type DiagnosticEventKind = "semanticDiag" | "syntaxDiag" | "suggestionDiag"; |
| /** |
| * Event message for DiagnosticEventKind event types. |
| * These events provide syntactic and semantic errors for a file. |
| */ |
| interface DiagnosticEvent extends Event { |
| body?: DiagnosticEventBody; |
| event: DiagnosticEventKind; |
| } |
| interface ConfigFileDiagnosticEventBody { |
| /** |
| * The file which trigged the searching and error-checking of the config file |
| */ |
| triggerFile: string; |
| /** |
| * The name of the found config file. |
| */ |
| configFile: string; |
| /** |
| * An arry of diagnostic information items for the found config file. |
| */ |
| diagnostics: DiagnosticWithFileName[]; |
| } |
| /** |
| * Event message for "configFileDiag" event type. |
| * This event provides errors for a found config file. |
| */ |
| interface ConfigFileDiagnosticEvent extends Event { |
| body?: ConfigFileDiagnosticEventBody; |
| event: "configFileDiag"; |
| } |
| type ProjectLanguageServiceStateEventName = "projectLanguageServiceState"; |
| interface ProjectLanguageServiceStateEvent extends Event { |
| event: ProjectLanguageServiceStateEventName; |
| body?: ProjectLanguageServiceStateEventBody; |
| } |
| interface ProjectLanguageServiceStateEventBody { |
| /** |
| * Project name that has changes in the state of language service. |
| * For configured projects this will be the config file path. |
| * For external projects this will be the name of the projects specified when project was open. |
| * For inferred projects this event is not raised. |
| */ |
| projectName: string; |
| /** |
| * True if language service state switched from disabled to enabled |
| * and false otherwise. |
| */ |
| languageServiceEnabled: boolean; |
| } |
| type ProjectsUpdatedInBackgroundEventName = "projectsUpdatedInBackground"; |
| interface ProjectsUpdatedInBackgroundEvent extends Event { |
| event: ProjectsUpdatedInBackgroundEventName; |
| body: ProjectsUpdatedInBackgroundEventBody; |
| } |
| interface ProjectsUpdatedInBackgroundEventBody { |
| /** |
| * Current set of open files |
| */ |
| openFiles: string[]; |
| } |
| type ProjectLoadingStartEventName = "projectLoadingStart"; |
| interface ProjectLoadingStartEvent extends Event { |
| event: ProjectLoadingStartEventName; |
| body: ProjectLoadingStartEventBody; |
| } |
| interface ProjectLoadingStartEventBody { |
| /** name of the project */ |
| projectName: string; |
| /** reason for loading */ |
| reason: string; |
| } |
| type ProjectLoadingFinishEventName = "projectLoadingFinish"; |
| interface ProjectLoadingFinishEvent extends Event { |
| event: ProjectLoadingFinishEventName; |
| body: ProjectLoadingFinishEventBody; |
| } |
| interface ProjectLoadingFinishEventBody { |
| /** name of the project */ |
| projectName: string; |
| } |
| type SurveyReadyEventName = "surveyReady"; |
| interface SurveyReadyEvent extends Event { |
| event: SurveyReadyEventName; |
| body: SurveyReadyEventBody; |
| } |
| interface SurveyReadyEventBody { |
| /** Name of the survey. This is an internal machine- and programmer-friendly name */ |
| surveyId: string; |
| } |
| type LargeFileReferencedEventName = "largeFileReferenced"; |
| interface LargeFileReferencedEvent extends Event { |
| event: LargeFileReferencedEventName; |
| body: LargeFileReferencedEventBody; |
| } |
| interface LargeFileReferencedEventBody { |
| /** |
| * name of the large file being loaded |
| */ |
| file: string; |
| /** |
| * size of the file |
| */ |
| fileSize: number; |
| /** |
| * max file size allowed on the server |
| */ |
| maxFileSize: number; |
| } |
| /** |
| * Arguments for reload request. |
| */ |
| interface ReloadRequestArgs extends FileRequestArgs { |
| /** |
| * Name of temporary file from which to reload file |
| * contents. May be same as file. |
| */ |
| tmpfile: string; |
| } |
| /** |
| * Reload request message; value of command field is "reload". |
| * Reload contents of file with name given by the 'file' argument |
| * from temporary file with name given by the 'tmpfile' argument. |
| * The two names can be identical. |
| */ |
| interface ReloadRequest extends FileRequest { |
| command: CommandTypes.Reload; |
| arguments: ReloadRequestArgs; |
| } |
| /** |
| * Response to "reload" request. This is just an acknowledgement, so |
| * no body field is required. |
| */ |
| interface ReloadResponse extends Response { |
| } |
| /** |
| * Arguments for saveto request. |
| */ |
| interface SavetoRequestArgs extends FileRequestArgs { |
| /** |
| * Name of temporary file into which to save server's view of |
| * file contents. |
| */ |
| tmpfile: string; |
| } |
| /** |
| * Saveto request message; value of command field is "saveto". |
| * For debugging purposes, save to a temporaryfile (named by |
| * argument 'tmpfile') the contents of file named by argument |
| * 'file'. The server does not currently send a response to a |
| * "saveto" request. |
| */ |
| interface SavetoRequest extends FileRequest { |
| command: CommandTypes.Saveto; |
| arguments: SavetoRequestArgs; |
| } |
| /** |
| * Arguments for navto request message. |
| */ |
| interface NavtoRequestArgs extends FileRequestArgs { |
| /** |
| * Search term to navigate to from current location; term can |
| * be '.*' or an identifier prefix. |
| */ |
| searchValue: string; |
| /** |
| * Optional limit on the number of items to return. |
| */ |
| maxResultCount?: number; |
| /** |
| * Optional flag to indicate we want results for just the current file |
| * or the entire project. |
| */ |
| currentFileOnly?: boolean; |
| projectFileName?: string; |
| } |
| /** |
| * Navto request message; value of command field is "navto". |
| * Return list of objects giving file locations and symbols that |
| * match the search term given in argument 'searchTerm'. The |
| * context for the search is given by the named file. |
| */ |
| interface NavtoRequest extends FileRequest { |
| command: CommandTypes.Navto; |
| arguments: NavtoRequestArgs; |
| } |
| /** |
| * An item found in a navto response. |
| */ |
| interface NavtoItem extends FileSpan { |
| /** |
| * The symbol's name. |
| */ |
| name: string; |
| /** |
| * The symbol's kind (such as 'className' or 'parameterName'). |
| */ |
| kind: ScriptElementKind; |
| /** |
| * exact, substring, or prefix. |
| */ |
| matchKind: string; |
| /** |
| * If this was a case sensitive or insensitive match. |
| */ |
| isCaseSensitive: boolean; |
| /** |
| * Optional modifiers for the kind (such as 'public'). |
| */ |
| kindModifiers?: string; |
| /** |
| * Name of symbol's container symbol (if any); for example, |
| * the class name if symbol is a class member. |
| */ |
| containerName?: string; |
| /** |
| * Kind of symbol's container symbol (if any). |
| */ |
| containerKind?: ScriptElementKind; |
| } |
| /** |
| * Navto response message. Body is an array of navto items. Each |
| * item gives a symbol that matched the search term. |
| */ |
| interface NavtoResponse extends Response { |
| body?: NavtoItem[]; |
| } |
| /** |
| * Arguments for change request message. |
| */ |
| interface ChangeRequestArgs extends FormatRequestArgs { |
| /** |
| * Optional string to insert at location (file, line, offset). |
| */ |
| insertString?: string; |
| } |
| /** |
| * Change request message; value of command field is "change". |
| * Update the server's view of the file named by argument 'file'. |
| * Server does not currently send a response to a change request. |
| */ |
| interface ChangeRequest extends FileLocationRequest { |
| command: CommandTypes.Change; |
| arguments: ChangeRequestArgs; |
| } |
| /** |
| * Response to "brace" request. |
| */ |
| interface BraceResponse extends Response { |
| body?: TextSpan[]; |
| } |
| /** |
| * Brace matching request; value of command field is "brace". |
| * Return response giving the file locations of matching braces |
| * found in file at location line, offset. |
| */ |
| interface BraceRequest extends FileLocationRequest { |
| command: CommandTypes.Brace; |
| } |
| /** |
| * NavBar items request; value of command field is "navbar". |
| * Return response giving the list of navigation bar entries |
| * extracted from the requested file. |
| */ |
| interface NavBarRequest extends FileRequest { |
| command: CommandTypes.NavBar; |
| } |
| /** |
| * NavTree request; value of command field is "navtree". |
| * Return response giving the navigation tree of the requested file. |
| */ |
| interface NavTreeRequest extends FileRequest { |
| command: CommandTypes.NavTree; |
| } |
| interface NavigationBarItem { |
| /** |
| * The item's display text. |
| */ |
| text: string; |
| /** |
| * The symbol's kind (such as 'className' or 'parameterName'). |
| */ |
| kind: ScriptElementKind; |
| /** |
| * Optional modifiers for the kind (such as 'public'). |
| */ |
| kindModifiers?: string; |
| /** |
| * The definition locations of the item. |
| */ |
| spans: TextSpan[]; |
| /** |
| * Optional children. |
| */ |
| childItems?: NavigationBarItem[]; |
| /** |
| * Number of levels deep this item should appear. |
| */ |
| indent: number; |
| } |
| /** protocol.NavigationTree is identical to ts.NavigationTree, except using protocol.TextSpan instead of ts.TextSpan */ |
| interface NavigationTree { |
| text: string; |
| kind: ScriptElementKind; |
| kindModifiers: string; |
| spans: TextSpan[]; |
| nameSpan: TextSpan | undefined; |
| childItems?: NavigationTree[]; |
| } |
| type TelemetryEventName = "telemetry"; |
| interface TelemetryEvent extends Event { |
| event: TelemetryEventName; |
| body: TelemetryEventBody; |
| } |
| interface TelemetryEventBody { |
| telemetryEventName: string; |
| payload: any; |
| } |
| type TypesInstallerInitializationFailedEventName = "typesInstallerInitializationFailed"; |
| interface TypesInstallerInitializationFailedEvent extends Event { |
| event: TypesInstallerInitializationFailedEventName; |
| body: TypesInstallerInitializationFailedEventBody; |
| } |
| interface TypesInstallerInitializationFailedEventBody { |
| message: string; |
| } |
| type TypingsInstalledTelemetryEventName = "typingsInstalled"; |
| interface TypingsInstalledTelemetryEventBody extends TelemetryEventBody { |
| telemetryEventName: TypingsInstalledTelemetryEventName; |
| payload: TypingsInstalledTelemetryEventPayload; |
| } |
| interface TypingsInstalledTelemetryEventPayload { |
| /** |
| * Comma separated list of installed typing packages |
| */ |
| installedPackages: string; |
| /** |
| * true if install request succeeded, otherwise - false |
| */ |
| installSuccess: boolean; |
| /** |
| * version of typings installer |
| */ |
| typingsInstallerVersion: string; |
| } |
| type BeginInstallTypesEventName = "beginInstallTypes"; |
| type EndInstallTypesEventName = "endInstallTypes"; |
| interface BeginInstallTypesEvent extends Event { |
| event: BeginInstallTypesEventName; |
| body: BeginInstallTypesEventBody; |
| } |
| interface EndInstallTypesEvent extends Event { |
| event: EndInstallTypesEventName; |
| body: EndInstallTypesEventBody; |
| } |
| interface InstallTypesEventBody { |
| /** |
| * correlation id to match begin and end events |
| */ |
| eventId: number; |
| /** |
| * list of packages to install |
| */ |
| packages: ReadonlyArray<string>; |
| } |
| interface BeginInstallTypesEventBody extends InstallTypesEventBody { |
| } |
| interface EndInstallTypesEventBody extends InstallTypesEventBody { |
| /** |
| * true if installation succeeded, otherwise false |
| */ |
| success: boolean; |
| } |
| interface NavBarResponse extends Response { |
| body?: NavigationBarItem[]; |
| } |
| interface NavTreeResponse extends Response { |
| body?: NavigationTree; |
| } |
| enum IndentStyle { |
| None = "None", |
| Block = "Block", |
| Smart = "Smart" |
| } |
| interface EditorSettings { |
| baseIndentSize?: number; |
| indentSize?: number; |
| tabSize?: number; |
| newLineCharacter?: string; |
| convertTabsToSpaces?: boolean; |
| indentStyle?: IndentStyle | ts.IndentStyle; |
| } |
| interface FormatCodeSettings extends EditorSettings { |
| insertSpaceAfterCommaDelimiter?: boolean; |
| insertSpaceAfterSemicolonInForStatements?: boolean; |
| insertSpaceBeforeAndAfterBinaryOperators?: boolean; |
| insertSpaceAfterConstructor?: boolean; |
| insertSpaceAfterKeywordsInControlFlowStatements?: boolean; |
| insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; |
| insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; |
| insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; |
| insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; |
| insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; |
| insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; |
| insertSpaceAfterTypeAssertion?: boolean; |
| insertSpaceBeforeFunctionParenthesis?: boolean; |
| placeOpenBraceOnNewLineForFunctions?: boolean; |
| placeOpenBraceOnNewLineForControlBlocks?: boolean; |
| insertSpaceBeforeTypeAnnotation?: boolean; |
| } |
| interface UserPreferences { |
| readonly disableSuggestions?: boolean; |
| readonly quotePreference?: "auto" | "double" | "single"; |
| /** |
| * If enabled, TypeScript will search through all external modules' exports and add them to the completions list. |
| * This affects lone identifier completions but not completions on the right hand side of `obj.`. |
| */ |
| readonly includeCompletionsForModuleExports?: boolean; |
| /** |
| * If enabled, the completion list will include completions with invalid identifier names. |
| * For those entries, The `insertText` and `replacementSpan` properties will be set to change from `.x` property access to `["x"]`. |
| */ |
| readonly includeCompletionsWithInsertText?: boolean; |
| readonly importModuleSpecifierPreference?: "relative" | "non-relative"; |
| readonly allowTextChangesInNewFiles?: boolean; |
| readonly lazyConfiguredProjectsFromExternalProject?: boolean; |
| readonly providePrefixAndSuffixTextForRename?: boolean; |
| readonly allowRenameOfImportPath?: boolean; |
| } |
| interface CompilerOptions { |
| allowJs?: boolean; |
| allowSyntheticDefaultImports?: boolean; |
| allowUnreachableCode?: boolean; |
| allowUnusedLabels?: boolean; |
| alwaysStrict?: boolean; |
| baseUrl?: string; |
| charset?: string; |
| checkJs?: boolean; |
| declaration?: boolean; |
| declarationDir?: string; |
| disableSizeLimit?: boolean; |
| downlevelIteration?: boolean; |
| emitBOM?: boolean; |
| emitDecoratorMetadata?: boolean; |
| experimentalDecorators?: boolean; |
| forceConsistentCasingInFileNames?: boolean; |
| importHelpers?: boolean; |
| inlineSourceMap?: boolean; |
| inlineSources?: boolean; |
| isolatedModules?: boolean; |
| jsx?: JsxEmit | ts.JsxEmit; |
| lib?: string[]; |
| locale?: string; |
| mapRoot?: string; |
| maxNodeModuleJsDepth?: number; |
| module?: ModuleKind | ts.ModuleKind; |
| moduleResolution?: ModuleResolutionKind | ts.ModuleResolutionKind; |
| newLine?: NewLineKind | ts.NewLineKind; |
| noEmit?: boolean; |
| noEmitHelpers?: boolean; |
| noEmitOnError?: boolean; |
| noErrorTruncation?: boolean; |
| noFallthroughCasesInSwitch?: boolean; |
| noImplicitAny?: boolean; |
| noImplicitReturns?: boolean; |
| noImplicitThis?: boolean; |
| noUnusedLocals?: boolean; |
| noUnusedParameters?: boolean; |
| noImplicitUseStrict?: boolean; |
| noLib?: boolean; |
| noResolve?: boolean; |
| out?: string; |
| outDir?: string; |
| outFile?: string; |
| paths?: MapLike<string[]>; |
| plugins?: PluginImport[]; |
| preserveConstEnums?: boolean; |
| preserveSymlinks?: boolean; |
| project?: string; |
| reactNamespace?: string; |
| removeComments?: boolean; |
| references?: ProjectReference[]; |
| rootDir?: string; |
| rootDirs?: string[]; |
| skipLibCheck?: boolean; |
| skipDefaultLibCheck?: boolean; |
| sourceMap?: boolean; |
| sourceRoot?: string; |
| strict?: boolean; |
| strictNullChecks?: boolean; |
| suppressExcessPropertyErrors?: boolean; |
| suppressImplicitAnyIndexErrors?: boolean; |
| target?: ScriptTarget | ts.ScriptTarget; |
| traceResolution?: boolean; |
| resolveJsonModule?: boolean; |
| types?: string[]; |
| /** Paths used to used to compute primary types search locations */ |
| typeRoots?: string[]; |
| [option: string]: CompilerOptionsValue | undefined; |
| } |
| enum JsxEmit { |
| None = "None", |
| Preserve = "Preserve", |
| ReactNative = "ReactNative", |
| React = "React" |
| } |
| enum ModuleKind { |
| None = "None", |
| CommonJS = "CommonJS", |
| AMD = "AMD", |
| UMD = "UMD", |
| System = "System", |
| ES6 = "ES6", |
| ES2015 = "ES2015", |
| ESNext = "ESNext" |
| } |
| enum ModuleResolutionKind { |
| Classic = "Classic", |
| Node = "Node" |
| } |
| enum NewLineKind { |
| Crlf = "Crlf", |
| Lf = "Lf" |
| } |
| enum ScriptTarget { |
| ES3 = "ES3", |
| ES5 = "ES5", |
| ES6 = "ES6", |
| ES2015 = "ES2015", |
| ES2016 = "ES2016", |
| ES2017 = "ES2017", |
| ES2018 = "ES2018", |
| ES2019 = "ES2019", |
| ES2020 = "ES2020", |
| ESNext = "ESNext" |
| } |
| } |
| declare namespace ts.server { |
| interface ScriptInfoVersion { |
| svc: number; |
| text: number; |
| } |
| class ScriptInfo { |
| private readonly host; |
| readonly fileName: NormalizedPath; |
| readonly scriptKind: ScriptKind; |
| readonly hasMixedContent: boolean; |
| readonly path: Path; |
| /** |
| * All projects that include this file |
| */ |
| readonly containingProjects: Project[]; |
| private formatSettings; |
| private preferences; |
| private textStorage; |
| constructor(host: ServerHost, fileName: NormalizedPath, scriptKind: ScriptKind, hasMixedContent: boolean, path: Path, initialVersion?: ScriptInfoVersion); |
| isScriptOpen(): boolean; |
| open(newText: string): void; |
| close(fileExists?: boolean): void; |
| getSnapshot(): IScriptSnapshot; |
| private ensureRealPath; |
| getFormatCodeSettings(): FormatCodeSettings | undefined; |
| getPreferences(): protocol.UserPreferences | undefined; |
| attachToProject(project: Project): boolean; |
| isAttached(project: Project): boolean; |
| detachFromProject(project: Project): void; |
| detachAllProjects(): void; |
| getDefaultProject(): Project; |
| registerFileUpdate(): void; |
| setOptions(formatSettings: FormatCodeSettings, preferences: protocol.UserPreferences | undefined): void; |
| getLatestVersion(): string; |
| saveTo(fileName: string): void; |
| reloadFromFile(tempFileName?: NormalizedPath): boolean; |
| editContent(start: number, end: number, newText: string): void; |
| markContainingProjectsAsDirty(): void; |
| isOrphan(): boolean; |
| /** |
| * @param line 1 based index |
| */ |
| lineToTextSpan(line: number): TextSpan; |
| /** |
| * @param line 1 based index |
| * @param offset 1 based index |
| */ |
| lineOffsetToPosition(line: number, offset: number): number; |
| positionToLineOffset(position: number): protocol.Location; |
| isJavaScript(): boolean; |
| } |
| } |
| declare namespace ts.server { |
| interface InstallPackageOptionsWithProject extends InstallPackageOptions { |
| projectName: string; |
| projectRootPath: Path; |
| } |
| interface ITypingsInstaller { |
| isKnownTypesPackageName(name: string): boolean; |
| installPackage(options: InstallPackageOptionsWithProject): Promise<ApplyCodeActionCommandResult>; |
| enqueueInstallTypingsRequest(p: Project, typeAcquisition: TypeAcquisition, unresolvedImports: SortedReadonlyArray<string> | undefined): void; |
| attach(projectService: ProjectService): void; |
| onProjectClosed(p: Project): void; |
| readonly globalTypingsCacheLocation: string | undefined; |
| } |
| const nullTypingsInstaller: ITypingsInstaller; |
| } |
| declare namespace ts.server { |
| enum ProjectKind { |
| Inferred = 0, |
| Configured = 1, |
| External = 2 |
| } |
| function allRootFilesAreJsOrDts(project: Project): boolean; |
| function allFilesAreJsOrDts(project: Project): boolean; |
| interface PluginCreateInfo { |
| project: Project; |
| languageService: LanguageService; |
| languageServiceHost: LanguageServiceHost; |
| serverHost: ServerHost; |
| config: any; |
| } |
| interface PluginModule { |
| create(createInfo: PluginCreateInfo): LanguageService; |
| getExternalFiles?(proj: Project): string[]; |
| onConfigurationChanged?(config: any): void; |
| } |
| interface PluginModuleWithName { |
| name: string; |
| module: PluginModule; |
| } |
| type PluginModuleFactory = (mod: { |
| typescript: typeof ts; |
| }) => PluginModule; |
| /** |
| * The project root can be script info - if root is present, |
| * or it could be just normalized path if root wasnt present on the host(only for non inferred project) |
| */ |
| type ProjectRoot = ScriptInfo | NormalizedPath; |
| abstract class Project implements LanguageServiceHost, ModuleResolutionHost { |
| readonly projectName: string; |
| readonly projectKind: ProjectKind; |
| readonly projectService: ProjectService; |
| private documentRegistry; |
| private compilerOptions; |
| compileOnSaveEnabled: boolean; |
| private rootFiles; |
| private rootFilesMap; |
| private program; |
| private externalFiles; |
| private missingFilesMap; |
| private plugins; |
| private lastFileExceededProgramSize; |
| protected languageService: LanguageService; |
| languageServiceEnabled: boolean; |
| readonly trace?: (s: string) => void; |
| readonly realpath?: (path: string) => string; |
| private builderState; |
| /** |
| * Set of files names that were updated since the last call to getChangesSinceVersion. |
| */ |
| private updatedFileNames; |
| /** |
| * Set of files that was returned from the last call to getChangesSinceVersion. |
| */ |
| private lastReportedFileNames; |
| /** |
| * Last version that was reported. |
| */ |
| private lastReportedVersion; |
| /** |
| * Current project's program version. (incremented everytime new program is created that is not complete reuse from the old one) |
| * This property is changed in 'updateGraph' based on the set of files in program |
| */ |
| private projectProgramVersion; |
| /** |
| * Current version of the project state. It is changed when: |
| * - new root file was added/removed |
| * - edit happen in some file that is currently included in the project. |
| * This property is different from projectStructureVersion since in most cases edits don't affect set of files in the project |
| */ |
| private projectStateVersion; |
| protected isInitialLoadPending: () => boolean; |
| private readonly cancellationToken; |
| isNonTsProject(): boolean; |
| isJsOnlyProject(): boolean; |
| static resolveModule(moduleName: string, initialDir: string, host: ServerHost, log: (message: string) => void, logErrors?: (message: string) => void): {} | undefined; |
| isKnownTypesPackageName(name: string): boolean; |
| installPackage(options: InstallPackageOptions): Promise<ApplyCodeActionCommandResult>; |
| private readonly typingsCache; |
| getCompilationSettings(): CompilerOptions; |
| getCompilerOptions(): CompilerOptions; |
| getNewLine(): string; |
| getProjectVersion(): string; |
| getProjectReferences(): ReadonlyArray<ProjectReference> | undefined; |
| getScriptFileNames(): string[]; |
| private getOrCreateScriptInfoAndAttachToProject; |
| getScriptKind(fileName: string): ScriptKind; |
| getScriptVersion(filename: string): string; |
| getScriptSnapshot(filename: string): IScriptSnapshot | undefined; |
| getCancellationToken(): HostCancellationToken; |
| getCurrentDirectory(): string; |
| getDefaultLibFileName(): string; |
| useCaseSensitiveFileNames(): boolean; |
| readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[]; |
| readFile(fileName: string): string | undefined; |
| writeFile(fileName: string, content: string): void; |
| fileExists(file: string): boolean; |
| resolveModuleNames(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference): (ResolvedModuleFull | undefined)[]; |
| getResolvedModuleWithFailedLookupLocationsFromCache(moduleName: string, containingFile: string): ResolvedModuleWithFailedLookupLocations | undefined; |
| resolveTypeReferenceDirectives(typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[]; |
| directoryExists(path: string): boolean; |
| getDirectories(path: string): string[]; |
| log(s: string): void; |
| error(s: string): void; |
| private setInternalCompilerOptionsForEmittingJsFiles; |
| /** |
| * Get the errors that dont have any file name associated |
| */ |
| getGlobalProjectErrors(): ReadonlyArray<Diagnostic>; |
| getAllProjectErrors(): ReadonlyArray<Diagnostic>; |
| getLanguageService(ensureSynchronized?: boolean): LanguageService; |
| private shouldEmitFile; |
| getCompileOnSaveAffectedFileList(scriptInfo: ScriptInfo): string[]; |
| /** |
| * Returns true if emit was conducted |
| */ |
| emitFile(scriptInfo: ScriptInfo, writeFile: (path: string, data: string, writeByteOrderMark?: boolean) => void): boolean; |
| enableLanguageService(): void; |
| disableLanguageService(lastFileExceededProgramSize?: string): void; |
| getProjectName(): string; |
| abstract getTypeAcquisition(): TypeAcquisition; |
| protected removeLocalTypingsFromTypeAcquisition(newTypeAcquisition: TypeAcquisition): TypeAcquisition; |
| getExternalFiles(): SortedReadonlyArray<string>; |
| getSourceFile(path: Path): SourceFile | undefined; |
| close(): void; |
| private detachScriptInfoIfNotRoot; |
| isClosed(): boolean; |
| hasRoots(): boolean; |
| getRootFiles(): NormalizedPath[]; |
| getRootScriptInfos(): ScriptInfo[]; |
| getScriptInfos(): ScriptInfo[]; |
| getExcludedFiles(): ReadonlyArray<NormalizedPath>; |
| getFileNames(excludeFilesFromExternalLibraries?: boolean, excludeConfigFiles?: boolean): NormalizedPath[]; |
| hasConfigFile(configFilePath: NormalizedPath): boolean; |
| containsScriptInfo(info: ScriptInfo): boolean; |
| containsFile(filename: NormalizedPath, requireOpen?: boolean): boolean; |
| isRoot(info: ScriptInfo): boolean; |
| addRoot(info: ScriptInfo): void; |
| addMissingFileRoot(fileName: NormalizedPath): void; |
| removeFile(info: ScriptInfo, fileExists: boolean, detachFromProject: boolean): void; |
| registerFileUpdate(fileName: string): void; |
| markAsDirty(): void; |
| /** |
| * Updates set of files that contribute to this project |
| * @returns: true if set of files in the project stays the same and false - otherwise. |
| */ |
| updateGraph(): boolean; |
| protected removeExistingTypings(include: string[]): string[]; |
| private updateGraphWorker; |
| private detachScriptInfoFromProject; |
| private addMissingFileWatcher; |
| private isWatchedMissingFile; |
| getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined; |
| getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined; |
| filesToString(writeProjectFileNames: boolean): string; |
| setCompilerOptions(compilerOptions: CompilerOptions): void; |
| protected removeRoot(info: ScriptInfo): void; |
| protected enableGlobalPlugins(options: CompilerOptions, pluginConfigOverrides: Map<any> | undefined): void; |
| protected enablePlugin(pluginConfigEntry: PluginImport, searchPaths: string[], pluginConfigOverrides: Map<any> | undefined): void; |
| private enableProxy; |
| /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */ |
| refreshDiagnostics(): void; |
| } |
| /** |
| * If a file is opened and no tsconfig (or jsconfig) is found, |
| * the file and its imports/references are put into an InferredProject. |
| */ |
| class InferredProject extends Project { |
| private static readonly newName; |
| private _isJsInferredProject; |
| toggleJsInferredProject(isJsInferredProject: boolean): void; |
| setCompilerOptions(options?: CompilerOptions): void; |
| /** this is canonical project root path */ |
| readonly projectRootPath: string | undefined; |
| addRoot(info: ScriptInfo): void; |
| removeRoot(info: ScriptInfo): void; |
| isProjectWithSingleRoot(): boolean; |
| close(): void; |
| getTypeAcquisition(): TypeAcquisition; |
| } |
| /** |
| * If a file is opened, the server will look for a tsconfig (or jsconfig) |
| * and if successfull create a ConfiguredProject for it. |
| * Otherwise it will create an InferredProject. |
| */ |
| class ConfiguredProject extends Project { |
| private typeAcquisition; |
| private directoriesWatchedForWildcards; |
| readonly canonicalConfigFilePath: NormalizedPath; |
| /** Ref count to the project when opened from external project */ |
| private externalProjectRefCount; |
| private projectErrors; |
| private projectReferences; |
| protected isInitialLoadPending: () => boolean; |
| /** |
| * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph |
| * @returns: true if set of files in the project stays the same and false - otherwise. |
| */ |
| updateGraph(): boolean; |
| getConfigFilePath(): NormalizedPath; |
| getProjectReferences(): ReadonlyArray<ProjectReference> | undefined; |
| updateReferences(refs: ReadonlyArray<ProjectReference> | undefined): void; |
| /** |
| * Get the errors that dont have any file name associated |
| */ |
| getGlobalProjectErrors(): ReadonlyArray<Diagnostic>; |
| /** |
| * Get all the project errors |
| */ |
| getAllProjectErrors(): ReadonlyArray<Diagnostic>; |
| setProjectErrors(projectErrors: Diagnostic[]): void; |
| setTypeAcquisition(newTypeAcquisition: TypeAcquisition): void; |
| getTypeAcquisition(): TypeAcquisition; |
| close(): void; |
| getEffectiveTypeRoots(): string[]; |
| } |
| /** |
| * Project whose configuration is handled externally, such as in a '.csproj'. |
| * These are created only if a host explicitly calls `openExternalProject`. |
| */ |
| class ExternalProject extends Project { |
| externalProjectName: string; |
| compileOnSaveEnabled: boolean; |
| excludedFiles: ReadonlyArray<NormalizedPath>; |
| private typeAcquisition; |
| updateGraph(): boolean; |
| getExcludedFiles(): readonly NormalizedPath[]; |
| getTypeAcquisition(): TypeAcquisition; |
| setTypeAcquisition(newTypeAcquisition: TypeAcquisition): void; |
| } |
| } |
| declare namespace ts.server { |
| const maxProgramSizeForNonTsFiles: number; |
| const ProjectsUpdatedInBackgroundEvent = "projectsUpdatedInBackground"; |
| const ProjectLoadingStartEvent = "projectLoadingStart"; |
| const ProjectLoadingFinishEvent = "projectLoadingFinish"; |
| const LargeFileReferencedEvent = "largeFileReferenced"; |
| const ConfigFileDiagEvent = "configFileDiag"; |
| const ProjectLanguageServiceStateEvent = "projectLanguageServiceState"; |
| const ProjectInfoTelemetryEvent = "projectInfo"; |
| const OpenFileInfoTelemetryEvent = "openFileInfo"; |
| interface ProjectsUpdatedInBackgroundEvent { |
| eventName: typeof ProjectsUpdatedInBackgroundEvent; |
| data: { |
| openFiles: string[]; |
| }; |
| } |
| interface ProjectLoadingStartEvent { |
| eventName: typeof ProjectLoadingStartEvent; |
| data: { |
| project: Project; |
| reason: string; |
| }; |
| } |
| interface ProjectLoadingFinishEvent { |
| eventName: typeof ProjectLoadingFinishEvent; |
| data: { |
| project: Project; |
| }; |
| } |
| interface LargeFileReferencedEvent { |
| eventName: typeof LargeFileReferencedEvent; |
| data: { |
| file: string; |
| fileSize: number; |
| maxFileSize: number; |
| }; |
| } |
| interface ConfigFileDiagEvent { |
| eventName: typeof ConfigFileDiagEvent; |
| data: { |
| triggerFile: string; |
| configFileName: string; |
| diagnostics: ReadonlyArray<Diagnostic>; |
| }; |
| } |
| interface ProjectLanguageServiceStateEvent { |
| eventName: typeof ProjectLanguageServiceStateEvent; |
| data: { |
| project: Project; |
| languageServiceEnabled: boolean; |
| }; |
| } |
| /** This will be converted to the payload of a protocol.TelemetryEvent in session.defaultEventHandler. */ |
| interface ProjectInfoTelemetryEvent { |
| readonly eventName: typeof ProjectInfoTelemetryEvent; |
| readonly data: ProjectInfoTelemetryEventData; |
| } |
| interface ProjectInfoTelemetryEventData { |
| /** Cryptographically secure hash of project file location. */ |
| readonly projectId: string; |
| /** Count of file extensions seen in the project. */ |
| readonly fileStats: FileStats; |
| /** |
| * Any compiler options that might contain paths will be taken out. |
| * Enum compiler options will be converted to strings. |
| */ |
| readonly compilerOptions: CompilerOptions; |
| readonly extends: boolean | undefined; |
| readonly files: boolean | undefined; |
| readonly include: boolean | undefined; |
| readonly exclude: boolean | undefined; |
| readonly compileOnSave: boolean; |
| readonly typeAcquisition: ProjectInfoTypeAcquisitionData; |
| readonly configFileName: "tsconfig.json" | "jsconfig.json" | "other"; |
| readonly projectType: "external" | "configured"; |
| readonly languageServiceEnabled: boolean; |
| /** TypeScript version used by the server. */ |
| readonly version: string; |
| } |
| /** |
| * Info that we may send about a file that was just opened. |
| * Info about a file will only be sent once per session, even if the file changes in ways that might affect the info. |
| * Currently this is only sent for '.js' files. |
| */ |
| interface OpenFileInfoTelemetryEvent { |
| readonly eventName: typeof OpenFileInfoTelemetryEvent; |
| readonly data: OpenFileInfoTelemetryEventData; |
| } |
| interface OpenFileInfoTelemetryEventData { |
| readonly info: OpenFileInfo; |
| } |
| interface ProjectInfoTypeAcquisitionData { |
| readonly enable: boolean | undefined; |
| readonly include: boolean; |
| readonly exclude: boolean; |
| } |
| interface FileStats { |
| readonly js: number; |
| readonly jsSize?: number; |
| readonly jsx: number; |
| readonly jsxSize?: number; |
| readonly ts: number; |
| readonly tsSize?: number; |
| readonly tsx: number; |
| readonly tsxSize?: number; |
| readonly dts: number; |
| readonly dtsSize?: number; |
| readonly deferred: number; |
| readonly deferredSize?: number; |
| } |
| interface OpenFileInfo { |
| readonly checkJs: boolean; |
| } |
| type ProjectServiceEvent = LargeFileReferencedEvent | ProjectsUpdatedInBackgroundEvent | ProjectLoadingStartEvent | ProjectLoadingFinishEvent | ConfigFileDiagEvent | ProjectLanguageServiceStateEvent | ProjectInfoTelemetryEvent | OpenFileInfoTelemetryEvent; |
| type ProjectServiceEventHandler = (event: ProjectServiceEvent) => void; |
| interface SafeList { |
| [name: string]: { |
| match: RegExp; |
| exclude?: (string | number)[][]; |
| types?: string[]; |
| }; |
| } |
| interface TypesMapFile { |
| typesMap: SafeList; |
| simpleMap: { |
| [libName: string]: string; |
| }; |
| } |
| function convertFormatOptions(protocolOptions: protocol.FormatCodeSettings): FormatCodeSettings; |
| function convertCompilerOptions(protocolOptions: protocol.ExternalProjectCompilerOptions): CompilerOptions & protocol.CompileOnSaveMixin; |
| function tryConvertScriptKindName(scriptKindName: protocol.ScriptKindName | ScriptKind): ScriptKind; |
| function convertScriptKindName(scriptKindName: protocol.ScriptKindName): ScriptKind.Unknown | ScriptKind.JS | ScriptKind.JSX | ScriptKind.TS | ScriptKind.TSX; |
| interface HostConfiguration { |
| formatCodeOptions: FormatCodeSettings; |
| preferences: protocol.UserPreferences; |
| hostInfo: string; |
| extraFileExtensions?: FileExtensionInfo[]; |
| } |
| interface OpenConfiguredProjectResult { |
| configFileName?: NormalizedPath; |
| configFileErrors?: ReadonlyArray<Diagnostic>; |
| } |
| interface ProjectServiceOptions { |
| host: ServerHost; |
| logger: Logger; |
| cancellationToken: HostCancellationToken; |
| useSingleInferredProject: boolean; |
| useInferredProjectPerProjectRoot: boolean; |
| typingsInstaller: ITypingsInstaller; |
| eventHandler?: ProjectServiceEventHandler; |
| suppressDiagnosticEvents?: boolean; |
| throttleWaitMilliseconds?: number; |
| globalPlugins?: ReadonlyArray<string>; |
| pluginProbeLocations?: ReadonlyArray<string>; |
| allowLocalPluginLoads?: boolean; |
| typesMapLocation?: string; |
| syntaxOnly?: boolean; |
| } |
| class ProjectService { |
| private readonly scriptInfoInNodeModulesWatchers; |
| /** |
| * Contains all the deleted script info's version information so that |
| * it does not reset when creating script info again |
| * (and could have potentially collided with version where contents mismatch) |
| */ |
| private readonly filenameToScriptInfoVersion; |
| private readonly allJsFilesForOpenFileTelemetry; |
| /** |
| * maps external project file name to list of config files that were the part of this project |
| */ |
| private readonly externalProjectToConfiguredProjectMap; |
| /** |
| * external projects (configuration and list of root files is not controlled by tsserver) |
| */ |
| readonly externalProjects: ExternalProject[]; |
| /** |
| * projects built from openFileRoots |
| */ |
| readonly inferredProjects: InferredProject[]; |
| /** |
| * projects specified by a tsconfig.json file |
| */ |
| readonly configuredProjects: Map<ConfiguredProject>; |
| /** |
| * Open files: with value being project root path, and key being Path of the file that is open |
| */ |
| readonly openFiles: Map<NormalizedPath | undefined>; |
| /** |
| * Map of open files that are opened without complete path but have projectRoot as current directory |
| */ |
| private readonly openFilesWithNonRootedDiskPath; |
| private compilerOptionsForInferredProjects; |
| private compilerOptionsForInferredProjectsPerProjectRoot; |
| /** |
| * Project size for configured or external projects |
| */ |
| private readonly projectToSizeMap; |
| /** |
| * This is a map of config file paths existance that doesnt need query to disk |
| * - The entry can be present because there is inferred project that needs to watch addition of config file to directory |
| * In this case the exists could be true/false based on config file is present or not |
| * - Or it is present if we have configured project open with config file at that location |
| * In this case the exists property is always true |
| */ |
| private readonly configFileExistenceInfoCache; |
| private readonly throttledOperations; |
| private readonly hostConfiguration; |
| private safelist; |
| private readonly legacySafelist; |
| private pendingProjectUpdates; |
| readonly currentDirectory: NormalizedPath; |
| readonly toCanonicalFileName: (f: string) => string; |
| readonly host: ServerHost; |
| readonly logger: Logger; |
| readonly cancellationToken: HostCancellationToken; |
| readonly useSingleInferredProject: boolean; |
| readonly useInferredProjectPerProjectRoot: boolean; |
| readonly typingsInstaller: ITypingsInstaller; |
| private readonly globalCacheLocationDirectoryPath; |
| readonly throttleWaitMilliseconds?: number; |
| private readonly eventHandler?; |
| private readonly suppressDiagnosticEvents?; |
| readonly globalPlugins: ReadonlyArray<string>; |
| readonly pluginProbeLocations: ReadonlyArray<string>; |
| readonly allowLocalPluginLoads: boolean; |
| private currentPluginConfigOverrides; |
| readonly typesMapLocation: string | undefined; |
| readonly syntaxOnly?: boolean; |
| /** Tracks projects that we have already sent telemetry for. */ |
| private readonly seenProjects; |
| constructor(opts: ProjectServiceOptions); |
| toPath(fileName: string): Path; |
| private loadTypesMap; |
| updateTypingsForProject(response: SetTypings | InvalidateCachedTypings | PackageInstalledResponse): void; |
| private delayEnsureProjectForOpenFiles; |
| private delayUpdateProjectGraph; |
| private delayUpdateProjectGraphs; |
| setCompilerOptionsForInferredProjects(projectCompilerOptions: protocol.ExternalProjectCompilerOptions, projectRootPath?: string): void; |
| findProject(projectName: string): Project | undefined; |
| getDefaultProjectForFile(fileName: NormalizedPath, ensureProject: boolean): Project | undefined; |
| private doEnsureDefaultProjectForFile; |
| getScriptInfoEnsuringProjectsUptoDate(uncheckedFileName: string): ScriptInfo | undefined; |
| /** |
| * Ensures the project structures are upto date |
| * This means, |
| * - we go through all the projects and update them if they are dirty |
| * - if updates reflect some change in structure or there was pending request to ensure projects for open files |
| * ensure that each open script info has project |
| */ |
| private ensureProjectStructuresUptoDate; |
| getFormatCodeOptions(file: NormalizedPath): FormatCodeSettings; |
| getPreferences(file: NormalizedPath): protocol.UserPreferences; |
| getHostFormatCodeOptions(): FormatCodeSettings; |
| getHostPreferences(): protocol.UserPreferences; |
| private onSourceFileChanged; |
| private handleSourceMapProjects; |
| private delayUpdateSourceInfoProjects; |
| private delayUpdateProjectsOfScriptInfoPath; |
| private handleDeletedFile; |
| private onConfigChangedForConfiguredProject; |
| /** |
| * This is the callback function for the config file add/remove/change at any location |
| * that matters to open script info but doesnt have configured project open |
| * for the config file |
| */ |
| private onConfigFileChangeForOpenScriptInfo; |
| private removeProject; |
| private assignOrphanScriptInfosToInferredProject; |
| /** |
| * Remove this file from the set of open, non-configured files. |
| * @param info The file that has been closed or newly configured |
| */ |
| private closeOpenFile; |
| private deleteScriptInfo; |
| private configFileExists; |
| private setConfigFileExistenceByNewConfiguredProject; |
| /** |
| * Returns true if the configFileExistenceInfo is needed/impacted by open files that are root of inferred project |
| */ |
| private configFileExistenceImpactsRootOfInferredProject; |
| private setConfigFileExistenceInfoByClosedConfiguredProject; |
| private logConfigFileWatchUpdate; |
| /** |
| * Create the watcher for the configFileExistenceInfo |
| */ |
| private createConfigFileWatcherOfConfigFileExistence; |
| /** |
| * Close the config file watcher in the cached ConfigFileExistenceInfo |
| * if there arent any open files that are root of inferred project |
| */ |
| private closeConfigFileWatcherOfConfigFileExistenceInfo; |
| /** |
| * This is called on file close, so that we stop watching the config file for this script info |
| */ |
| private stopWatchingConfigFilesForClosedScriptInfo; |
| /** |
| * This function tries to search for a tsconfig.json for the given file. |
| * This is different from the method the compiler uses because |
| * the compiler can assume it will always start searching in the |
| * current directory (the directory in which tsc was invoked). |
| * The server must start searching from the directory containing |
| * the newly opened file. |
| */ |
| private forEachConfigFileLocation; |
| /** |
| * This function tries to search for a tsconfig.json for the given file. |
| * This is different from the method the compiler uses because |
| * the compiler can assume it will always start searching in the |
| * current directory (the directory in which tsc was invoked). |
| * The server must start searching from the directory containing |
| * the newly opened file. |
| * If script info is passed in, it is asserted to be open script info |
| * otherwise just file name |
| */ |
| private getConfigFileNameForFile; |
| private printProjects; |
| private findConfiguredProjectByProjectName; |
| private getConfiguredProjectByCanonicalConfigFilePath; |
| private findExternalProjectByProjectName; |
| /** Get a filename if the language service exceeds the maximum allowed program size; otherwise returns undefined. */ |
| private getFilenameForExceededTotalSizeLimitForNonTsFiles; |
| private createExternalProject; |
| private addFilesToNonInferredProject; |
| private createConfiguredProject; |
| private updateNonInferredProjectFiles; |
| private updateRootAndOptionsOfNonInferredProject; |
| private sendConfigFileDiagEvent; |
| private getOrCreateInferredProjectForProjectRootPathIfEnabled; |
| private getOrCreateSingleInferredProjectIfEnabled; |
| private getOrCreateSingleInferredWithoutProjectRoot; |
| private createInferredProject; |
| getScriptInfo(uncheckedFileName: string): ScriptInfo | undefined; |
| private watchClosedScriptInfo; |
| private watchClosedScriptInfoInNodeModules; |
| private getModifiedTime; |
| private refreshScriptInfo; |
| private refreshScriptInfosInDirectory; |
| private stopWatchingScriptInfo; |
| private getOrCreateScriptInfoNotOpenedByClientForNormalizedPath; |
| private getOrCreateScriptInfoOpenedByClientForNormalizedPath; |
| getOrCreateScriptInfoForNormalizedPath(fileName: NormalizedPath, openedByClient: boolean, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, hostToQueryFileExistsOn?: { |
| fileExists(path: string): boolean; |
| }): ScriptInfo | undefined; |
| private getOrCreateScriptInfoWorker; |
| /** |
| * This gets the script info for the normalized path. If the path is not rooted disk path then the open script info with project root context is preferred |
| */ |
| getScriptInfoForNormalizedPath(fileName: NormalizedPath): ScriptInfo | undefined; |
| getScriptInfoForPath(fileName: Path): ScriptInfo | undefined; |
| private addSourceInfoToSourceMap; |
| private addMissingSourceMapFile; |
| setHostConfiguration(args: protocol.ConfigureRequestArguments): void; |
| closeLog(): void; |
| /** |
| * This function rebuilds the project for every file opened by the client |
| * This does not reload contents of open files from disk. But we could do that if needed |
| */ |
| reloadProjects(): void; |
| private delayReloadConfiguredProjectForFiles; |
| /** |
| * This function goes through all the openFiles and tries to file the config file for them. |
| * If the config file is found and it refers to existing project, it reloads it either immediately |
| * or schedules it for reload depending on delayReload option |
| * If the there is no existing project it just opens the configured project for the config file |
| * reloadForInfo provides a way to filter out files to reload configured project for |
| */ |
| private reloadConfiguredProjectForFiles; |
| /** |
| * Remove the root of inferred project if script info is part of another project |
| */ |
| private removeRootOfInferredProjectIfNowPartOfOtherProject; |
| /** |
| * This function is to update the project structure for every inferred project. |
| * It is called on the premise that all the configured projects are |
| * up to date. |
| * This will go through open files and assign them to inferred project if open file is not part of any other project |
| * After that all the inferred project graphs are updated |
| */ |
| private ensureProjectForOpenFiles; |
| /** |
| * Open file whose contents is managed by the client |
| * @param filename is absolute pathname |
| * @param fileContent is a known version of the file content that is more up to date than the one on disk |
| */ |
| openClientFile(fileName: string, fileContent?: string, scriptKind?: ScriptKind, projectRootPath?: string): OpenConfiguredProjectResult; |
| private findExternalProjectContainingOpenScriptInfo; |
| private getOrCreateOpenScriptInfo; |
| private assignProjectToOpenedScriptInfo; |
| private cleanupAfterOpeningFile; |
| openClientFileWithNormalizedPath(fileName: NormalizedPath, fileContent?: string, scriptKind?: ScriptKind, hasMixedContent?: boolean, projectRootPath?: NormalizedPath): OpenConfiguredProjectResult; |
| private removeOrphanConfiguredProjects; |
| private removeOrphanScriptInfos; |
| private telemetryOnOpenFile; |
| /** |
| * Close file whose contents is managed by the client |
| * @param filename is absolute pathname |
| */ |
| closeClientFile(uncheckedFileName: string): void; |
| private collectChanges; |
| private closeConfiguredProjectReferencedFromExternalProject; |
| closeExternalProject(uncheckedFileName: string): void; |
| openExternalProjects(projects: protocol.ExternalProject[]): void; |
| /** Makes a filename safe to insert in a RegExp */ |
| private static readonly filenameEscapeRegexp; |
| private static escapeFilenameForRegex; |
| resetSafeList(): void; |
| applySafeList(proj: protocol.ExternalProject): NormalizedPath[]; |
| openExternalProject(proj: protocol.ExternalProject): void; |
| hasDeferredExtension(): boolean; |
| configurePlugin(args: protocol.ConfigurePluginRequestArguments): void; |
| } |
| } |
| declare namespace ts.server { |
| interface ServerCancellationToken extends HostCancellationToken { |
| setRequest(requestId: number): void; |
| resetRequest(requestId: number): void; |
| } |
| const nullCancellationToken: ServerCancellationToken; |
| interface PendingErrorCheck { |
| fileName: NormalizedPath; |
| project: Project; |
| } |
| type CommandNames = protocol.CommandTypes; |
| const CommandNames: any; |
| function formatMessage<T extends protocol.Message>(msg: T, logger: Logger, byteLength: (s: string, encoding: string) => number, newLine: string): string; |
| type Event = <T extends object>(body: T, eventName: string) => void; |
| interface EventSender { |
| event: Event; |
| } |
| interface SessionOptions { |
| host: ServerHost; |
| cancellationToken: ServerCancellationToken; |
| useSingleInferredProject: boolean; |
| useInferredProjectPerProjectRoot: boolean; |
| typingsInstaller: ITypingsInstaller; |
| byteLength: (buf: string, encoding?: string) => number; |
| hrtime: (start?: number[]) => number[]; |
| logger: Logger; |
| /** |
| * If falsy, all events are suppressed. |
| */ |
| canUseEvents: boolean; |
| eventHandler?: ProjectServiceEventHandler; |
| /** Has no effect if eventHandler is also specified. */ |
| suppressDiagnosticEvents?: boolean; |
| syntaxOnly?: boolean; |
| throttleWaitMilliseconds?: number; |
| noGetErrOnBackgroundUpdate?: boolean; |
| globalPlugins?: ReadonlyArray<string>; |
| pluginProbeLocations?: ReadonlyArray<string>; |
| allowLocalPluginLoads?: boolean; |
| typesMapLocation?: string; |
| } |
| class Session implements EventSender { |
| private readonly gcTimer; |
| protected projectService: ProjectService; |
| private changeSeq; |
| private currentRequestId; |
| private errorCheck; |
| protected host: ServerHost; |
| private readonly cancellationToken; |
| protected readonly typingsInstaller: ITypingsInstaller; |
| protected byteLength: (buf: string, encoding?: string) => number; |
| private hrtime; |
| protected logger: Logger; |
| protected canUseEvents: boolean; |
| private suppressDiagnosticEvents?; |
| private eventHandler; |
| private readonly noGetErrOnBackgroundUpdate?; |
| constructor(opts: SessionOptions); |
| private sendRequestCompletedEvent; |
| private defaultEventHandler; |
| private projectsUpdatedInBackgroundEvent; |
| logError(err: Error, cmd: string): void; |
| private logErrorWorker; |
| send(msg: protocol.Message): void; |
| event<T extends object>(body: T, eventName: string): void; |
| /** @deprecated */ |
| output(info: any, cmdName: string, reqSeq?: number, errorMsg?: string): void; |
| private doOutput; |
| private semanticCheck; |
| private syntacticCheck; |
| private suggestionCheck; |
| private sendDiagnosticsEvent; |
| /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */ |
| private updateErrorCheck; |
| private cleanProjects; |
| private cleanup; |
| private getEncodedSemanticClassifications; |
| private getProject; |
| private getConfigFileAndProject; |
| private getConfigFileDiagnostics; |
| private convertToDiagnosticsWithLinePositionFromDiagnosticFile; |
| private getCompilerOptionsDiagnostics; |
| private convertToDiagnosticsWithLinePosition; |
| private getDiagnosticsWorker; |
| private getDefinition; |
| private mapDefinitionInfoLocations; |
| private getDefinitionAndBoundSpan; |
| private getEmitOutput; |
| private mapDefinitionInfo; |
| private static mapToOriginalLocation; |
| private toFileSpan; |
| private getTypeDefinition; |
| private mapImplementationLocations; |
| private getImplementation; |
| private getOccurrences; |
| private getSyntacticDiagnosticsSync; |
| private getSemanticDiagnosticsSync; |
| private getSuggestionDiagnosticsSync; |
| private getJsxClosingTag; |
| private getDocumentHighlights; |
| private setCompilerOptionsForInferredProjects; |
| private getProjectInfo; |
| private getProjectInfoWorker; |
| private getRenameInfo; |
| private getProjects; |
| private getDefaultProject; |
| private getRenameLocations; |
| private mapRenameInfo; |
| private toSpanGroups; |
| private getReferences; |
| /** |
| * @param fileName is the name of the file to be opened |
| * @param fileContent is a version of the file content that is known to be more up to date than the one on disk |
| */ |
| private openClientFile; |
| private getPosition; |
| private getPositionInFile; |
| private getFileAndProject; |
| private getFileAndLanguageServiceForSyntacticOperation; |
| private getFileAndProjectWorker; |
| private getOutliningSpans; |
| private getTodoComments; |
| private getDocCommentTemplate; |
| private getSpanOfEnclosingComment; |
| private getIndentation; |
| private getBreakpointStatement; |
| private getNameOrDottedNameSpan; |
| private isValidBraceCompletion; |
| private getQuickInfoWorker; |
| private getFormattingEditsForRange; |
| private getFormattingEditsForRangeFull; |
| private getFormattingEditsForDocumentFull; |
| private getFormattingEditsAfterKeystrokeFull; |
| private getFormattingEditsAfterKeystroke; |
| private getCompletions; |
| private getCompletionEntryDetails; |
| private getCompileOnSaveAffectedFileList; |
| private emitFile; |
| private getSignatureHelpItems; |
| private createCheckList; |
| private getDiagnostics; |
| private change; |
| private reload; |
| private saveToTmp; |
| private closeClientFile; |
| private mapLocationNavigationBarItems; |
| private getNavigationBarItems; |
| private toLocationNavigationTree; |
| private toLocationTextSpan; |
| private getNavigationTree; |
| private getNavigateToItems; |
| private getFullNavigateToItems; |
| private getSupportedCodeFixes; |
| private isLocation; |
| private extractPositionOrRange; |
| private getApplicableRefactors; |
| private getEditsForRefactor; |
| private organizeImports; |
| private getEditsForFileRename; |
| private getCodeFixes; |
| private getCombinedCodeFix; |
| private applyCodeActionCommand; |
| private getStartAndEndPosition; |
| private mapCodeAction; |
| private mapCodeFixAction; |
| private mapTextChangesToCodeEdits; |
| private mapTextChangeToCodeEdit; |
| private convertTextChangeToCodeEdit; |
| private getBraceMatching; |
| private getDiagnosticsForProject; |
| private configurePlugin; |
| private getSmartSelectionRange; |
| private mapSelectionRange; |
| getCanonicalFileName(fileName: string): string; |
| exit(): void; |
| private notRequired; |
| private requiredResponse; |
| private handlers; |
| addProtocolHandler(command: string, handler: (request: protocol.Request) => HandlerResponse): void; |
| private setCurrentRequest; |
| private resetCurrentRequest; |
| executeWithRequestId<T>(requestId: number, f: () => T): T; |
| executeCommand(request: protocol.Request): HandlerResponse; |
| onMessage(message: string): void; |
| private getFormatOptions; |
| private getPreferences; |
| private getHostFormatOptions; |
| private getHostPreferences; |
| } |
| interface HandlerResponse { |
| response?: {}; |
| responseRequired?: boolean; |
| } |
| } |
| |
| export = ts; |
| export as namespace ts; |