aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tsutils
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-20 02:56:13 +0200
commitbbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch)
treec58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/tsutils
parent003fb34971cf63466184351b4db5f7c67df4f444 (diff)
downloadwallet-core-bbff7403fbf46f9ad92240ac213df8d30ef31b64.tar.xz
update packages
Diffstat (limited to 'node_modules/tsutils')
-rw-r--r--node_modules/tsutils/CHANGELOG.md199
-rw-r--r--node_modules/tsutils/README.md31
-rw-r--r--node_modules/tsutils/package.json43
-rw-r--r--node_modules/tsutils/typeguard/node.d.ts146
-rw-r--r--node_modules/tsutils/typeguard/node.js654
-rw-r--r--node_modules/tsutils/typeguard/type.d.ts15
-rw-r--r--node_modules/tsutils/typeguard/type.js61
-rw-r--r--node_modules/tsutils/util/control-flow.d.ts7
-rw-r--r--node_modules/tsutils/util/control-flow.js149
-rw-r--r--node_modules/tsutils/util/index.d.ts1
-rw-r--r--node_modules/tsutils/util/index.js3
-rw-r--r--node_modules/tsutils/util/type.d.ts5
-rw-r--r--node_modules/tsutils/util/type.js56
-rw-r--r--node_modules/tsutils/util/usage.d.ts4
-rw-r--r--node_modules/tsutils/util/usage.js97
-rw-r--r--node_modules/tsutils/util/util.d.ts32
-rw-r--r--node_modules/tsutils/util/util.js173
17 files changed, 627 insertions, 1049 deletions
diff --git a/node_modules/tsutils/CHANGELOG.md b/node_modules/tsutils/CHANGELOG.md
index 39fc85e41..be7f0c92d 100644
--- a/node_modules/tsutils/CHANGELOG.md
+++ b/node_modules/tsutils/CHANGELOG.md
@@ -1,3 +1,202 @@
+# 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](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` and `forEachTokenWithTrivia` 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')`) to `findImports` via `ImportKind.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](https://github.com/Microsoft/TypeScript/issues/22825) and [Microsoft/TypeScript#22769](https://github.com/Microsoft/TypeScript/issues/22769)
+
+# 2.25.0
+
+**Features:**
+
+* added utilities: `isStatementInAmbientContext` and `isAmbientModuleBlock`
+
+# 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 and `infer T`, which will be introduced in TypeScript@2.8.0 and are already available in nightly builds
+* `isLiteralType` no longer returns true for `ts.TypeFlags.BooleanLiteral` as this is not a `ts.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` and `isPositionInComment`: 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 a `NodeWrap` and returns the most deeply nested NodeWrap that contains the given position
+
+# 2.18.0
+
+**Features:**
+
+* `getControlFlowEnd` accepts BlockLike as argument
+
+**Bugfixes:**
+
+* `getControlFlowEnd` and `endsControlFlow`: correctly handle nested LabeledStatements
+* `endsControlFlow` 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.
+ * :warning: this fix may change the returned value if you relied on the buggy behavior
+
+**Deprecations:**
+
+* deprecated overload of `getControlFlowEnd` that contains the `label` parameter. This parameter is no longer used and should no longer be passed to the function.
+
+# 2.17.1
+
+**Bugfixes:**
+
+* `getControlFlowEnd` and `endsControlFlow` (#22)
+ * ThrowStatements inside `try` are filtered out if there is a `catch` clause
+ * TryStatements with `catch` only end control flow if `try` AND `catch` definitely end control flow
+
+# 2.17.0
+
+**Features:**
+
+* added `kind` property to `NodeWrap`
+* added `getControlFlowEnd` to public API
+
+# 2.16.0
+
+**Features:**
+
+* added `isDecorator` and `isCallLikeExpression` 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:**
diff --git a/node_modules/tsutils/README.md b/node_modules/tsutils/README.md
index 785e98609..9dfef9530 100644
--- a/node_modules/tsutils/README.md
+++ b/node_modules/tsutils/README.md
@@ -1,5 +1,7 @@
# Utility functions for working with typescript's AST
+[![Greenkeeper badge](https://badges.greenkeeper.io/ajafff/tsutils.svg)](https://greenkeeper.io/)
+
## Usage
This package consists of two major parts: utilities and typeguard functions.
@@ -29,4 +31,31 @@ import { forEachComment, forEachToken } from "tsutils/util";
This package is backwards compatible with typescript 2.1.0 at runtime although compiling might need a newer version of typescript installed.
-Using `typescript@next` might work, but it's not officially supported. If you encounter any bugs, please open an issue. \ No newline at end of file
+Using `typescript@next` might work, but it's not officially supported. If you encounter any bugs, please open an issue.
+
+For compatibility with older versions of TypeScript typeguard functions are separated by TypeScript version. If you are stuck on `typescript@2.8`, you should import directly from the submodule for that version:
+
+```js
+// all typeguards compatible with typescript@2.8
+import { isIdentifier } from "tsutils/typeguard/2.8";
+// you can even use nested submodules
+import { isIdentifier } from "tsutils/typeguard/2.8/node";
+
+// all typeguards compatible with typescript@2.9 (includes those of 2.8)
+import { isIdentifier } from "tsutils/typeguard/2.9";
+
+// always points to the latest stable version (2.9 as of writing this)
+import { isIdentifier } from "tsutils/typeguard";
+import { isIdentifier } from "tsutils";
+
+// always points to the typeguards for the next TypeScript version (3.0 as of writing this)
+import { isIdentifier } from "tsutils/typeguard/next";
+```
+
+Note that if you are also using utility functions, you should prefer the relevant submodule:
+
+```js
+// importing directly from 'tsutils' would pull in the latest typeguards
+import { forEachToken } from 'tsutils/util';
+import { isIdentifier } from 'tsutils/typeguard/2.8';
+```
diff --git a/node_modules/tsutils/package.json b/node_modules/tsutils/package.json
index d9c332ac7..98eecbe0f 100644
--- a/node_modules/tsutils/package.json
+++ b/node_modules/tsutils/package.json
@@ -1,17 +1,19 @@
{
"name": "tsutils",
- "version": "2.13.0",
+ "version": "2.29.0",
"description": "utilities for working with typescript's AST",
"scripts": {
"compile": "rm -rf {,util,typeguard,test/**}/*.js; tsc -p .",
- "lint": "tslint -p . -e 'test/rules/*/*Rule.ts'",
- "lint:fix": "tslint --fix -p ./tsconfig.json",
- "test": "mocha test/*Tests.js; tslint --test test/rules/*/tslint.json",
- "verify": "npm run compile && npm run lint && npm run coverage",
+ "lint:tslint": "wotan -m @fimbul/valtyr",
+ "lint:wotan": "wotan",
+ "lint": "run-p lint:*",
+ "test": "mocha test/*Tests.js && tslint --test 'test/rules/**/tslint.json'",
+ "verify": "run-s compile lint coverage",
"prepublishOnly": "npm run verify",
- "coverage": "rm -rf coverage .nyc_output && nyc npm test",
+ "coverage": "nyc npm test",
"report-coverage": "cat ./coverage/lcov.info | coveralls",
- "github-release": "GITHUB_TOKEN=$(cat ~/github_token.txt) github-release-from-changelog"
+ "github-release": "GITHUB_TOKEN=$(cat ~/github_token.txt) github-release-from-changelog",
+ "postpublish": "git push origin master --tags; npm run github-release"
},
"repository": {
"type": "git",
@@ -29,22 +31,25 @@
"author": "Klaus Meinhardt",
"license": "MIT",
"devDependencies": {
- "@types/chai": "^3.5.2",
- "@types/mocha": "^2.2.41",
- "@types/node": "^7.0.18",
- "chai": "^3.5.0",
- "coveralls": "^2.13.1",
- "github-release-from-changelog": "^1.2.1",
- "mocha": "^3.4.1",
- "nyc": "^11.0.3",
+ "@fimbul/valtyr": "^0.12.0",
+ "@fimbul/wotan": "^0.12.0",
+ "@types/chai": "^4.0.10",
+ "@types/mocha": "^5.0.0",
+ "@types/node": "^10.0.3",
+ "chai": "^4.1.2",
+ "coveralls": "^3.0.0",
+ "github-release-from-changelog": "^1.3.0",
+ "mocha": "^5.0.0",
+ "npm-run-all": "^4.1.2",
+ "nyc": "^12.0.1",
"tslint": "^5.8.0",
- "tslint-consistent-codestyle": "^1.10.0",
- "typescript": "^2.6.2"
+ "tslint-consistent-codestyle": "^1.11.0",
+ "typescript": "^3.0.0-rc"
},
"peerDependencies": {
- "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >= 2.4.0-dev || >= 2.5.0-dev || >= 2.6.0-dev || >= 2.7.0-dev || >= 2.8.0-dev"
+ "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev"
},
"dependencies": {
- "tslib": "^1.7.1"
+ "tslib": "^1.8.1"
}
}
diff --git a/node_modules/tsutils/typeguard/node.d.ts b/node_modules/tsutils/typeguard/node.d.ts
index 132ace162..e161b2129 100644
--- a/node_modules/tsutils/typeguard/node.d.ts
+++ b/node_modules/tsutils/typeguard/node.d.ts
@@ -1,145 +1 @@
-import * as ts from 'typescript';
-export declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclaration;
-export declare function isArrayBindingPattern(node: ts.Node): node is ts.ArrayBindingPattern;
-export declare function isArrayLiteralExpression(node: ts.Node): node is ts.ArrayLiteralExpression;
-export declare function isArrayTypeNode(node: ts.Node): node is ts.ArrayTypeNode;
-export declare function isArrowFunction(node: ts.Node): node is ts.ArrowFunction;
-export declare function isAsExpression(node: ts.Node): node is ts.AsExpression;
-export declare function isAssertionExpression(node: ts.Node): node is ts.AssertionExpression;
-export declare function isAwaitExpression(node: ts.Node): node is ts.AwaitExpression;
-export declare function isBinaryExpression(node: ts.Node): node is ts.BinaryExpression;
-export declare function isBindingElement(node: ts.Node): node is ts.BindingElement;
-export declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern;
-export declare function isBlock(node: ts.Node): node is ts.Block;
-export declare function isBlockLike(node: ts.Node): node is ts.BlockLike;
-export declare function isBreakOrContinueStatement(node: ts.Node): node is ts.BreakOrContinueStatement;
-export declare function isBreakStatement(node: ts.Node): node is ts.BreakStatement;
-export declare function isCallExpression(node: ts.Node): node is ts.CallExpression;
-export declare function isCallSignatureDeclaration(node: ts.Node): node is ts.CallSignatureDeclaration;
-export declare function isCaseBlock(node: ts.Node): node is ts.CaseBlock;
-export declare function isCaseClause(node: ts.Node): node is ts.CaseClause;
-export declare function isCaseOrDefaultClause(node: ts.Node): node is ts.CaseOrDefaultClause;
-export declare function isCatchClause(node: ts.Node): node is ts.CatchClause;
-export declare function isClassDeclaration(node: ts.Node): node is ts.ClassDeclaration;
-export declare function isClassExpression(node: ts.Node): node is ts.ClassExpression;
-export declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDeclaration;
-export declare function isCommaListExpression(node: ts.Node): node is ts.CommaListExpression;
-export declare function isConditionalExpression(node: ts.Node): node is ts.ConditionalExpression;
-export declare function isConstructorDeclaration(node: ts.Node): node is ts.ConstructorDeclaration;
-export declare function isConstructorTypeNode(node: ts.Node): node is ts.ConstructorTypeNode;
-export declare function isConstructSignatureDeclaration(node: ts.Node): node is ts.ConstructSignatureDeclaration;
-export declare function isContinueStatement(node: ts.Node): node is ts.ContinueStatement;
-export declare function isComputedPropertyName(node: ts.Node): node is ts.ComputedPropertyName;
-export declare function isDebuggerStatement(node: ts.Node): node is ts.DebuggerStatement;
-export declare function isDefaultClause(node: ts.Node): node is ts.DefaultClause;
-export declare function isDoStatement(node: ts.Node): node is ts.DoStatement;
-export declare function isElementAccessExpression(node: ts.Node): node is ts.ElementAccessExpression;
-export declare function isEmptyStatement(node: ts.Node): node is ts.EmptyStatement;
-export declare function isEntityName(node: ts.Node): node is ts.EntityName;
-export declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExpression;
-export declare function isEnumDeclaration(node: ts.Node): node is ts.EnumDeclaration;
-export declare function isEnumMember(node: ts.Node): node is ts.EnumMember;
-export declare function isExportAssignment(node: ts.Node): node is ts.ExportAssignment;
-export declare function isExportDeclaration(node: ts.Node): node is ts.ExportDeclaration;
-export declare function isExportSpecifier(node: ts.Node): node is ts.ExportSpecifier;
-export declare function isExpression(node: ts.Node): node is ts.Expression;
-export declare function isExpressionStatement(node: ts.Node): node is ts.ExpressionStatement;
-export declare function isExpressionWithTypeArguments(node: ts.Node): node is ts.ExpressionWithTypeArguments;
-export declare function isExternalModuleReference(node: ts.Node): node is ts.ExternalModuleReference;
-export declare function isForInStatement(node: ts.Node): node is ts.ForInStatement;
-export declare function isForOfStatement(node: ts.Node): node is ts.ForOfStatement;
-export declare function isForStatement(node: ts.Node): node is ts.ForStatement;
-export declare function isFunctionDeclaration(node: ts.Node): node is ts.FunctionDeclaration;
-export declare function isFunctionExpression(node: ts.Node): node is ts.FunctionExpression;
-export declare function isFunctionTypeNode(node: ts.Node): node is ts.FunctionTypeNode;
-export declare function isGetAccessorDeclaration(node: ts.Node): node is ts.GetAccessorDeclaration;
-export declare function isIdentifier(node: ts.Node): node is ts.Identifier;
-export declare function isIfStatement(node: ts.Node): node is ts.IfStatement;
-export declare function isImportClause(node: ts.Node): node is ts.ImportClause;
-export declare function isImportDeclaration(node: ts.Node): node is ts.ImportDeclaration;
-export declare function isImportEqualsDeclaration(node: ts.Node): node is ts.ImportEqualsDeclaration;
-export declare function isImportSpecifier(node: ts.Node): node is ts.ImportSpecifier;
-export declare function isIndexedAccessTypeNode(node: ts.Node): node is ts.IndexedAccessTypeNode;
-export declare function isIndexSignatureDeclaration(node: ts.Node): node is ts.IndexSignatureDeclaration;
-export declare function isInterfaceDeclaration(node: ts.Node): node is ts.InterfaceDeclaration;
-export declare function isIntersectionTypeNode(node: ts.Node): node is ts.IntersectionTypeNode;
-export declare function isIterationStatement(node: ts.Node): node is ts.IterationStatement;
-export declare function isJsDoc(node: ts.Node): node is ts.JSDoc;
-export declare function isJsxAttribute(node: ts.Node): node is ts.JsxAttribute;
-export declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike;
-export declare function isJsxAttributes(node: ts.Node): node is ts.JsxAttributes;
-export declare function isJsxClosingElement(node: ts.Node): node is ts.JsxClosingElement;
-export declare function isJsxClosingFragment(node: ts.Node): node is ts.JsxClosingFragment;
-export declare function isJsxElement(node: ts.Node): node is ts.JsxElement;
-export declare function isJsxExpression(node: ts.Node): node is ts.JsxExpression;
-export declare function isJsxFramgment(node: ts.Node): node is ts.JsxFragment;
-export declare function isJsxOpeningElement(node: ts.Node): node is ts.JsxOpeningElement;
-export declare function isJsxOpeningFragment(node: ts.Node): node is ts.JsxOpeningFragment;
-export declare function isJsxOpeningLikeElement(node: ts.Node): node is ts.JsxOpeningLikeElement;
-export declare function isJsxSelfClosingElement(node: ts.Node): node is ts.JsxSelfClosingElement;
-export declare function isJsxSpreadAttribute(node: ts.Node): node is ts.JsxSpreadAttribute;
-export declare function isJsxText(node: ts.Node): node is ts.JsxText;
-export declare function isLabeledStatement(node: ts.Node): node is ts.LabeledStatement;
-export declare function isLiteralExpression(node: ts.Node): node is ts.LiteralExpression;
-export declare function isMappedTypeNode(node: ts.Node): node is ts.MappedTypeNode;
-export declare function isMetaProperty(node: ts.Node): node is ts.MetaProperty;
-export declare function isMethodDeclaration(node: ts.Node): node is ts.MethodDeclaration;
-export declare function isMethodSignature(node: ts.Node): node is ts.MethodSignature;
-export declare function isModuleBlock(node: ts.Node): node is ts.ModuleBlock;
-export declare function isModuleDeclaration(node: ts.Node): node is ts.ModuleDeclaration;
-export declare function isNamedExports(node: ts.Node): node is ts.NamedExports;
-export declare function isNamedImports(node: ts.Node): node is ts.NamedImports;
-export declare function isNamespaceDeclaration(node: ts.Node): node is ts.NamespaceDeclaration;
-export declare function isNamespaceImport(node: ts.Node): node is ts.NamespaceImport;
-export declare function isNamespaceExportDeclaration(node: ts.Node): node is ts.NamespaceExportDeclaration;
-export declare function isNewExpression(node: ts.Node): node is ts.NewExpression;
-export declare function isNonNullExpression(node: ts.Node): node is ts.NonNullExpression;
-export declare function isNoSubstitutionTemplateLiteral(node: ts.Node): node is ts.NoSubstitutionTemplateLiteral;
-export declare function isNumericLiteral(node: ts.Node): node is ts.NumericLiteral;
-export declare function isObjectBindingPattern(node: ts.Node): node is ts.ObjectBindingPattern;
-export declare function isObjectLiteralExpression(node: ts.Node): node is ts.ObjectLiteralExpression;
-export declare function isOmittedExpression(node: ts.Node): node is ts.OmittedExpression;
-export declare function isParameterDeclaration(node: ts.Node): node is ts.ParameterDeclaration;
-export declare function isParenthesizedExpression(node: ts.Node): node is ts.ParenthesizedExpression;
-export declare function isParenthesizedTypeNode(node: ts.Node): node is ts.ParenthesizedTypeNode;
-export declare function isPostfixUnaryExpression(node: ts.Node): node is ts.PostfixUnaryExpression;
-export declare function isPrefixUnaryExpression(node: ts.Node): node is ts.PrefixUnaryExpression;
-export declare function isPropertyAccessExpression(node: ts.Node): node is ts.PropertyAccessExpression;
-export declare function isPropertyAssignment(node: ts.Node): node is ts.PropertyAssignment;
-export declare function isPropertyDeclaration(node: ts.Node): node is ts.PropertyDeclaration;
-export declare function isPropertySignature(node: ts.Node): node is ts.PropertySignature;
-export declare function isQualifiedName(node: ts.Node): node is ts.QualifiedName;
-export declare function isRegularExpressionLiteral(node: ts.Node): node is ts.RegularExpressionLiteral;
-export declare function isReturnStatement(node: ts.Node): node is ts.ReturnStatement;
-export declare function isSetAccessorDeclaration(node: ts.Node): node is ts.SetAccessorDeclaration;
-export declare function isShorthandPropertyAssignment(node: ts.Node): node is ts.ShorthandPropertyAssignment;
-export declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDeclaration;
-export declare function isSourceFile(node: ts.Node): node is ts.SourceFile;
-export declare function isSpreadAssignment(node: ts.Node): node is ts.SpreadAssignment;
-export declare function isSpreadElement(node: ts.Node): node is ts.SpreadElement;
-export declare function isStringLiteral(node: ts.Node): node is ts.StringLiteral;
-export declare function isSwitchStatement(node: ts.Node): node is ts.SwitchStatement;
-export declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList;
-export declare function isTaggedTemplateExpression(node: ts.Node): node is ts.TaggedTemplateExpression;
-export declare function isTemplateExpression(node: ts.Node): node is ts.TemplateExpression;
-export declare function isTemplateLiteral(node: ts.Node): node is ts.TemplateLiteral;
-export declare function isTextualLiteral(node: ts.Node): node is ts.LiteralExpression;
-export declare function isThrowStatement(node: ts.Node): node is ts.ThrowStatement;
-export declare function isTryStatement(node: ts.Node): node is ts.TryStatement;
-export declare function isTupleTypeNode(node: ts.Node): node is ts.TupleTypeNode;
-export declare function isTypeAliasDeclaration(node: ts.Node): node is ts.TypeAliasDeclaration;
-export declare function isTypeAssertion(node: ts.Node): node is ts.TypeAssertion;
-export declare function isTypeLiteralNode(node: ts.Node): node is ts.TypeLiteralNode;
-export declare function isTypeOfExpression(node: ts.Node): node is ts.TypeOfExpression;
-export declare function isTypeOperatorNode(node: ts.Node): node is ts.TypeOperatorNode;
-export declare function isTypeParameterDeclaration(node: ts.Node): node is ts.TypeParameterDeclaration;
-export declare function isTypePredicateNode(node: ts.Node): node is ts.TypePredicateNode;
-export declare function isTypeReferenceNode(node: ts.Node): node is ts.TypeReferenceNode;
-export declare function isTypeQueryNode(node: ts.Node): node is ts.TypeQueryNode;
-export declare function isUnionTypeNode(node: ts.Node): node is ts.UnionTypeNode;
-export declare function isVariableDeclaration(node: ts.Node): node is ts.VariableDeclaration;
-export declare function isVariableStatement(node: ts.Node): node is ts.VariableStatement;
-export declare function isVariableDeclarationList(node: ts.Node): node is ts.VariableDeclarationList;
-export declare function isVoidExpression(node: ts.Node): node is ts.VoidExpression;
-export declare function isWhileStatement(node: ts.Node): node is ts.WhileStatement;
-export declare function isWithStatement(node: ts.Node): node is ts.WithStatement;
+export * from './2.9/node';
diff --git a/node_modules/tsutils/typeguard/node.js b/node_modules/tsutils/typeguard/node.js
index dd1984f92..ebd58a43a 100644
--- a/node_modules/tsutils/typeguard/node.js
+++ b/node_modules/tsutils/typeguard/node.js
@@ -1,653 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var ts = require("typescript");
-function isAccessorDeclaration(node) {
- return node.kind === ts.SyntaxKind.GetAccessor ||
- node.kind === ts.SyntaxKind.SetAccessor;
-}
-exports.isAccessorDeclaration = isAccessorDeclaration;
-function isArrayBindingPattern(node) {
- return node.kind === ts.SyntaxKind.ArrayBindingPattern;
-}
-exports.isArrayBindingPattern = isArrayBindingPattern;
-function isArrayLiteralExpression(node) {
- return node.kind === ts.SyntaxKind.ArrayLiteralExpression;
-}
-exports.isArrayLiteralExpression = isArrayLiteralExpression;
-function isArrayTypeNode(node) {
- return node.kind === ts.SyntaxKind.ArrayType;
-}
-exports.isArrayTypeNode = isArrayTypeNode;
-function isArrowFunction(node) {
- return node.kind === ts.SyntaxKind.ArrowFunction;
-}
-exports.isArrowFunction = isArrowFunction;
-function isAsExpression(node) {
- return node.kind === ts.SyntaxKind.AsExpression;
-}
-exports.isAsExpression = isAsExpression;
-function isAssertionExpression(node) {
- return node.kind === ts.SyntaxKind.AsExpression ||
- node.kind === ts.SyntaxKind.TypeAssertionExpression;
-}
-exports.isAssertionExpression = isAssertionExpression;
-function isAwaitExpression(node) {
- return node.kind === ts.SyntaxKind.AwaitExpression;
-}
-exports.isAwaitExpression = isAwaitExpression;
-function isBinaryExpression(node) {
- return node.kind === ts.SyntaxKind.BinaryExpression;
-}
-exports.isBinaryExpression = isBinaryExpression;
-function isBindingElement(node) {
- return node.kind === ts.SyntaxKind.BindingElement;
-}
-exports.isBindingElement = isBindingElement;
-function isBindingPattern(node) {
- return node.kind === ts.SyntaxKind.ArrayBindingPattern ||
- node.kind === ts.SyntaxKind.ObjectBindingPattern;
-}
-exports.isBindingPattern = isBindingPattern;
-function isBlock(node) {
- return node.kind === ts.SyntaxKind.Block;
-}
-exports.isBlock = isBlock;
-function isBlockLike(node) {
- return node.statements !== undefined;
-}
-exports.isBlockLike = isBlockLike;
-function isBreakOrContinueStatement(node) {
- return node.kind === ts.SyntaxKind.BreakStatement ||
- node.kind === ts.SyntaxKind.ContinueStatement;
-}
-exports.isBreakOrContinueStatement = isBreakOrContinueStatement;
-function isBreakStatement(node) {
- return node.kind === ts.SyntaxKind.BreakStatement;
-}
-exports.isBreakStatement = isBreakStatement;
-function isCallExpression(node) {
- return node.kind === ts.SyntaxKind.CallExpression;
-}
-exports.isCallExpression = isCallExpression;
-function isCallSignatureDeclaration(node) {
- return node.kind === ts.SyntaxKind.CallSignature;
-}
-exports.isCallSignatureDeclaration = isCallSignatureDeclaration;
-function isCaseBlock(node) {
- return node.kind === ts.SyntaxKind.CaseBlock;
-}
-exports.isCaseBlock = isCaseBlock;
-function isCaseClause(node) {
- return node.kind === ts.SyntaxKind.CaseClause;
-}
-exports.isCaseClause = isCaseClause;
-function isCaseOrDefaultClause(node) {
- return node.kind === ts.SyntaxKind.CaseClause ||
- node.kind === ts.SyntaxKind.DefaultClause;
-}
-exports.isCaseOrDefaultClause = isCaseOrDefaultClause;
-function isCatchClause(node) {
- return node.kind === ts.SyntaxKind.CatchClause;
-}
-exports.isCatchClause = isCatchClause;
-function isClassDeclaration(node) {
- return node.kind === ts.SyntaxKind.ClassDeclaration;
-}
-exports.isClassDeclaration = isClassDeclaration;
-function isClassExpression(node) {
- return node.kind === ts.SyntaxKind.ClassExpression;
-}
-exports.isClassExpression = isClassExpression;
-function isClassLikeDeclaration(node) {
- return node.kind === ts.SyntaxKind.ClassDeclaration ||
- node.kind === ts.SyntaxKind.ClassExpression;
-}
-exports.isClassLikeDeclaration = isClassLikeDeclaration;
-function isCommaListExpression(node) {
- return node.kind === ts.SyntaxKind.CommaListExpression;
-}
-exports.isCommaListExpression = isCommaListExpression;
-function isConditionalExpression(node) {
- return node.kind === ts.SyntaxKind.ConditionalExpression;
-}
-exports.isConditionalExpression = isConditionalExpression;
-function isConstructorDeclaration(node) {
- return node.kind === ts.SyntaxKind.Constructor;
-}
-exports.isConstructorDeclaration = isConstructorDeclaration;
-function isConstructorTypeNode(node) {
- return node.kind === ts.SyntaxKind.ConstructorType;
-}
-exports.isConstructorTypeNode = isConstructorTypeNode;
-function isConstructSignatureDeclaration(node) {
- return node.kind === ts.SyntaxKind.ConstructSignature;
-}
-exports.isConstructSignatureDeclaration = isConstructSignatureDeclaration;
-function isContinueStatement(node) {
- return node.kind === ts.SyntaxKind.ContinueStatement;
-}
-exports.isContinueStatement = isContinueStatement;
-function isComputedPropertyName(node) {
- return node.kind === ts.SyntaxKind.ComputedPropertyName;
-}
-exports.isComputedPropertyName = isComputedPropertyName;
-function isDebuggerStatement(node) {
- return node.kind === ts.SyntaxKind.DebuggerStatement;
-}
-exports.isDebuggerStatement = isDebuggerStatement;
-function isDefaultClause(node) {
- return node.kind === ts.SyntaxKind.DefaultClause;
-}
-exports.isDefaultClause = isDefaultClause;
-function isDoStatement(node) {
- return node.kind === ts.SyntaxKind.DoStatement;
-}
-exports.isDoStatement = isDoStatement;
-function isElementAccessExpression(node) {
- return node.kind === ts.SyntaxKind.ElementAccessExpression;
-}
-exports.isElementAccessExpression = isElementAccessExpression;
-function isEmptyStatement(node) {
- return node.kind === ts.SyntaxKind.EmptyStatement;
-}
-exports.isEmptyStatement = isEmptyStatement;
-function isEntityName(node) {
- return node.kind === ts.SyntaxKind.Identifier || isQualifiedName(node);
-}
-exports.isEntityName = isEntityName;
-function isEntityNameExpression(node) {
- return node.kind === ts.SyntaxKind.Identifier ||
- isPropertyAccessExpression(node) && isEntityNameExpression(node.expression);
-}
-exports.isEntityNameExpression = isEntityNameExpression;
-function isEnumDeclaration(node) {
- return node.kind === ts.SyntaxKind.EnumDeclaration;
-}
-exports.isEnumDeclaration = isEnumDeclaration;
-function isEnumMember(node) {
- return node.kind === ts.SyntaxKind.EnumMember;
-}
-exports.isEnumMember = isEnumMember;
-function isExportAssignment(node) {
- return node.kind === ts.SyntaxKind.ExportAssignment;
-}
-exports.isExportAssignment = isExportAssignment;
-function isExportDeclaration(node) {
- return node.kind === ts.SyntaxKind.ExportDeclaration;
-}
-exports.isExportDeclaration = isExportDeclaration;
-function isExportSpecifier(node) {
- return node.kind === ts.SyntaxKind.ExportSpecifier;
-}
-exports.isExportSpecifier = isExportSpecifier;
-function isExpression(node) {
- switch (node.kind) {
- case ts.SyntaxKind.ArrayLiteralExpression:
- case ts.SyntaxKind.ArrowFunction:
- case ts.SyntaxKind.AsExpression:
- case ts.SyntaxKind.AwaitExpression:
- case ts.SyntaxKind.BinaryExpression:
- case ts.SyntaxKind.CallExpression:
- case ts.SyntaxKind.ClassExpression:
- case ts.SyntaxKind.CommaListExpression:
- case ts.SyntaxKind.ConditionalExpression:
- case ts.SyntaxKind.DeleteExpression:
- case ts.SyntaxKind.ElementAccessExpression:
- case ts.SyntaxKind.FalseKeyword:
- case ts.SyntaxKind.FunctionExpression:
- case ts.SyntaxKind.Identifier:
- case ts.SyntaxKind.JsxElement:
- case ts.SyntaxKind.JsxFragment:
- case ts.SyntaxKind.JsxExpression:
- case ts.SyntaxKind.JsxOpeningElement:
- case ts.SyntaxKind.JsxOpeningFragment:
- case ts.SyntaxKind.JsxSelfClosingElement:
- case ts.SyntaxKind.MetaProperty:
- case ts.SyntaxKind.NewExpression:
- case ts.SyntaxKind.NonNullExpression:
- case ts.SyntaxKind.NoSubstitutionTemplateLiteral:
- case ts.SyntaxKind.NullKeyword:
- case ts.SyntaxKind.NumericLiteral:
- case ts.SyntaxKind.ObjectLiteralExpression:
- case ts.SyntaxKind.OmittedExpression:
- case ts.SyntaxKind.ParenthesizedExpression:
- case ts.SyntaxKind.PostfixUnaryExpression:
- case ts.SyntaxKind.PrefixUnaryExpression:
- case ts.SyntaxKind.PropertyAccessExpression:
- case ts.SyntaxKind.RegularExpressionLiteral:
- case ts.SyntaxKind.SpreadElement:
- case ts.SyntaxKind.StringLiteral:
- case ts.SyntaxKind.SuperKeyword:
- case ts.SyntaxKind.TaggedTemplateExpression:
- case ts.SyntaxKind.TemplateExpression:
- case ts.SyntaxKind.ThisKeyword:
- case ts.SyntaxKind.TrueKeyword:
- case ts.SyntaxKind.TypeAssertionExpression:
- case ts.SyntaxKind.TypeOfExpression:
- case ts.SyntaxKind.VoidExpression:
- case ts.SyntaxKind.YieldExpression:
- return true;
- default:
- return false;
- }
-}
-exports.isExpression = isExpression;
-function isExpressionStatement(node) {
- return node.kind === ts.SyntaxKind.ExpressionStatement;
-}
-exports.isExpressionStatement = isExpressionStatement;
-function isExpressionWithTypeArguments(node) {
- return node.kind === ts.SyntaxKind.ExpressionWithTypeArguments;
-}
-exports.isExpressionWithTypeArguments = isExpressionWithTypeArguments;
-function isExternalModuleReference(node) {
- return node.kind === ts.SyntaxKind.ExternalModuleReference;
-}
-exports.isExternalModuleReference = isExternalModuleReference;
-function isForInStatement(node) {
- return node.kind === ts.SyntaxKind.ForInStatement;
-}
-exports.isForInStatement = isForInStatement;
-function isForOfStatement(node) {
- return node.kind === ts.SyntaxKind.ForOfStatement;
-}
-exports.isForOfStatement = isForOfStatement;
-function isForStatement(node) {
- return node.kind === ts.SyntaxKind.ForStatement;
-}
-exports.isForStatement = isForStatement;
-function isFunctionDeclaration(node) {
- return node.kind === ts.SyntaxKind.FunctionDeclaration;
-}
-exports.isFunctionDeclaration = isFunctionDeclaration;
-function isFunctionExpression(node) {
- return node.kind === ts.SyntaxKind.FunctionExpression;
-}
-exports.isFunctionExpression = isFunctionExpression;
-function isFunctionTypeNode(node) {
- return node.kind === ts.SyntaxKind.FunctionType;
-}
-exports.isFunctionTypeNode = isFunctionTypeNode;
-function isGetAccessorDeclaration(node) {
- return node.kind === ts.SyntaxKind.GetAccessor;
-}
-exports.isGetAccessorDeclaration = isGetAccessorDeclaration;
-function isIdentifier(node) {
- return node.kind === ts.SyntaxKind.Identifier;
-}
-exports.isIdentifier = isIdentifier;
-function isIfStatement(node) {
- return node.kind === ts.SyntaxKind.IfStatement;
-}
-exports.isIfStatement = isIfStatement;
-function isImportClause(node) {
- return node.kind === ts.SyntaxKind.ImportClause;
-}
-exports.isImportClause = isImportClause;
-function isImportDeclaration(node) {
- return node.kind === ts.SyntaxKind.ImportDeclaration;
-}
-exports.isImportDeclaration = isImportDeclaration;
-function isImportEqualsDeclaration(node) {
- return node.kind === ts.SyntaxKind.ImportEqualsDeclaration;
-}
-exports.isImportEqualsDeclaration = isImportEqualsDeclaration;
-function isImportSpecifier(node) {
- return node.kind === ts.SyntaxKind.ImportSpecifier;
-}
-exports.isImportSpecifier = isImportSpecifier;
-function isIndexedAccessTypeNode(node) {
- return node.kind === ts.SyntaxKind.IndexedAccessType;
-}
-exports.isIndexedAccessTypeNode = isIndexedAccessTypeNode;
-function isIndexSignatureDeclaration(node) {
- return node.kind === ts.SyntaxKind.IndexSignature;
-}
-exports.isIndexSignatureDeclaration = isIndexSignatureDeclaration;
-function isInterfaceDeclaration(node) {
- return node.kind === ts.SyntaxKind.InterfaceDeclaration;
-}
-exports.isInterfaceDeclaration = isInterfaceDeclaration;
-function isIntersectionTypeNode(node) {
- return node.kind === ts.SyntaxKind.IntersectionType;
-}
-exports.isIntersectionTypeNode = isIntersectionTypeNode;
-function isIterationStatement(node) {
- switch (node.kind) {
- case ts.SyntaxKind.ForStatement:
- case ts.SyntaxKind.ForOfStatement:
- case ts.SyntaxKind.ForInStatement:
- case ts.SyntaxKind.WhileStatement:
- case ts.SyntaxKind.DoStatement:
- return true;
- default:
- return false;
- }
-}
-exports.isIterationStatement = isIterationStatement;
-function isJsDoc(node) {
- return node.kind === ts.SyntaxKind.JSDocComment;
-}
-exports.isJsDoc = isJsDoc;
-function isJsxAttribute(node) {
- return node.kind === ts.SyntaxKind.JsxAttribute;
-}
-exports.isJsxAttribute = isJsxAttribute;
-function isJsxAttributeLike(node) {
- return node.kind === ts.SyntaxKind.JsxAttribute ||
- node.kind === ts.SyntaxKind.JsxSpreadAttribute;
-}
-exports.isJsxAttributeLike = isJsxAttributeLike;
-function isJsxAttributes(node) {
- return node.kind === ts.SyntaxKind.JsxAttributes;
-}
-exports.isJsxAttributes = isJsxAttributes;
-function isJsxClosingElement(node) {
- return node.kind === ts.SyntaxKind.JsxClosingElement;
-}
-exports.isJsxClosingElement = isJsxClosingElement;
-function isJsxClosingFragment(node) {
- return node.kind === ts.SyntaxKind.JsxClosingFragment;
-}
-exports.isJsxClosingFragment = isJsxClosingFragment;
-function isJsxElement(node) {
- return node.kind === ts.SyntaxKind.JsxElement;
-}
-exports.isJsxElement = isJsxElement;
-function isJsxExpression(node) {
- return node.kind === ts.SyntaxKind.JsxExpression;
-}
-exports.isJsxExpression = isJsxExpression;
-function isJsxFramgment(node) {
- return node.kind === ts.SyntaxKind.JsxFragment;
-}
-exports.isJsxFramgment = isJsxFramgment;
-function isJsxOpeningElement(node) {
- return node.kind === ts.SyntaxKind.JsxOpeningElement;
-}
-exports.isJsxOpeningElement = isJsxOpeningElement;
-function isJsxOpeningFragment(node) {
- return node.kind === ts.SyntaxKind.JsxOpeningFragment;
-}
-exports.isJsxOpeningFragment = isJsxOpeningFragment;
-function isJsxOpeningLikeElement(node) {
- return node.kind === ts.SyntaxKind.JsxOpeningElement ||
- node.kind === ts.SyntaxKind.JsxSelfClosingElement;
-}
-exports.isJsxOpeningLikeElement = isJsxOpeningLikeElement;
-function isJsxSelfClosingElement(node) {
- return node.kind === ts.SyntaxKind.JsxSelfClosingElement;
-}
-exports.isJsxSelfClosingElement = isJsxSelfClosingElement;
-function isJsxSpreadAttribute(node) {
- return node.kind === ts.SyntaxKind.JsxSpreadAttribute;
-}
-exports.isJsxSpreadAttribute = isJsxSpreadAttribute;
-function isJsxText(node) {
- return node.kind === ts.SyntaxKind.JsxText;
-}
-exports.isJsxText = isJsxText;
-function isLabeledStatement(node) {
- return node.kind === ts.SyntaxKind.LabeledStatement;
-}
-exports.isLabeledStatement = isLabeledStatement;
-function isLiteralExpression(node) {
- return node.kind >= ts.SyntaxKind.FirstLiteralToken &&
- node.kind <= ts.SyntaxKind.LastLiteralToken;
-}
-exports.isLiteralExpression = isLiteralExpression;
-function isMappedTypeNode(node) {
- return node.kind === ts.SyntaxKind.MappedType;
-}
-exports.isMappedTypeNode = isMappedTypeNode;
-function isMetaProperty(node) {
- return node.kind === ts.SyntaxKind.MetaProperty;
-}
-exports.isMetaProperty = isMetaProperty;
-function isMethodDeclaration(node) {
- return node.kind === ts.SyntaxKind.MethodDeclaration;
-}
-exports.isMethodDeclaration = isMethodDeclaration;
-function isMethodSignature(node) {
- return node.kind === ts.SyntaxKind.MethodSignature;
-}
-exports.isMethodSignature = isMethodSignature;
-function isModuleBlock(node) {
- return node.kind === ts.SyntaxKind.ModuleBlock;
-}
-exports.isModuleBlock = isModuleBlock;
-function isModuleDeclaration(node) {
- return node.kind === ts.SyntaxKind.ModuleDeclaration;
-}
-exports.isModuleDeclaration = isModuleDeclaration;
-function isNamedExports(node) {
- return node.kind === ts.SyntaxKind.NamedExports;
-}
-exports.isNamedExports = isNamedExports;
-function isNamedImports(node) {
- return node.kind === ts.SyntaxKind.NamedImports;
-}
-exports.isNamedImports = isNamedImports;
-function isNamespaceDeclaration(node) {
- return isModuleDeclaration(node) &&
- node.name.kind === ts.SyntaxKind.Identifier &&
- node.body !== undefined &&
- (node.body.kind === ts.SyntaxKind.ModuleBlock ||
- isNamespaceDeclaration(node.body));
-}
-exports.isNamespaceDeclaration = isNamespaceDeclaration;
-function isNamespaceImport(node) {
- return node.kind === ts.SyntaxKind.NamespaceImport;
-}
-exports.isNamespaceImport = isNamespaceImport;
-function isNamespaceExportDeclaration(node) {
- return node.kind === ts.SyntaxKind.NamespaceExportDeclaration;
-}
-exports.isNamespaceExportDeclaration = isNamespaceExportDeclaration;
-function isNewExpression(node) {
- return node.kind === ts.SyntaxKind.NewExpression;
-}
-exports.isNewExpression = isNewExpression;
-function isNonNullExpression(node) {
- return node.kind === ts.SyntaxKind.NonNullExpression;
-}
-exports.isNonNullExpression = isNonNullExpression;
-function isNoSubstitutionTemplateLiteral(node) {
- return node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral;
-}
-exports.isNoSubstitutionTemplateLiteral = isNoSubstitutionTemplateLiteral;
-function isNumericLiteral(node) {
- return node.kind === ts.SyntaxKind.NumericLiteral;
-}
-exports.isNumericLiteral = isNumericLiteral;
-function isObjectBindingPattern(node) {
- return node.kind === ts.SyntaxKind.ObjectBindingPattern;
-}
-exports.isObjectBindingPattern = isObjectBindingPattern;
-function isObjectLiteralExpression(node) {
- return node.kind === ts.SyntaxKind.ObjectLiteralExpression;
-}
-exports.isObjectLiteralExpression = isObjectLiteralExpression;
-function isOmittedExpression(node) {
- return node.kind === ts.SyntaxKind.OmittedExpression;
-}
-exports.isOmittedExpression = isOmittedExpression;
-function isParameterDeclaration(node) {
- return node.kind === ts.SyntaxKind.Parameter;
-}
-exports.isParameterDeclaration = isParameterDeclaration;
-function isParenthesizedExpression(node) {
- return node.kind === ts.SyntaxKind.ParenthesizedExpression;
-}
-exports.isParenthesizedExpression = isParenthesizedExpression;
-function isParenthesizedTypeNode(node) {
- return node.kind === ts.SyntaxKind.ParenthesizedType;
-}
-exports.isParenthesizedTypeNode = isParenthesizedTypeNode;
-function isPostfixUnaryExpression(node) {
- return node.kind === ts.SyntaxKind.PostfixUnaryExpression;
-}
-exports.isPostfixUnaryExpression = isPostfixUnaryExpression;
-function isPrefixUnaryExpression(node) {
- return node.kind === ts.SyntaxKind.PrefixUnaryExpression;
-}
-exports.isPrefixUnaryExpression = isPrefixUnaryExpression;
-function isPropertyAccessExpression(node) {
- return node.kind === ts.SyntaxKind.PropertyAccessExpression;
-}
-exports.isPropertyAccessExpression = isPropertyAccessExpression;
-function isPropertyAssignment(node) {
- return node.kind === ts.SyntaxKind.PropertyAssignment;
-}
-exports.isPropertyAssignment = isPropertyAssignment;
-function isPropertyDeclaration(node) {
- return node.kind === ts.SyntaxKind.PropertyDeclaration;
-}
-exports.isPropertyDeclaration = isPropertyDeclaration;
-function isPropertySignature(node) {
- return node.kind === ts.SyntaxKind.PropertySignature;
-}
-exports.isPropertySignature = isPropertySignature;
-function isQualifiedName(node) {
- return node.kind === ts.SyntaxKind.QualifiedName;
-}
-exports.isQualifiedName = isQualifiedName;
-function isRegularExpressionLiteral(node) {
- return node.kind === ts.SyntaxKind.RegularExpressionLiteral;
-}
-exports.isRegularExpressionLiteral = isRegularExpressionLiteral;
-function isReturnStatement(node) {
- return node.kind === ts.SyntaxKind.ReturnStatement;
-}
-exports.isReturnStatement = isReturnStatement;
-function isSetAccessorDeclaration(node) {
- return node.kind === ts.SyntaxKind.SetAccessor;
-}
-exports.isSetAccessorDeclaration = isSetAccessorDeclaration;
-function isShorthandPropertyAssignment(node) {
- return node.kind === ts.SyntaxKind.ShorthandPropertyAssignment;
-}
-exports.isShorthandPropertyAssignment = isShorthandPropertyAssignment;
-function isSignatureDeclaration(node) {
- return node.parameters !== undefined;
-}
-exports.isSignatureDeclaration = isSignatureDeclaration;
-function isSourceFile(node) {
- return node.kind === ts.SyntaxKind.SourceFile;
-}
-exports.isSourceFile = isSourceFile;
-function isSpreadAssignment(node) {
- return node.kind === ts.SyntaxKind.SpreadAssignment;
-}
-exports.isSpreadAssignment = isSpreadAssignment;
-function isSpreadElement(node) {
- return node.kind === ts.SyntaxKind.SpreadElement;
-}
-exports.isSpreadElement = isSpreadElement;
-function isStringLiteral(node) {
- return node.kind === ts.SyntaxKind.StringLiteral;
-}
-exports.isStringLiteral = isStringLiteral;
-function isSwitchStatement(node) {
- return node.kind === ts.SyntaxKind.SwitchStatement;
-}
-exports.isSwitchStatement = isSwitchStatement;
-function isSyntaxList(node) {
- return node.kind === ts.SyntaxKind.SyntaxList;
-}
-exports.isSyntaxList = isSyntaxList;
-function isTaggedTemplateExpression(node) {
- return node.kind === ts.SyntaxKind.TaggedTemplateExpression;
-}
-exports.isTaggedTemplateExpression = isTaggedTemplateExpression;
-function isTemplateExpression(node) {
- return node.kind === ts.SyntaxKind.TemplateExpression;
-}
-exports.isTemplateExpression = isTemplateExpression;
-function isTemplateLiteral(node) {
- return node.kind === ts.SyntaxKind.TemplateExpression ||
- node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral;
-}
-exports.isTemplateLiteral = isTemplateLiteral;
-function isTextualLiteral(node) {
- return node.kind === ts.SyntaxKind.StringLiteral ||
- node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral;
-}
-exports.isTextualLiteral = isTextualLiteral;
-function isThrowStatement(node) {
- return node.kind === ts.SyntaxKind.ThrowStatement;
-}
-exports.isThrowStatement = isThrowStatement;
-function isTryStatement(node) {
- return node.kind === ts.SyntaxKind.TryStatement;
-}
-exports.isTryStatement = isTryStatement;
-function isTupleTypeNode(node) {
- return node.kind === ts.SyntaxKind.TupleType;
-}
-exports.isTupleTypeNode = isTupleTypeNode;
-function isTypeAliasDeclaration(node) {
- return node.kind === ts.SyntaxKind.TypeAliasDeclaration;
-}
-exports.isTypeAliasDeclaration = isTypeAliasDeclaration;
-function isTypeAssertion(node) {
- return node.kind === ts.SyntaxKind.TypeAssertionExpression;
-}
-exports.isTypeAssertion = isTypeAssertion;
-function isTypeLiteralNode(node) {
- return node.kind === ts.SyntaxKind.TypeLiteral;
-}
-exports.isTypeLiteralNode = isTypeLiteralNode;
-function isTypeOfExpression(node) {
- return node.kind === ts.SyntaxKind.TypeOfExpression;
-}
-exports.isTypeOfExpression = isTypeOfExpression;
-function isTypeOperatorNode(node) {
- return node.kind === ts.SyntaxKind.TypeOperator;
-}
-exports.isTypeOperatorNode = isTypeOperatorNode;
-function isTypeParameterDeclaration(node) {
- return node.kind === ts.SyntaxKind.TypeParameter;
-}
-exports.isTypeParameterDeclaration = isTypeParameterDeclaration;
-function isTypePredicateNode(node) {
- return node.kind === ts.SyntaxKind.TypePredicate;
-}
-exports.isTypePredicateNode = isTypePredicateNode;
-function isTypeReferenceNode(node) {
- return node.kind === ts.SyntaxKind.TypeReference;
-}
-exports.isTypeReferenceNode = isTypeReferenceNode;
-function isTypeQueryNode(node) {
- return node.kind === ts.SyntaxKind.TypeQuery;
-}
-exports.isTypeQueryNode = isTypeQueryNode;
-function isUnionTypeNode(node) {
- return node.kind === ts.SyntaxKind.UnionType;
-}
-exports.isUnionTypeNode = isUnionTypeNode;
-function isVariableDeclaration(node) {
- return node.kind === ts.SyntaxKind.VariableDeclaration;
-}
-exports.isVariableDeclaration = isVariableDeclaration;
-function isVariableStatement(node) {
- return node.kind === ts.SyntaxKind.VariableStatement;
-}
-exports.isVariableStatement = isVariableStatement;
-function isVariableDeclarationList(node) {
- return node.kind === ts.SyntaxKind.VariableDeclarationList;
-}
-exports.isVariableDeclarationList = isVariableDeclarationList;
-function isVoidExpression(node) {
- return node.kind === ts.SyntaxKind.VoidExpression;
-}
-exports.isVoidExpression = isVoidExpression;
-function isWhileStatement(node) {
- return node.kind === ts.SyntaxKind.WhileStatement;
-}
-exports.isWhileStatement = isWhileStatement;
-function isWithStatement(node) {
- return node.kind === ts.SyntaxKind.WithStatement;
-}
-exports.isWithStatement = isWithStatement;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBaUM7QUFFakMsK0JBQXNDLElBQWE7SUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXO1FBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDaEQsQ0FBQztBQUhELHNEQUdDO0FBRUQsK0JBQXNDLElBQWE7SUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztBQUMzRCxDQUFDO0FBRkQsc0RBRUM7QUFFRCxrQ0FBeUMsSUFBYTtJQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDO0FBQzlELENBQUM7QUFGRCw0REFFQztBQUVELHlCQUFnQyxJQUFhO0lBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBQ2pELENBQUM7QUFGRCwwQ0FFQztBQUVELHlCQUFnQyxJQUFhO0lBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0FBQ3JELENBQUM7QUFGRCwwQ0FFQztBQUVELHdCQUErQixJQUFhO0lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0FBQ3BELENBQUM7QUFGRCx3Q0FFQztBQUVELCtCQUFzQyxJQUFhO0lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWTtRQUMzQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUs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 \ No newline at end of file
+var tslib_1 = require("tslib");
+tslib_1.__exportStar(require("./2.9/node"), exports);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQTJCIn0= \ No newline at end of file
diff --git a/node_modules/tsutils/typeguard/type.d.ts b/node_modules/tsutils/typeguard/type.d.ts
index 946b1a071..2490388ca 100644
--- a/node_modules/tsutils/typeguard/type.d.ts
+++ b/node_modules/tsutils/typeguard/type.d.ts
@@ -1,14 +1 @@
-import * as ts from 'typescript';
-export declare function isEnumType(type: ts.Type): type is ts.EnumType;
-export declare function isGenericType(type: ts.Type): type is ts.GenericType;
-export declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessType;
-export declare function isIndexedAccessype(type: ts.Type): type is ts.IndexType;
-export declare function isInterfaceType(type: ts.Type): type is ts.InterfaceType;
-export declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType;
-export declare function isLiteralType(type: ts.Type): type is ts.LiteralType;
-export declare function isObjectType(type: ts.Type): type is ts.ObjectType;
-export declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter;
-export declare function isTypeReference(type: ts.Type): type is ts.TypeReference;
-export declare function isTypeVariable(type: ts.Type): type is ts.TypeVariable;
-export declare function isUnionOrIntersectionType(type: ts.Type): type is ts.UnionOrIntersectionType;
-export declare function isUnionType(type: ts.Type): type is ts.UnionType;
+export * from './2.9/type';
diff --git a/node_modules/tsutils/typeguard/type.js b/node_modules/tsutils/typeguard/type.js
index 0a145ab59..11fc26c8e 100644
--- a/node_modules/tsutils/typeguard/type.js
+++ b/node_modules/tsutils/typeguard/type.js
@@ -1,60 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var ts = require("typescript");
-function isEnumType(type) {
- return (type.flags & ts.TypeFlags.Enum) !== 0;
-}
-exports.isEnumType = isEnumType;
-function isGenericType(type) {
- return (type.flags & ts.TypeFlags.Object) !== 0 &&
- (type.objectFlags & ts.ObjectFlags.ClassOrInterface) !== 0 &&
- (type.objectFlags & ts.ObjectFlags.Reference) !== 0;
-}
-exports.isGenericType = isGenericType;
-function isIndexedAccessType(type) {
- return (type.flags & ts.TypeFlags.IndexedAccess) !== 0;
-}
-exports.isIndexedAccessType = isIndexedAccessType;
-function isIndexedAccessype(type) {
- return (type.flags & ts.TypeFlags.Index) !== 0;
-}
-exports.isIndexedAccessype = isIndexedAccessype;
-function isInterfaceType(type) {
- return (type.flags & ts.TypeFlags.Object) !== 0 &&
- (type.objectFlags & ts.ObjectFlags.ClassOrInterface) !== 0;
-}
-exports.isInterfaceType = isInterfaceType;
-function isIntersectionType(type) {
- return (type.flags & ts.TypeFlags.Intersection) !== 0;
-}
-exports.isIntersectionType = isIntersectionType;
-function isLiteralType(type) {
- return (type.flags & ts.TypeFlags.Literal) !== 0;
-}
-exports.isLiteralType = isLiteralType;
-function isObjectType(type) {
- return (type.flags & ts.TypeFlags.Object) !== 0;
-}
-exports.isObjectType = isObjectType;
-function isTypeParameter(type) {
- return (type.flags & ts.TypeFlags.TypeParameter) !== 0;
-}
-exports.isTypeParameter = isTypeParameter;
-function isTypeReference(type) {
- return (type.flags & ts.TypeFlags.Object) !== 0 &&
- (type.objectFlags & ts.ObjectFlags.Reference) !== 0;
-}
-exports.isTypeReference = isTypeReference;
-function isTypeVariable(type) {
- return (type.flags & ts.TypeFlags.TypeVariable) !== 0;
-}
-exports.isTypeVariable = isTypeVariable;
-function isUnionOrIntersectionType(type) {
- return (type.flags & ts.TypeFlags.UnionOrIntersection) !== 0;
-}
-exports.isUnionOrIntersectionType = isUnionOrIntersectionType;
-function isUnionType(type) {
- return (type.flags & ts.TypeFlags.Union) !== 0;
-}
-exports.isUnionType = isUnionType;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBaUM7QUFFakMsb0JBQTJCLElBQWE7SUFDcEMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRkQsZ0NBRUM7QUFFRCx1QkFBOEIsSUFBYTtJQUN2QyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQyxDQUFpQixJQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQzNFLENBQWlCLElBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUpELHNDQUlDO0FBRUQsNkJBQW9DLElBQWE7SUFDN0MsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRkQsa0RBRUM7QUFFRCw0QkFBbUMsSUFBYTtJQUM1QyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFGRCxnREFFQztBQUVELHlCQUFnQyxJQUFhO0lBQ3pDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNDLENBQWlCLElBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBSEQsMENBR0M7QUFFRCw0QkFBbUMsSUFBYTtJQUM1QyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFGRCxnREFFQztBQUVELHVCQUE4QixJQUFhO0lBQ3ZDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUZELHNDQUVDO0FBRUQsc0JBQTZCLElBQWE7SUFDdEMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRkQsb0NBRUM7QUFFRCx5QkFBZ0MsSUFBYTtJQUN6QyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFGRCwwQ0FFQztBQUVELHlCQUFnQyxJQUFhO0lBQ3pDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNDLENBQWlCLElBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUhELDBDQUdDO0FBRUQsd0JBQStCLElBQWE7SUFDeEMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRkQsd0NBRUM7QUFFRCxtQ0FBMEMsSUFBYTtJQUNuRCxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUZELDhEQUVDO0FBRUQscUJBQTRCLElBQWE7SUFDckMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRkQsa0NBRUMifQ== \ No newline at end of file
+var tslib_1 = require("tslib");
+tslib_1.__exportStar(require("./2.9/type"), exports);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQTJCIn0= \ No newline at end of file
diff --git a/node_modules/tsutils/util/control-flow.d.ts b/node_modules/tsutils/util/control-flow.d.ts
index 58756b090..f7c101d82 100644
--- a/node_modules/tsutils/util/control-flow.d.ts
+++ b/node_modules/tsutils/util/control-flow.d.ts
@@ -1,2 +1,9 @@
import * as ts from 'typescript';
export declare function endsControlFlow(statement: ts.Statement | ts.BlockLike): boolean;
+export declare type ControlFlowStatement = ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.ThrowStatement;
+export interface ControlFlowEnd {
+ readonly statements: ReadonlyArray<ControlFlowStatement>;
+ readonly end: boolean;
+}
+export declare function getControlFlowEnd(statement: ts.Statement | ts.BlockLike): ControlFlowEnd;
+export declare function getControlFlowEnd(statement: ts.Statement | ts.BlockLike, label?: ts.Identifier): ControlFlowEnd;
diff --git a/node_modules/tsutils/util/control-flow.js b/node_modules/tsutils/util/control-flow.js
index 8bebd68a3..592244f6a 100644
--- a/node_modules/tsutils/util/control-flow.js
+++ b/node_modules/tsutils/util/control-flow.js
@@ -3,23 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
var ts = require("typescript");
var node_1 = require("../typeguard/node");
function endsControlFlow(statement) {
- if (node_1.isBlockLike(statement))
- return handleBlock(statement).end;
- switch (statement.kind) {
- case ts.SyntaxKind.ForStatement:
- case ts.SyntaxKind.ForOfStatement:
- case ts.SyntaxKind.ForInStatement:
- case ts.SyntaxKind.WhileStatement:
- case ts.SyntaxKind.DoStatement:
- case ts.SyntaxKind.SwitchStatement:
- if (statement.parent.kind === ts.SyntaxKind.LabeledStatement)
- statement = statement.parent;
- }
return getControlFlowEnd(statement).end;
}
exports.endsControlFlow = endsControlFlow;
var defaultControlFlowEnd = { statements: [], end: false };
-function getControlFlowEnd(statement, label) {
+function getControlFlowEnd(statement) {
+ return node_1.isBlockLike(statement) ? handleBlock(statement) : getControlFlowEndWorker(statement);
+}
+exports.getControlFlowEnd = getControlFlowEnd;
+function getControlFlowEndWorker(statement) {
switch (statement.kind) {
case ts.SyntaxKind.ReturnStatement:
case ts.SyntaxKind.ThrowStatement:
@@ -29,98 +21,133 @@ function getControlFlowEnd(statement, label) {
case ts.SyntaxKind.Block:
return handleBlock(statement);
case ts.SyntaxKind.ForStatement:
+ case ts.SyntaxKind.WhileStatement:
+ return handleForAndWhileStatement(statement);
case ts.SyntaxKind.ForOfStatement:
case ts.SyntaxKind.ForInStatement:
+ return handleForInOrOfStatement(statement);
case ts.SyntaxKind.DoStatement:
- case ts.SyntaxKind.WhileStatement:
- return matchBreakOrContinue(getControlFlowEnd(statement.statement), node_1.isBreakOrContinueStatement, label);
+ return matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement);
case ts.SyntaxKind.IfStatement:
return handleIfStatement(statement);
case ts.SyntaxKind.SwitchStatement:
- return matchBreakOrContinue(handleSwitchStatement(statement), node_1.isBreakStatement, label);
+ return matchBreakOrContinue(handleSwitchStatement(statement), node_1.isBreakStatement);
case ts.SyntaxKind.TryStatement:
return handleTryStatement(statement);
case ts.SyntaxKind.LabeledStatement:
- return getControlFlowEnd(statement.statement, statement.label);
+ return matchLabel(getControlFlowEndWorker(statement.statement), statement.label);
case ts.SyntaxKind.WithStatement:
- return getControlFlowEnd(statement.statement);
+ return getControlFlowEndWorker(statement.statement);
default:
return defaultControlFlowEnd;
}
}
function handleBlock(statement) {
+ var _a;
var result = { statements: [], end: false };
- for (var _i = 0, _a = statement.statements; _i < _a.length; _i++) {
- var s = _a[_i];
- var current = getControlFlowEnd(s);
- (_b = result.statements).push.apply(_b, current.statements);
+ for (var _i = 0, _b = statement.statements; _i < _b.length; _i++) {
+ var s = _b[_i];
+ var current = getControlFlowEndWorker(s);
+ (_a = result.statements).push.apply(_a, current.statements);
if (current.end) {
result.end = true;
break;
}
}
return result;
- var _b;
+}
+function handleForInOrOfStatement(statement) {
+ var end = matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement);
+ end.end = false;
+ return end;
+}
+function handleForAndWhileStatement(statement) {
+ var constantCondition = statement.kind === ts.SyntaxKind.WhileStatement
+ ? getConstantCondition(statement.expression)
+ : statement.condition === undefined || getConstantCondition(statement.condition);
+ if (constantCondition === false)
+ return defaultControlFlowEnd;
+ var end = matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement);
+ if (constantCondition === undefined)
+ end.end = false;
+ return end;
+}
+function getConstantCondition(node) {
+ switch (node.kind) {
+ case ts.SyntaxKind.TrueKeyword:
+ return true;
+ case ts.SyntaxKind.FalseKeyword:
+ return false;
+ default:
+ return;
+ }
}
function handleIfStatement(node) {
- var then = getControlFlowEnd(node.thenStatement);
- if (node.elseStatement === undefined) {
- then.end = false;
- return then;
+ switch (getConstantCondition(node.expression)) {
+ case true:
+ return getControlFlowEndWorker(node.thenStatement);
+ case false:
+ return node.elseStatement === undefined
+ ? defaultControlFlowEnd
+ : getControlFlowEndWorker(node.elseStatement);
}
- var elze = getControlFlowEnd(node.elseStatement);
+ var then = getControlFlowEndWorker(node.thenStatement);
+ if (node.elseStatement === undefined)
+ return {
+ statements: then.statements,
+ end: false,
+ };
+ var elze = getControlFlowEndWorker(node.elseStatement);
return {
statements: then.statements.concat(elze.statements),
end: then.end && elze.end,
};
}
function handleSwitchStatement(node) {
+ var _a;
var hasDefault = false;
var result = {
statements: [],
end: false,
};
- for (var _i = 0, _a = node.caseBlock.clauses; _i < _a.length; _i++) {
- var clause = _a[_i];
+ for (var _i = 0, _b = node.caseBlock.clauses; _i < _b.length; _i++) {
+ var clause = _b[_i];
if (clause.kind === ts.SyntaxKind.DefaultClause)
hasDefault = true;
var current = handleBlock(clause);
result.end = current.end;
- (_b = result.statements).push.apply(_b, current.statements);
+ (_a = result.statements).push.apply(_a, current.statements);
}
if (!hasDefault)
result.end = false;
return result;
- var _b;
}
function handleTryStatement(node) {
- var result;
+ var finallyResult;
if (node.finallyBlock !== undefined) {
- result = handleBlock(node.finallyBlock);
- if (result.end)
- return result;
+ finallyResult = handleBlock(node.finallyBlock);
+ if (finallyResult.end)
+ return finallyResult;
}
var tryResult = handleBlock(node.tryBlock);
- result = result === undefined
- ? tryResult
- : { statements: result.statements.concat(tryResult.statements), end: tryResult.end };
- if (node.catchClause !== undefined) {
- var current = handleBlock(node.catchClause.block);
- result = {
- statements: result.statements.concat(current.statements),
- end: current.end,
- };
- }
- return result;
+ if (node.catchClause === undefined)
+ return { statements: finallyResult.statements.concat(tryResult.statements), end: tryResult.end };
+ var catchResult = handleBlock(node.catchClause.block);
+ return {
+ statements: tryResult.statements
+ .filter(function (s) { return s.kind !== ts.SyntaxKind.ThrowStatement; })
+ .concat(catchResult.statements, finallyResult === undefined ? [] : finallyResult.statements),
+ end: tryResult.end && catchResult.end,
+ };
}
-function matchBreakOrContinue(current, pred, label) {
+function matchBreakOrContinue(current, pred) {
var result = {
- end: current.end,
statements: [],
+ end: current.end,
};
for (var _i = 0, _a = current.statements; _i < _a.length; _i++) {
var statement = _a[_i];
- if (pred(statement) && (statement.label === undefined || label !== undefined && statement.label.text === label.text)) {
+ if (pred(statement) && statement.label === undefined) {
result.end = false;
continue;
}
@@ -128,4 +155,24 @@ function matchBreakOrContinue(current, pred, label) {
}
return result;
}
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1mbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udHJvbC1mbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQWlDO0FBQ2pDLDBDQUE4RjtBQUU5Rix5QkFBZ0MsU0FBc0M7SUFDbEUsRUFBRSxDQUFDLENBQUMsa0JBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN0QyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyQixLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7UUFDbEMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztRQUNsQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ2xDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDL0IsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWU7WUFDOUIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDMUQsU0FBUyxHQUF3QixTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzVDLENBQUM7QUFkRCwwQ0FjQztBQVFELElBQU0scUJBQXFCLEdBQW1CLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLENBQUM7QUFFM0UsMkJBQTJCLFNBQXVCLEVBQUUsS0FBcUI7SUFDckUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENB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 \ No newline at end of file
+function matchLabel(current, label) {
+ var result = {
+ statements: [],
+ end: current.end,
+ };
+ var labelText = label.text;
+ for (var _i = 0, _a = current.statements; _i < _a.length; _i++) {
+ var statement = _a[_i];
+ switch (statement.kind) {
+ case ts.SyntaxKind.BreakStatement:
+ case ts.SyntaxKind.ContinueStatement:
+ if (statement.label !== undefined && statement.label.text === labelText) {
+ result.end = false;
+ continue;
+ }
+ }
+ result.statements.push(statement);
+ }
+ return result;
+}
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1mbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udHJvbC1mbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQWlDO0FBQ2pDLDBDQUE4RjtBQUU5RixTQUFnQixlQUFlLENBQUMsU0FBc0M7SUFDbEUsT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDNUMsQ0FBQztBQUZELDBDQUVDO0FBaUJELElBQU0scUJBQXFCLEdBQW1CLEVBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLENBQUM7QUFLM0UsU0FBZ0IsaUJBQWlCLENBQUMsU0FBc0M7SUFDcEUsT0FBTyxrQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQVMsdUJBQXVCLENBQUMsU0FBdUI7SUFDcEQsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQ3BCLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDbkMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztRQUNsQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7UUFDckMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWM7WUFDN0IsT0FBTyxFQUFDLFVBQVUsRUFBRSxDQUF1QixTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLENBQUM7UUFDdEUsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDcEIsT0FBTyxXQUFXLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUNoQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENB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 \ No newline at end of file
diff --git a/node_modules/tsutils/util/index.d.ts b/node_modules/tsutils/util/index.d.ts
index 08bb37ced..9e93ff6f1 100644
--- a/node_modules/tsutils/util/index.d.ts
+++ b/node_modules/tsutils/util/index.d.ts
@@ -2,3 +2,4 @@ export * from './util';
export * from './usage';
export * from './control-flow';
export * from './type';
+export * from './convert-ast';
diff --git a/node_modules/tsutils/util/index.js b/node_modules/tsutils/util/index.js
index 9f609ec2d..1d630f625 100644
--- a/node_modules/tsutils/util/index.js
+++ b/node_modules/tsutils/util/index.js
@@ -5,4 +5,5 @@ tslib_1.__exportStar(require("./util"), exports);
tslib_1.__exportStar(require("./usage"), exports);
tslib_1.__exportStar(require("./control-flow"), exports);
tslib_1.__exportStar(require("./type"), exports);
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBdUI7QUFDdkIsa0RBQXdCO0FBQ3hCLHlEQUErQjtBQUMvQixpREFBdUIifQ== \ No newline at end of file
+tslib_1.__exportStar(require("./convert-ast"), exports);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBdUI7QUFDdkIsa0RBQXdCO0FBQ3hCLHlEQUErQjtBQUMvQixpREFBdUI7QUFDdkIsd0RBQThCIn0= \ No newline at end of file
diff --git a/node_modules/tsutils/util/type.d.ts b/node_modules/tsutils/util/type.d.ts
index a46a45d6e..5a699b891 100644
--- a/node_modules/tsutils/util/type.d.ts
+++ b/node_modules/tsutils/util/type.d.ts
@@ -3,4 +3,7 @@ export declare function isEmptyObjectType(type: ts.Type): type is ts.ObjectType;
export declare function removeOptionalityFromType(checker: ts.TypeChecker, type: ts.Type): ts.Type;
export declare function isTypeAssignableToNumber(checker: ts.TypeChecker, type: ts.Type): boolean;
export declare function isTypeAssignableToString(checker: ts.TypeChecker, type: ts.Type): boolean;
-export declare function getCallSignaturesOfType(type: ts.Type): ts.Signature[];
+export declare function getCallSignaturesOfType(type: ts.Type): ReadonlyArray<ts.Signature>;
+export declare function unionTypeParts(type: ts.Type): ts.Type[];
+export declare function isThenableType(checker: ts.TypeChecker, node: ts.Expression, type?: ts.Type): boolean;
+export declare function isFalsyType(type: ts.Type): boolean;
diff --git a/node_modules/tsutils/util/type.js b/node_modules/tsutils/util/type.js
index c43c91947..235accc2a 100644
--- a/node_modules/tsutils/util/type.js
+++ b/node_modules/tsutils/util/type.js
@@ -4,7 +4,7 @@ var ts = require("typescript");
var type_1 = require("../typeguard/type");
var util_1 = require("./util");
function isEmptyObjectType(type) {
- if (type.flags & ts.TypeFlags.Object &&
+ if (type_1.isObjectType(type) &&
type.objectFlags & ts.ObjectFlags.Anonymous &&
type.getProperties().length === 0 &&
type.getCallSignatures().length === 0 &&
@@ -26,9 +26,7 @@ function removeOptionalityFromType(checker, type) {
}
exports.removeOptionalityFromType = removeOptionalityFromType;
function containsTypeWithFlag(type, flag) {
- if (!type_1.isUnionType(type))
- return util_1.isTypeFlagSet(type, flag);
- for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
+ for (var _i = 0, _a = unionTypeParts(type); _i < _a.length; _i++) {
var t = _a[_i];
if (util_1.isTypeFlagSet(t, flag))
return true;
@@ -94,4 +92,52 @@ function getCallSignaturesOfType(type) {
return type.getCallSignatures();
}
exports.getCallSignaturesOfType = getCallSignaturesOfType;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBaUM7QUFDakMsMENBQXFGO0FBQ3JGLCtCQUF1QztBQUV2QywyQkFBa0MsSUFBYTtJQUMzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTTtRQUNoQixJQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUztRQUM1RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssU0FBUztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQVpELDhDQVlDO0FBRUQsbUNBQTBDLE9BQXVCLEVBQUUsSUFBYTtJQUM1RSxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsSUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsSUFB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 \ No newline at end of file
+function unionTypeParts(type) {
+ return type_1.isUnionType(type) ? type.types : [type];
+}
+exports.unionTypeParts = unionTypeParts;
+function isThenableType(checker, node, type) {
+ if (type === void 0) { type = checker.getTypeAtLocation(node); }
+ for (var _i = 0, _a = unionTypeParts(checker.getApparentType(type)); _i < _a.length; _i++) {
+ var ty = _a[_i];
+ var then = ty.getProperty('then');
+ if (then === undefined)
+ continue;
+ var thenType = checker.getTypeOfSymbolAtLocation(then, node);
+ for (var _b = 0, _c = unionTypeParts(thenType); _b < _c.length; _b++) {
+ var t = _c[_b];
+ for (var _d = 0, _e = t.getCallSignatures(); _d < _e.length; _d++) {
+ var signature = _e[_d];
+ if (signature.parameters.length !== 0 && isCallback(checker, signature.parameters[0], node))
+ return true;
+ }
+ }
+ }
+ return false;
+}
+exports.isThenableType = isThenableType;
+function isCallback(checker, param, node) {
+ var type = checker.getApparentType(checker.getTypeOfSymbolAtLocation(param, node));
+ if (param.valueDeclaration.dotDotDotToken) {
+ type = type.getNumberIndexType();
+ if (type === undefined)
+ return false;
+ }
+ for (var _i = 0, _a = unionTypeParts(type); _i < _a.length; _i++) {
+ var t = _a[_i];
+ if (t.getCallSignatures().length !== 0)
+ return true;
+ }
+ return false;
+}
+function isFalsyType(type) {
+ if (type.flags & (ts.TypeFlags.Undefined | ts.TypeFlags.Null | ts.TypeFlags.Void))
+ return true;
+ if (type_1.isLiteralType(type))
+ return !type.value;
+ if (type.flags & ts.TypeFlags.BooleanLiteral)
+ return type.intrinsicName === 'false';
+ return false;
+}
+exports.isFalsyType = isFalsyType;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBaUM7QUFDakMsMENBQWtIO0FBQ2xILCtCQUF1QztBQUV2QyxTQUFnQixpQkFBaUIsQ0FBQyxJQUFhO0lBQzNDLElBQUksbUJBQVksQ0FBQyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLFNBQVM7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssU0FBUyxFQUFFO1FBQ3pDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxPQUFPLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQ3hFO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQVpELDhDQVlDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsT0FBdUIsRUFBRSxJQUFhO0lBQzVFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUM7SUFDaEIsSUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsSUFBSSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxPQUFPLFVB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 \ No newline at end of file
diff --git a/node_modules/tsutils/util/usage.d.ts b/node_modules/tsutils/util/usage.d.ts
index 937394074..3ffa3360f 100644
--- a/node_modules/tsutils/util/usage.d.ts
+++ b/node_modules/tsutils/util/usage.d.ts
@@ -15,7 +15,7 @@ export declare const enum DeclarationDomain {
Type = 2,
Value = 4,
Import = 8,
- Any = 7,
+ Any = 7
}
export declare const enum UsageDomain {
Namespace = 1,
@@ -23,7 +23,7 @@ export declare const enum UsageDomain {
Value = 4,
ValueOrNamespace = 5,
Any = 7,
- TypeQuery = 8,
+ TypeQuery = 8
}
export declare function getUsageDomain(node: ts.Identifier): UsageDomain | undefined;
export declare function getDeclarationDomain(node: ts.Identifier): DeclarationDomain | undefined;
diff --git a/node_modules/tsutils/util/usage.js b/node_modules/tsutils/util/usage.js
index fbfa9e6f5..36f2c219a 100644
--- a/node_modules/tsutils/util/usage.js
+++ b/node_modules/tsutils/util/usage.js
@@ -231,6 +231,7 @@ var AbstractScope = (function () {
if (!this._applyUse(use))
this._addUseToParent(use);
}
+ this._uses = [];
};
AbstractScope.prototype._applyUse = function (use, variables) {
if (variables === void 0) { variables = this._variables; }
@@ -309,55 +310,40 @@ var EnumScope = (function (_super) {
}
EnumScope.prototype.end = function () {
this._applyUses();
- this._uses = [];
};
return EnumScope;
}(NonRootScope));
-var FunctionScopeState;
-(function (FunctionScopeState) {
- FunctionScopeState[FunctionScopeState["Initial"] = 0] = "Initial";
- FunctionScopeState[FunctionScopeState["Parameter"] = 1] = "Parameter";
- FunctionScopeState[FunctionScopeState["ReturnType"] = 2] = "ReturnType";
- FunctionScopeState[FunctionScopeState["Body"] = 3] = "Body";
-})(FunctionScopeState || (FunctionScopeState = {}));
-var FunctionScope = (function (_super) {
- tslib_1.__extends(FunctionScope, _super);
- function FunctionScope() {
+var ConditionalTypeScopeState;
+(function (ConditionalTypeScopeState) {
+ ConditionalTypeScopeState[ConditionalTypeScopeState["Initial"] = 0] = "Initial";
+ ConditionalTypeScopeState[ConditionalTypeScopeState["Extends"] = 1] = "Extends";
+ ConditionalTypeScopeState[ConditionalTypeScopeState["TrueType"] = 2] = "TrueType";
+ ConditionalTypeScopeState[ConditionalTypeScopeState["FalseType"] = 3] = "FalseType";
+})(ConditionalTypeScopeState || (ConditionalTypeScopeState = {}));
+var ConditionalTypeScope = (function (_super) {
+ tslib_1.__extends(ConditionalTypeScope, _super);
+ function ConditionalTypeScope() {
var _this = _super !== null && _super.apply(this, arguments) || this;
- _this._innerScope = new NonRootScope(_this);
_this._state = 0;
return _this;
}
- FunctionScope.prototype.end = function (cb) {
- this._innerScope.end(cb);
- _super.prototype.end.call(this, cb);
- };
- FunctionScope.prototype.updateState = function (newState) {
+ ConditionalTypeScope.prototype.updateState = function (newState) {
this._state = newState;
};
- FunctionScope.prototype.addUse = function (use, source) {
- if (source === this._innerScope)
+ ConditionalTypeScope.prototype.addUse = function (use) {
+ if (this._state === 2)
return void this._uses.push(use);
- switch (this._state) {
- case 1:
- if ((use.domain & 4) === 0 || use.domain & 8)
- return void this._uses.push(use);
- if (this._applyUse(use) || this._applyUse(use, this._innerScope.getVariables()))
- return;
- break;
- case 2:
- if (this._applyUse(use))
- return;
- break;
- case 3:
- return this._innerScope.addUse(use);
- case 0:
- return void this._uses.push(use);
- }
return this._parent.addUse(use, this);
};
- FunctionScope.prototype._getDestinationScope = function (blockScoped) {
- return blockScoped ? this._innerScope : this;
+ return ConditionalTypeScope;
+}(NonRootScope));
+var FunctionScope = (function (_super) {
+ tslib_1.__extends(FunctionScope, _super);
+ function FunctionScope() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ FunctionScope.prototype.beginBody = function () {
+ this._applyUses();
};
return FunctionScope;
}(NonRootScope));
@@ -404,8 +390,8 @@ var FunctionExpressionScope = (function (_super) {
_this._innerScope = new FunctionScope(_this);
return _this;
}
- FunctionExpressionScope.prototype.updateState = function (newState) {
- return this._innerScope.updateState(newState);
+ FunctionExpressionScope.prototype.beginBody = function () {
+ return this._innerScope.beginBody();
};
return FunctionExpressionScope;
}(AbstractNamedExpressionScope));
@@ -488,7 +474,6 @@ var NamespaceScope = (function (_super) {
});
this._applyUses();
this._innerScope = new NonRootScope(this);
- this._uses = [];
};
NamespaceScope.prototype.createOrReuseNamespaceScope = function (name, exported, ambient, hasExportStatement) {
if (!exported && (!this._ambient || this._hasExport))
@@ -571,6 +556,8 @@ var UsageWalker = (function () {
case ts.SyntaxKind.ConstructorType:
case ts.SyntaxKind.FunctionType:
return _this._handleFunctionLikeDeclaration(node, cb, variableCallback);
+ case ts.SyntaxKind.ConditionalType:
+ return _this._handleConditionalType(node, cb, variableCallback);
case ts.SyntaxKind.VariableDeclarationList:
_this._handleVariableDeclaration(node);
break;
@@ -578,7 +565,7 @@ var UsageWalker = (function () {
if (node.parent.kind !== ts.SyntaxKind.IndexSignature &&
(node.name.kind !== ts.SyntaxKind.Identifier ||
node.name.originalKeywordKind !== ts.SyntaxKind.ThisKeyword))
- _this._handleBindingName(node.name, false, false, true);
+ _this._handleBindingName(node.name, false, false);
break;
case ts.SyntaxKind.EnumMember:
_this._scope.addVariable(util_1.getPropertyName(node.name), node.name, false, true, 4);
@@ -590,7 +577,7 @@ var UsageWalker = (function () {
_this._handleDeclaration(node, false, 7 | 8);
break;
case ts.SyntaxKind.TypeParameter:
- _this._scope.addVariable(util_1.getIdentifierText(node.name), node.name, false, false, 2);
+ _this._scope.addVariable(util_1.getIdentifierText(node.name), node.name, true, false, 2);
break;
case ts.SyntaxKind.ExportSpecifier:
if (node.propertyName !== undefined)
@@ -628,6 +615,19 @@ var UsageWalker = (function () {
return ts.forEachChild(node, cb);
}
};
+ UsageWalker.prototype._handleConditionalType = function (node, cb, varCb) {
+ var savedScope = this._scope;
+ var scope = this._scope = new ConditionalTypeScope(savedScope);
+ cb(node.checkType);
+ scope.updateState(1);
+ cb(node.extendsType);
+ scope.updateState(2);
+ cb(node.trueType);
+ scope.updateState(3);
+ cb(node.falseType);
+ scope.end(varCb);
+ this._scope = savedScope;
+ };
UsageWalker.prototype._handleFunctionLikeDeclaration = function (node, cb, varCb) {
if (node.decorators !== undefined)
node.decorators.forEach(cb);
@@ -641,14 +641,11 @@ var UsageWalker = (function () {
cb(node.name);
if (node.typeParameters !== undefined)
node.typeParameters.forEach(cb);
- scope.updateState(1);
node.parameters.forEach(cb);
- if (node.type !== undefined) {
- scope.updateState(2);
+ if (node.type !== undefined)
cb(node.type);
- }
if (node.body !== undefined) {
- scope.updateState(3);
+ scope.beginBody();
cb(node.body);
}
scope.end(varCb);
@@ -669,12 +666,12 @@ var UsageWalker = (function () {
if (node.name !== undefined)
this._scope.addVariable(util_1.getIdentifierText(node.name), node.name, blockScoped, util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword), domain);
};
- UsageWalker.prototype._handleBindingName = function (name, blockScoped, exported, isParameter) {
+ UsageWalker.prototype._handleBindingName = function (name, blockScoped, exported) {
var _this = this;
if (name.kind === ts.SyntaxKind.Identifier)
return this._scope.addVariable(util_1.getIdentifierText(name), name, blockScoped, exported, 4);
util_1.forEachDestructuringIdentifier(name, function (declaration) {
- _this._scope.addVariable(util_1.getIdentifierText(declaration.name), declaration.name, isParameter || blockScoped, exported, 4);
+ _this._scope.addVariable(util_1.getIdentifierText(declaration.name), declaration.name, blockScoped, exported, 4);
});
};
UsageWalker.prototype._handleVariableDeclaration = function (declarationList) {
@@ -704,4 +701,4 @@ function containsExportStatement(block) {
}
return false;
}
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1c2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFPZ0I7QUFDaEIsK0JBQWlDO0FBMkJqQyxJQUFrQixpQkFNakI7QUFORCxXQUFrQixpQkFBaUI7SUFDL0IsbUVBQWEsQ0FBQTtJQUNiLHlEQUFRLENBQUE7SUFDUiwyREFBUyxDQUFBO0lBQ1QsNkRBQVUsQ0FBQTtJQUNWLHVEQUE4QixDQUFBO0FBQ2xDLENBQUMsRUFOaUIsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFNbEM7QUFFRCxJQUFrQixXQU9qQjtBQVBELFdBQWtCLFdBQVc7SUFDekIsdURBQWEsQ0FBQTtJQUNiLDZDQUFRLENBQUE7SUFDUiwrQ0FBUyxDQUFBO0lBQ1QscUVBQW9DLENBQUE7SUFDcEMsMkNBQThCLENBQUE7SUFDOUIsdURBQWEsQ0FBQTtBQUNqQixDQUFDLEVBUGlCLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBTzVCO0FBRUQsd0JBQStCLElBQW1CO0lBQzlDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFPLENBQUM7SUFDNUIsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEIsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWE7WUFDNUIsTUFBTSxHQUFrQjtRQUM1QixLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCO1lBQzFDLE1BQU0sQ0FBcUIsTUFBTSxDQUFDLE1BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUI7Z0JBQy9FLE1BQU0sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQjtnQkFDbEUsQ0FBQztnQkFDRCxDQUFDLEVBQWtCLENBQUM7UUFDNUIsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVM7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 \ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1c2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFPZ0I7QUFDaEIsK0JBQWlDO0FBMkJqQyxJQUFrQixpQkFNakI7QUFORCxXQUFrQixpQkFBaUI7SUFDL0IsbUVBQWEsQ0FBQTtJQUNiLHlEQUFRLENBQUE7SUFDUiwyREFBUyxDQUFBO0lBQ1QsNkRBQVUsQ0FBQTtJQUNWLHVEQUE4QixDQUFBO0FBQ2xDLENBQUMsRUFOaUIsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFNbEM7QUFFRCxJQUFrQixXQU9qQjtBQVBELFdBQWtCLFdBQVc7SUFDekIsdURBQWEsQ0FBQTtJQUNiLDZDQUFRLENBQUE7SUFDUiwrQ0FBUyxDQUFBO0lBQ1QscUVBQW9DLENBQUE7SUFDcEMsMkNBQThCLENBQUE7SUFDOUIsdURBQWEsQ0FBQTtBQUNqQixDQUFDLEVBUGlCLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBTzVCO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLElBQW1CO0lBQzlDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFPLENBQUM7SUFDNUIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhO1lBQzVCLFNBQXdCO1FBQzVCLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQywyQkFBMkI7WUFDMUMsT0FBMkIsTUFBTSxDQUFDLE1BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUI7Z0JBQy9FLE1BQU0sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQjtnQkFDbEUsQ0FBQztnQkFDRCxDQUFDLEVBQWtCLENBQUM7UUFDNUIsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVM7WUFDeEIsT0FBTyxLQUFvRCxDQUFD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 \ No newline at end of file
diff --git a/node_modules/tsutils/util/util.d.ts b/node_modules/tsutils/util/util.d.ts
index bcc346a21..94efa2465 100644
--- a/node_modules/tsutils/util/util.d.ts
+++ b/node_modules/tsutils/util/util.d.ts
@@ -1,4 +1,5 @@
import * as ts from 'typescript';
+import { NodeWrap } from './convert-ast';
export * from './control-flow';
export declare function getChildOfKind<T extends ts.SyntaxKind>(node: ts.Node, kind: T, sourceFile?: ts.SourceFile): ts.Token<T> | undefined;
export declare function isTokenKind(kind: ts.SyntaxKind): boolean;
@@ -15,6 +16,7 @@ export declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boole
export declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean;
export declare const isSymbolFlagSet: (symbol: ts.Symbol, flag: ts.SymbolFlags) => boolean;
export declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags): boolean;
+export declare function isModifierFlagSet(node: ts.Declaration, flag: ts.ModifierFlags): boolean;
export declare function isModifierFlagSet(node: ts.Node, flag: ts.ModifierFlags): boolean;
export declare function isModfierFlagSet(node: ts.Node, flag: ts.ModifierFlags): boolean;
export declare function getPreviousStatement(statement: ts.Statement): ts.Statement | undefined;
@@ -24,17 +26,18 @@ export declare function getNextToken(node: ts.Node, sourceFile?: ts.SourceFile):
export declare function getTokenAtPosition(parent: ts.Node, pos: number, sourceFile?: ts.SourceFile): ts.Node | undefined;
export declare function getCommentAtPosition(sourceFile: ts.SourceFile, pos: number, parent?: ts.Node): ts.CommentRange | undefined;
export declare function isPositionInComment(sourceFile: ts.SourceFile, pos: number, parent?: ts.Node): boolean;
+export declare function getWrappedNodeAtPosition(wrap: NodeWrap, pos: number): NodeWrap | undefined;
export declare function getPropertyName(propertyName: ts.PropertyName): string | undefined;
export declare function forEachDestructuringIdentifier<T>(pattern: ts.BindingPattern, fn: (element: ts.BindingElement & {
name: ts.Identifier;
}) => T): T | undefined;
-export declare function forEachDeclaredVariable<T>(declarationList: ts.VariableDeclarationList, cb: (element: ts.VariableLikeDeclaration & {
+export declare function forEachDeclaredVariable<T>(declarationList: ts.VariableDeclarationList, cb: (element: (ts.VariableDeclaration | ts.BindingElement) & {
name: ts.Identifier;
}) => T): T | undefined;
export declare const enum VariableDeclarationKind {
Var = 0,
Let = 1,
- Const = 2,
+ Const = 2
}
export declare function getVariableDeclarationKind(declarationList: ts.VariableDeclarationList): VariableDeclarationKind;
export declare function isBlockScopedVariableDeclarationList(declarationList: ts.VariableDeclarationList): boolean;
@@ -42,7 +45,7 @@ export declare function isBlockScopedVariableDeclaration(declaration: ts.Variabl
export declare const enum ScopeBoundary {
None = 0,
Function = 1,
- Block = 2,
+ Block = 2
}
export declare function isScopeBoundary(node: ts.Node): ScopeBoundary;
export declare function isFunctionScopeBoundary(node: ts.Node): boolean;
@@ -58,6 +61,7 @@ export interface LineRange extends ts.TextRange {
contentLength: number;
}
export declare function getLineRanges(sourceFile: ts.SourceFile): LineRange[];
+export declare function getLineBreakStyle(sourceFile: ts.SourceFile): "\n" | "\r\n";
export declare function isValidIdentifier(text: string): boolean;
export declare function isValidPropertyAccess(text: string): boolean;
export declare function isValidPropertyName(text: string): boolean;
@@ -67,7 +71,7 @@ export declare const enum SideEffectOptions {
None = 0,
TaggedTemplate = 1,
Constructor = 2,
- JsxElement = 4,
+ JsxElement = 4
}
export declare function hasSideEffects(node: ts.Expression, options?: SideEffectOptions): boolean;
export declare function getDeclarationOfBindingElement(node: ts.BindingElement): ts.VariableDeclaration | ts.ParameterDeclaration;
@@ -83,11 +87,12 @@ export declare const enum ImportKind {
ExportFrom = 4,
DynamicImport = 8,
Require = 16,
- All = 31,
- AllImports = 27,
+ ImportType = 32,
+ All = 63,
+ AllImports = 59,
AllStaticImports = 3,
AllImportExpressions = 24,
- AllRequireLike = 18,
+ AllRequireLike = 18
}
export declare const enum ImportOptions {
ImportDeclaration = 1,
@@ -99,7 +104,18 @@ export declare const enum ImportOptions {
AllImports = 27,
AllStaticImports = 3,
AllDynamic = 24,
- AllRequireLike = 18,
+ AllRequireLike = 18
}
export declare function findImports(sourceFile: ts.SourceFile, kinds: ImportKind): ts.LiteralExpression[];
export declare function findImports(sourceFile: ts.SourceFile, options: ImportOptions): ts.LiteralExpression[];
+export declare function isStatementInAmbientContext(node: ts.Statement): boolean;
+export declare function isAmbientModuleBlock(node: ts.Node): node is ts.ModuleBlock;
+export declare function getIIFE(func: ts.FunctionExpression | ts.ArrowFunction): ts.CallExpression | undefined;
+export declare type StrictCompilerOption = 'noImplicitAny' | 'noImplicitThis' | 'strictNullChecks' | 'strictFunctionTypes' | 'strictPropertyInitialization' | 'alwaysStrict';
+export declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, option: StrictCompilerOption): boolean;
+export declare type BooleanCompilerOptions = {
+ [K in keyof ts.CompilerOptions]: NonNullable<ts.CompilerOptions[K]> extends boolean ? K : never;
+} extends {
+ [_ in keyof ts.CompilerOptions]: infer U;
+} ? U : never;
+export declare function isCompilerOptionEnabled(options: ts.CompilerOptions, option: BooleanCompilerOptions | 'stripInternal'): boolean;
diff --git a/node_modules/tsutils/util/util.js b/node_modules/tsutils/util/util.js
index 3ca250a36..74666b2c9 100644
--- a/node_modules/tsutils/util/util.js
+++ b/node_modules/tsutils/util/util.js
@@ -168,17 +168,37 @@ function getCommentAtPosition(sourceFile, pos, parent) {
var token = getTokenAtPosition(parent, pos, sourceFile);
if (token === undefined || token.kind === ts.SyntaxKind.JsxText || pos >= token.end - (ts.tokenToString(token.kind) || '').length)
return;
- var cb = function (start, end, kind) {
- return pos >= start && pos < end ? { end: end, kind: kind, pos: start } : undefined;
- };
- return token.pos !== 0 && ts.forEachTrailingCommentRange(sourceFile.text, token.pos, cb) ||
- ts.forEachLeadingCommentRange(sourceFile.text, token.pos, cb);
+ var startPos = token.pos === 0
+ ? (ts.getShebang(sourceFile.text) || '').length
+ : token.pos;
+ return startPos !== 0 && ts.forEachTrailingCommentRange(sourceFile.text, startPos, commentAtPositionCallback, pos) ||
+ ts.forEachLeadingCommentRange(sourceFile.text, startPos, commentAtPositionCallback, pos);
}
exports.getCommentAtPosition = getCommentAtPosition;
+function commentAtPositionCallback(pos, end, kind, _nl, at) {
+ return at >= pos && at < end ? { pos: pos, end: end, kind: kind } : undefined;
+}
function isPositionInComment(sourceFile, pos, parent) {
return getCommentAtPosition(sourceFile, pos, parent) !== undefined;
}
exports.isPositionInComment = isPositionInComment;
+function getWrappedNodeAtPosition(wrap, pos) {
+ if (wrap.node.pos > pos || wrap.node.end <= pos)
+ return;
+ outer: while (true) {
+ for (var _i = 0, _a = wrap.children; _i < _a.length; _i++) {
+ var child = _a[_i];
+ if (child.node.pos > pos)
+ return wrap;
+ if (child.node.end > pos) {
+ wrap = child;
+ continue outer;
+ }
+ }
+ return wrap;
+ }
+}
+exports.getWrappedNodeAtPosition = getWrappedNodeAtPosition;
function getPropertyName(propertyName) {
if (propertyName.kind === ts.SyntaxKind.ComputedPropertyName) {
if (!node_1.isLiteralExpression(propertyName.expression))
@@ -279,6 +299,7 @@ function isFunctionScopeBoundary(node) {
case ts.SyntaxKind.ConstructorType:
case ts.SyntaxKind.FunctionType:
case ts.SyntaxKind.MappedType:
+ case ts.SyntaxKind.ConditionalType:
return true;
case ts.SyntaxKind.SourceFile:
return ts.isExternalModule(node);
@@ -353,7 +374,7 @@ function forEachTokenWithTrivia(node, cb, sourceFile) {
var fullText = sourceFile.text;
var scanner = ts.createScanner(sourceFile.languageVersion, false, sourceFile.languageVariant, fullText);
return forEachToken(node, function (token) {
- var tokenStart = token.kind === ts.SyntaxKind.JsxText ? token.pos : token.getStart(sourceFile);
+ var tokenStart = token.kind === ts.SyntaxKind.JsxText || token.pos === token.end ? token.pos : token.getStart(sourceFile);
if (tokenStart !== token.pos) {
scanner.setTextPos(token.pos);
var kind = scanner.scan();
@@ -376,8 +397,10 @@ function forEachComment(node, cb, sourceFile) {
var fullText = sourceFile.text;
var notJsx = sourceFile.languageVariant !== ts.LanguageVariant.JSX;
return forEachToken(node, function (token) {
+ if (token.pos === token.end)
+ return;
if (token.kind !== ts.SyntaxKind.JsxText)
- ts.forEachLeadingCommentRange(fullText, token.pos, commentCallback);
+ ts.forEachLeadingCommentRange(fullText, token.pos === 0 ? (ts.getShebang(fullText) || '').length : token.pos, commentCallback);
if (notJsx || canHaveTrailingTrivia(token))
return ts.forEachTrailingCommentRange(fullText, token.end, commentCallback);
}, sourceFile);
@@ -386,29 +409,28 @@ function forEachComment(node, cb, sourceFile) {
}
}
exports.forEachComment = forEachComment;
-function canHaveTrailingTrivia(_a) {
- var kind = _a.kind, parent = _a.parent;
- if (kind === ts.SyntaxKind.CloseBraceToken)
- return parent.kind !== ts.SyntaxKind.JsxExpression ||
- parent.parent.kind !== ts.SyntaxKind.JsxElement && parent.parent.kind !== ts.SyntaxKind.JsxFragment;
- if (kind === ts.SyntaxKind.GreaterThanToken) {
- switch (parent.kind) {
- case ts.SyntaxKind.JsxOpeningElement:
- case ts.SyntaxKind.JsxOpeningFragment:
- return false;
- case ts.SyntaxKind.JsxClosingElement:
- case ts.SyntaxKind.JsxSelfClosingElement:
- case ts.SyntaxKind.JsxClosingFragment:
- switch (parent.parent.parent.kind) {
- case ts.SyntaxKind.JsxElement:
- case ts.SyntaxKind.JsxFragment:
- return false;
- default:
- return true;
- }
- }
+function canHaveTrailingTrivia(token) {
+ switch (token.kind) {
+ case ts.SyntaxKind.CloseBraceToken:
+ return token.parent.kind !== ts.SyntaxKind.JsxExpression || !isJsxElementOrFragment(token.parent.parent);
+ case ts.SyntaxKind.GreaterThanToken:
+ switch (token.parent.kind) {
+ case ts.SyntaxKind.JsxOpeningElement:
+ return token.end !== token.parent.end;
+ case ts.SyntaxKind.JsxOpeningFragment:
+ return false;
+ case ts.SyntaxKind.JsxSelfClosingElement:
+ return token.end !== token.parent.end ||
+ !isJsxElementOrFragment(token.parent.parent);
+ case ts.SyntaxKind.JsxClosingElement:
+ case ts.SyntaxKind.JsxClosingFragment:
+ return !isJsxElementOrFragment(token.parent.parent.parent);
+ }
}
- return kind !== ts.SyntaxKind.JsxText;
+ return true;
+}
+function isJsxElementOrFragment(node) {
+ return node.kind === ts.SyntaxKind.JsxElement || node.kind === ts.SyntaxKind.JsxFragment;
}
function getLineRanges(sourceFile) {
var lineStarts = sourceFile.getLineStarts();
@@ -437,6 +459,13 @@ function getLineRanges(sourceFile) {
return result;
}
exports.getLineRanges = getLineRanges;
+function getLineBreakStyle(sourceFile) {
+ var lineStarts = sourceFile.getLineStarts();
+ return lineStarts.length === 1 || lineStarts[1] < 2 || sourceFile.text[lineStarts[1] - 2] !== '\r'
+ ? '\n'
+ : '\r\n';
+}
+exports.getLineBreakStyle = getLineBreakStyle;
var cachedScanner;
function scanToken(text) {
if (cachedScanner === undefined)
@@ -534,6 +563,8 @@ function hasSideEffects(node, options) {
case ts.SyntaxKind.TaggedTemplateExpression:
if (options & 1 || hasSideEffects(node.tag, options))
return true;
+ if (node.template.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral)
+ return false;
node = node.template;
case ts.SyntaxKind.TemplateExpression:
for (var _b = 0, _c = node.templateSpans; _b < _c.length; _b++) {
@@ -821,12 +852,14 @@ function isReassignmentTarget(node) {
case ts.SyntaxKind.PropertyAssignment:
return parent.initializer === node &&
isInDestructuringAssignment(parent);
- case ts.SyntaxKind.ObjectLiteralExpression:
case ts.SyntaxKind.ArrayLiteralExpression:
case ts.SyntaxKind.SpreadElement:
case ts.SyntaxKind.SpreadAssignment:
return isInDestructuringAssignment(parent);
case ts.SyntaxKind.ParenthesizedExpression:
+ case ts.SyntaxKind.NonNullExpression:
+ case ts.SyntaxKind.TypeAssertionExpression:
+ case ts.SyntaxKind.AsExpression:
return isReassignmentTarget(parent);
case ts.SyntaxKind.ForOfStatement:
case ts.SyntaxKind.ForInStatement:
@@ -836,7 +869,7 @@ function isReassignmentTarget(node) {
}
exports.isReassignmentTarget = isReassignmentTarget;
function getIdentifierText(node) {
- return ts.unescapeIdentifier(node.text);
+ return ts.unescapeIdentifier ? ts.unescapeIdentifier(node.text) : node.text;
}
exports.getIdentifierText = getIdentifierText;
function canHaveJsDoc(node) {
@@ -941,11 +974,13 @@ var ImportKind;
ImportKind[ImportKind["ExportFrom"] = 4] = "ExportFrom";
ImportKind[ImportKind["DynamicImport"] = 8] = "DynamicImport";
ImportKind[ImportKind["Require"] = 16] = "Require";
- ImportKind[ImportKind["All"] = 31] = "All";
- ImportKind[ImportKind["AllImports"] = 27] = "AllImports";
+ ImportKind[ImportKind["ImportType"] = 32] = "ImportType";
+ ImportKind[ImportKind["All"] = 63] = "All";
+ ImportKind[ImportKind["AllImports"] = 59] = "AllImports";
ImportKind[ImportKind["AllStaticImports"] = 3] = "AllStaticImports";
ImportKind[ImportKind["AllImportExpressions"] = 24] = "AllImportExpressions";
ImportKind[ImportKind["AllRequireLike"] = 18] = "AllRequireLike";
+ ImportKind[ImportKind["AllNestedImports"] = 56] = "AllNestedImports";
})(ImportKind = exports.ImportKind || (exports.ImportKind = {}));
var ImportOptions;
(function (ImportOptions) {
@@ -970,13 +1005,18 @@ var ImportFinder = (function () {
this._sourceFile = _sourceFile;
this._options = _options;
this._result = [];
- this._findDynamic = function (node) {
- if (node_1.isCallExpression(node) && node.arguments.length === 1 &&
- (node.expression.kind === ts.SyntaxKind.ImportKeyword && _this._options & 8 ||
- _this._options & 16 && node.expression.kind === ts.SyntaxKind.Identifier &&
- node.expression.text === 'require'))
- _this._addImport(node.arguments[0]);
- ts.forEachChild(node, _this._findDynamic);
+ this._findNested = function (node) {
+ if (node_1.isCallExpression(node)) {
+ if (node.arguments.length === 1 &&
+ (node.expression.kind === ts.SyntaxKind.ImportKeyword && _this._options & 8 ||
+ _this._options & 16 && node.expression.kind === ts.SyntaxKind.Identifier &&
+ node.expression.text === 'require'))
+ _this._addImport(node.arguments[0]);
+ }
+ else if (node_1.isImportTypeNode(node) && node_1.isLiteralTypeNode(node.argument) && _this._options & 32) {
+ _this._addImport(node.argument.literal);
+ }
+ ts.forEachChild(node, _this._findNested);
};
}
ImportFinder.prototype.find = function () {
@@ -1008,8 +1048,8 @@ var ImportFinder = (function () {
ts.isExternalModule(this._sourceFile)) {
this._findImports(statement.body.statements);
}
- else if (this._options & 24) {
- ts.forEachChild(statement, this._findDynamic);
+ else if (this._options & 56) {
+ ts.forEachChild(statement, this._findNested);
}
}
};
@@ -1019,4 +1059,51 @@ var ImportFinder = (function () {
};
return ImportFinder;
}());
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWlDO0FBQ2pDLDBDQUcyQjtBQUczQix5REFBK0I7QUFFL0Isd0JBQXdELElBQWEsRUFBRSxJQUFPLEVBQUUsVUFBMEI7SUFDdEcsR0FBRyxDQUFDLENBQWdCLFVBQTRCLEVBQTVCLEtBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBNUIsY0FBNEIsRUFBNUIsSUFBNEI7UUFBM0MsSUFBTSxLQUFLLFNBQUE7UUFDWixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztZQUNwQixNQUFNLENBQWMsS0FBSyxDQUFDO0tBQUE7QUFDdEMsQ0FBQztBQUpELHdDQUlDO0FBRUQscUJBQTRCLElBQW1CO0lBQzNDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBQy9FLENBQUM7QUFGRCxrQ0FFQztBQUVELG9CQUEyQixJQUFtQjtJQUMxQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFGRCxnQ0FFQztBQUVELDBCQUFpQyxJQUFtQjtJQUNoRCxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztBQUN6RixDQUFDO0FBRkQsNENBRUM7QUFFRCx3QkFBK0IsSUFBbUI7SUFDOUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7QUFDckYsQ0FBQztBQUZELHdDQUVDO0FBRUQscUJB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 \ No newline at end of file
+function isStatementInAmbientContext(node) {
+ while (node.flags & ts.NodeFlags.NestedNamespace)
+ node = node.parent;
+ return hasModifier(node.modifiers, ts.SyntaxKind.DeclareKeyword) || isAmbientModuleBlock(node.parent);
+}
+exports.isStatementInAmbientContext = isStatementInAmbientContext;
+function isAmbientModuleBlock(node) {
+ while (node.kind === ts.SyntaxKind.ModuleBlock) {
+ do
+ node = node.parent;
+ while (node.flags & ts.NodeFlags.NestedNamespace);
+ if (hasModifier(node.modifiers, ts.SyntaxKind.DeclareKeyword))
+ return true;
+ node = node.parent;
+ }
+ return false;
+}
+exports.isAmbientModuleBlock = isAmbientModuleBlock;
+function getIIFE(func) {
+ var node = func.parent;
+ while (node.kind === ts.SyntaxKind.ParenthesizedExpression)
+ node = node.parent;
+ return node_1.isCallExpression(node) && func.end <= node.expression.end ? node : undefined;
+}
+exports.getIIFE = getIIFE;
+function isStrictCompilerOptionEnabled(options, option) {
+ return (options.strict ? options[option] !== false : options[option] === true) &&
+ (option !== 'strictPropertyInitialization' || isStrictCompilerOptionEnabled(options, 'strictNullChecks'));
+}
+exports.isStrictCompilerOptionEnabled = isStrictCompilerOptionEnabled;
+function isCompilerOptionEnabled(options, option) {
+ switch (option) {
+ case 'stripInternal':
+ return options.stripInternal === true && isCompilerOptionEnabled(options, 'declaration');
+ case 'declaration':
+ return options.declaration || isCompilerOptionEnabled(options, 'composite');
+ case 'noImplicitAny':
+ case 'noImplicitThis':
+ case 'strictNullChecks':
+ case 'strictFunctionTypes':
+ case 'strictPropertyInitialization':
+ case 'alwaysStrict':
+ return isStrictCompilerOptionEnabled(options, option);
+ }
+ return options[option] === true;
+}
+exports.isCompilerOptionEnabled = isCompilerOptionEnabled;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWlDO0FBRWpDLDBDQUcyQjtBQUczQix5REFBK0I7QUFFL0IsU0FBZ0IsY0FBYyxDQUEwQixJQUFhLEVBQUUsSUFBTyxFQUFFLFVBQTBCO0lBQ3RHLEtBQW9CLFVBQTRCLEVBQTVCLEtBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBNUIsY0FBNEIsRUFBNUIsSUFBNEI7UUFBM0MsSUFBTSxLQUFLLFNBQUE7UUFDWixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUNuQixPQUFvQixLQUFLLENBQUM7S0FBQTtBQUN0QyxDQUFDO0FBSkQsd0NBSUM7QUFFRCxTQUFnQixXQUFXLENBQUMsSUFBbUI7SUFDM0MsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBQy9FLENBQUM7QUFGRCxrQ0FFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFtQjtJQUMxQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztBQUMzQyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFtQjtJQUNoRCxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7QUFDekYsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLElBQW1CO0lBQzlDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztBQUNyRixDQUFDO0FBRkQsd0NBRUM7QUFFRCxTQUFn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 \ No newline at end of file