13 KiB
2.29.0
Features:
- added utility
isCompilerOptionEnabled
2.28.0
Typeguards are now split into multiple submodules for each version of TypeScript (starting with 2.8.0).
That means you can now import directly from "tsutils/typeguard/2.8"
to get compatible declaraton files for TypeScript@2.8.
For more information please read the relevant section in README.md.
Features:
- added typeguards:
isTupleType
,isOptionalTypeNode
,isRestTypeNode
,isSyntheticExpression
(currently available from"tsutils/typeguard/3.0"
) - added utility
isStrictCompilerOptionEnabled
2.27.2
Avoid crash caused by removed function in typescript@3.0.0
.
2.27.1
Added support for TypeScript@3.0.0 nightly builds.
2.27.0
Features:
- added
getIIFE
utility
2.26.2
Bugfixes:
forEachComment
andforEachTokenWithTrivia
no longer duplicate comments around missing nodes
2.26.1
Bugfixes:
- fixed crash in
hasSideEffects
with tagged template literal without substitution:tag`template`
2.26.0
Features:
- added typeguard
isLiteralTypeNode
- added support for type imports (
type T = import('foo')
) tofindImports
viaImportKind.ImportType
2.25.1
Bugfixes:
collectVariableUsage
: fixed name lookup in function signatures to match runtime behavior. Note that this is not completely fixed in TypeScript, yet. See: Microsoft/TypeScript#22825 and Microsoft/TypeScript#22769
2.25.0
Features:
- added utilities:
isStatementInAmbientContext
andisAmbientModuleBlock
2.24.0
Features:
- added typeguards for typescript@2.8:
isConditionalTypeNode
,isInferTypeNode
,isConditionalType
,isInstantiableType
,isSubstitutionType
2.23.0
Features:
- added typeguard
isForInOrOfStatement
Bugfixes:
- correctly handle comments in generic JSX elements:
<MyComponent<string>/*comment*/></MyComponent>
- fixed a bug with false positive trailing comments at the end of JSX self closing element:
<div><br/>/*no comment*/</div>
2.22.2
Bugfixes:
collectVariableUsage
: handle ConditionalTypes andinfer T
, which will be introduced in TypeScript@2.8.0 and are already available in nightly buildsisLiteralType
no longer returns true forts.TypeFlags.BooleanLiteral
as this is not ats.LiteralType
2.22.1
Bugfixes:
endsControlFlow
:- handle loops that might not even run a single iteration
- handle constant boolean conditions in loops and if
2.22.0
Features:
- added
isFalsyType
utility
2.21.2
Bugfixes:
- fixed compile error with
typescript@2.8.0-dev
2.21.1
Bugfixes:
isReassignmentTarget
: handle type assertions and non-null assertion
2.21.0
Bugfixes:
forEachDeclaredVariable
uses a more precise type for the callback parameter to make it useable again with typescript@2.7.1
Features:
- added
isUniqueESSymbolType
typeguard
2.20.0
Features:
- added
isThenableType
utility - added
unionTypeParts
utility
2.19.1
Bugfixes:
forEachComment
,getCommentAtPosition
andisPositionInComment
: skip shebang (#! something
) to not miss following comments at the start of the file
2.19.0
Features:
- added
WrappedAst
interface that models the type of a wrapped SourceFile more accurate - added
getWrappedNodeAtPosition
utiltiy that takes aNodeWrap
and returns the most deeply nested NodeWrap that contains the given position
2.18.0
Features:
getControlFlowEnd
accepts BlockLike as argument
Bugfixes:
getControlFlowEnd
andendsControlFlow
: correctly handle nested LabeledStatementsendsControlFlow
removed erroneous special case when an IterationStatement is passed as argument whose parent is a LabeledStatement.- if you want labels of an IterationStatement (or SwitchStatement) to be handled, you need to pass the LabeledStatement as argument.
- ⚠️ this fix may change the returned value if you relied on the buggy behavior
Deprecations:
- deprecated overload of
getControlFlowEnd
that contains thelabel
parameter. This parameter is no longer used and should no longer be passed to the function.
2.17.1
Bugfixes:
getControlFlowEnd
andendsControlFlow
(#22)- ThrowStatements inside
try
are filtered out if there is acatch
clause - TryStatements with
catch
only end control flow iftry
ANDcatch
definitely end control flow
- ThrowStatements inside
2.17.0
Features:
- added
kind
property toNodeWrap
- added
getControlFlowEnd
to public API
2.16.0
Features:
- added
isDecorator
andisCallLikeExpression
typeguards
2.15.0
Features:
- added
convertAst
utility to produce a flattened and wrapped version of the AST
2.14.0
Features:
- added
isDeleteExpression
- added
getLineBreakStyle
2.13.1
Bugfixes:
- fixed name of
isJsxFragment
2.13.0
Features:
- added support for
JsxFragment
introduced in typescript@2.6.2 - added corresponding typeguard functions
2.12.2
Bugfixes:
endsControlFlow
- added missing logic for labeled statement, iteration statements and try-catch
- added missing logic for
break
andcontinue
with labels - take all jump statements into account, not only the last statement
isValidIdentifier
andisValidNumericLiteral
handle irregular whitespacefindImports
searches in ambient modules inside regular.ts
files (not only.d.ts
)canHaveJsDoc
is now a typeguard
2.12.1
Bugfixes:
forEachTokenWithTrivia
- handles irregular whitespace and no longer visits some tokens twice
- correctly calculates the range of JsxText
2.12.0
API-Changes:
- deprecated
ImportOptions
if favor of the newImportKind
enum
2.11.2
Bugfixes:
parseJsDocOfNode
: set correctpos
,end
andparent
properties. Also affectsgetJsDoc
ofEndOfFileToken
2.11.1
Bugfixes:
collectVariableUsage
: correctly consider catch binding as block scoped declaration inside catch block
2.11.0
Bugfixes:
getJsDoc
now correctly returns JsDoc forEndOfFileToken
Features:
- added utility
parseJsDocOfNode
2.10.0
Features:
- added utility
findImports
to find all kinds of imports in a source file
2.9.0
Features:
- added typeguard
isMappedTypeNode
- added utilities
canHaveJsDoc
andgetJsDoc
2.8.2
Bugfixes:
collectVariableUsage
: handle global augmentation like other module augmentations
2.8.1
Bugfixes:
- Support
typescript@2.5.1
with optional catch binding collectVariableUsage
fixed a bug where method decorator had method's parameters in scope
2.8.0
- Compatibility with the latest typescript nightly
- Added
getIdentifierText
to unescape identifiers across typescript versions
2.7.1
Bugfixes:
isReassignmentTarget
don't returntrue
for right side of assignment
2.7.0
Features:
- Added
isReassignmentTarget
utility
2.6.1
Bugfixes:
getDeclarationDomain
now returnsundefined
for Parameter in IndexSignaturecollectVariableUsage
ignores Parameter in IndexSignature
2.6.0
Bugfixes:
collectVariableUsage
:- don't merge imports with global declarations
- treat everything in a declaration file as exported if there is no explicit
export {};
isExpressionValueUsed
: handle destructuring infor...of
Features:
- Added
getModifier
utility - Added
DeclarationDomain.Import
to distinguish imports from other declarations
2.5.1
Bugfixes:
collectVariableUsage
ignore jump labels as inbreak label;
2.5.0
Bugfixes:
isFunctionWithBody
handles constructor overload correctly.
Features:
- Implemented
isExpressionValueUsed
to check whether the result of an expression is actually used. - Implemented
getDeclarationDomain
to determine if a given declaration introduces a new symbol in the value or type domain.
collectVariableUses
is now usable
- no longer ignores signatures and its parameters
- don't merge declarations and uses across domains
- no longer marks exceptions in catch clause or parameter properties as exported
- fixed exports of namespaces
- fixed scoping of ClassExpression name
- correcly handle ambient namespaces and module augmentations
- fixed how
: typeof foo
is handled for parameters and function return type - still WIP:
export {Foo as Bar}
inside ambient namespaces and modules
2.4.0
Bugfixes:
getLineRanges
:contentLength
now contains the correct line length when there are multiple consecutive line break charactersgetTokenAtPosition
: don't match tokens that end at the specified position (because that's already outside of their range)- deprecated the misnamed
isModfierFlagSet
, use the newisModifierFlagSet
instead
Features:
- Added typeguard:
isJsDoc
- Added experimental scope and usage analysis (
getUsageDomain
andcollectVariableUsage
)
2.3.0
Bugfixes:
forEachComment
no longer omits some comments when callback returns a truthy valueisPositionInComment
fixed false positive inside JSXText
Features:
- Added utility:
getCommentAtPosition
2.2.0
Bugfixes:
- Fixed bit value of
SideEffectOptions.JsxElement
to be a power of 2
Features:
- Added utilities:
getTokenAtPosition
andisPositionInComment
2.1.0
Features:
- Added typeguard
isExpression
- Added utilities:
hasSideEffects
,getDeclarationOfBindingElement
2.0.0
Breaking Changes:
- Dropped compatibility with
typescript@<2.1.0
- Removed misnamed
isNumericliteral
, useisNumericLiteral
instead (notice the uppercase L) - Removed
isEnumLiteralType
which will cause compile errors with typescript@2.4.0 - Refactored directory structure: all imports that referenced subdirectories (e.g.
require('tsutils/src/typeguard')
will be broken
Features:
- New directory structure allows imports of typeguards or utils independently, e.g. (
require('tsutils/typeguard')
)
1.9.1
Bugfixes:
isObjectFlagSet
now uses the correctobjectFlags
property
1.9.0
Bugfixes:
getNextToken
no longer omitsEndOfFileToken
when there is no trivia before EOF. That means the only inputs wheregetNextToken
returnsundefined
areSourceFile
andEndOfFileToken
Features:
- Added typeguards for types
- Added utilities for flag checking:
isNodeFlagSet
,isTypeFlagSet
,isSymbolFlagSet
,isObjectFlagSet
,isModifierFlagSet
1.8.0
Features:
- Support peer dependency of typescript nightlies of 2.4.0
- Added typeguards:
isJsxAttributes
,isIntersectionTypeNode
,isTypeOperatorNode
,isTypePredicateNode
,isTypeQueryNode
,isUnionTypeNode
1.7.0
Bugfixes:
isFunctionScopeBoundary
now handles Interfaces, TypeAliases, FunctionSignatures, etc
Features:
- Added utilities:
isThisParameter
,isSameLine
andisFunctionWithBody
1.6.0
Features:
- Add
isValidPropertyAccess
,isValidNumericLiteral
andisValidPropertyName
1.5.0
Features:
- Add
isValidIdentifier
1.4.0
Features:
- Add
contentLength
property to the result ofgetLineRanges
1.3.0
Bugfixes:
canHaveLeadingTrivia
:- Fix property access on undefined parent reference
- Fixes: palantir/tslint#2330
hasOwnThisReference
: now includes accessors on object literals
Features:
- Typeguards:
- isTypeParameterDeclaration
- isEnitityName
1.2.2
Bugfixes:
hasOwnThisReference
:- exclude overload signatures of function declarations
- add method declarations on object literals
1.2.1
Bugfixes:
- Fix name of
isNumericLiteral
1.2.0
Features:
- Typeguards:
- isEnumMember
- isExpressionWithTypeArguments
- isImportSpecifier
- Utilities:
- isJsDocKind, isTypeNodeKind
- Allow typescript@next in peerDependencies
1.1.0
Bugfixes:
- Fix isBlockScopeBoundary: Remove WithStatement, IfStatment, DoStatement and WhileStatement because they are no scope boundary whitout a block.
Features:
- Added more typeguards:
- isAssertionExpression
- isEmptyStatement
- isJsxAttributeLike
- isJsxOpeningLikeElement
- isNonNullExpression
- isSyntaxList
- Utilities:
- getNextToken, getPreviousToken
- hasOwnThisReference
- getLineRanges
1.0.0
Features:
- Initial implementation of typeguards
- Utilities:
- getChildOfKind
- isNodeKind, isAssignmentKind
- hasModifier, isParameterProperty, hasAccessModifier
- getPreviousStatement, getNextStatement
- getPropertyName
- forEachDestructuringIdentifier, forEachDeclaredVariable
- getVariableDeclarationKind, isBlockScopedVariableDeclarationList, isBlockScopedVariableDeclaration
- isScopeBoundary, isFunctionScopeBoundary, isBlockScopeBoundary
- forEachToken, forEachTokenWithTrivia, forEachComment
- endsControlFlow