mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 16:38:05 -06:00
improve isRequireVariableDeclaration parameters (#42865)
One parameter is always called with `true`, so drop it.
This commit is contained in:
parent
36d021ab9a
commit
0ce5c4a7ee
@ -3307,7 +3307,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
if (!isBindingPattern(node.name)) {
|
||||
if (isInJSFile(node) && isRequireVariableDeclaration(node, /*requireStringLiteralLikeArgument*/ true) && !getJSDocTypeTag(node)) {
|
||||
if (isInJSFile(node) && isRequireVariableDeclaration(node) && !getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node as Declaration, SymbolFlags.Alias, SymbolFlags.AliasExcludes);
|
||||
}
|
||||
else if (isBlockOrCatchScoped(node)) {
|
||||
|
||||
@ -2495,7 +2495,7 @@ namespace ts {
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === SyntaxKind.ShorthandPropertyAssignment
|
||||
|| node.kind === SyntaxKind.PropertyAssignment && isAliasableOrJsExpression((node as PropertyAssignment).initializer)
|
||||
|| isRequireVariableDeclaration(node, /*requireStringLiteralLikeArgument*/ true);
|
||||
|| isRequireVariableDeclaration(node);
|
||||
}
|
||||
|
||||
function isAliasableOrJsExpression(e: Expression) {
|
||||
@ -34412,7 +34412,7 @@ namespace ts {
|
||||
}
|
||||
// For a commonjs `const x = require`, validate the alias and exit
|
||||
const symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & SymbolFlags.Alias && isRequireVariableDeclaration(node, /*requireStringLiteralLikeArgument*/ true)) {
|
||||
if (symbol.flags & SymbolFlags.Alias && isRequireVariableDeclaration(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1965,8 +1965,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
export function getExternalModuleRequireArgument(node: Node) {
|
||||
return isRequireVariableDeclaration(node, /*requireStringLiteralLikeArgument*/ true)
|
||||
&& (getLeftmostAccessExpression(node.initializer) as CallExpression).arguments[0] as StringLiteral;
|
||||
return isRequireVariableDeclaration(node) && (getLeftmostAccessExpression(node.initializer) as CallExpression).arguments[0] as StringLiteral;
|
||||
}
|
||||
|
||||
export function isInternalModuleImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration {
|
||||
@ -2033,19 +2032,17 @@ namespace ts {
|
||||
* Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`).
|
||||
* This function does not test if the node is in a JavaScript file or not.
|
||||
*/
|
||||
export function isRequireVariableDeclaration(node: Node, requireStringLiteralLikeArgument: true): node is RequireVariableDeclaration;
|
||||
export function isRequireVariableDeclaration(node: Node, requireStringLiteralLikeArgument: boolean): node is VariableDeclaration;
|
||||
export function isRequireVariableDeclaration(node: Node, requireStringLiteralLikeArgument: boolean): node is VariableDeclaration {
|
||||
export function isRequireVariableDeclaration(node: Node): node is RequireVariableDeclaration {
|
||||
if (node.kind === SyntaxKind.BindingElement) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), requireStringLiteralLikeArgument);
|
||||
return isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true);
|
||||
}
|
||||
|
||||
export function isRequireVariableStatement(node: Node, requireStringLiteralLikeArgument = true): node is RequireVariableStatement {
|
||||
export function isRequireVariableStatement(node: Node): node is RequireVariableStatement {
|
||||
return isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& every(node.declarationList.declarations, decl => isRequireVariableDeclaration(decl, requireStringLiteralLikeArgument));
|
||||
&& every(node.declarationList.declarations, decl => isRequireVariableDeclaration(decl));
|
||||
}
|
||||
|
||||
export function isSingleOrDoubleQuote(charCode: number) {
|
||||
|
||||
@ -376,7 +376,7 @@ namespace ts.codefix {
|
||||
// Can't use an es6 import for a type in JS.
|
||||
return exportedSymbolIsTypeOnly && isSourceFileJS(sourceFile) ? emptyArray : mapDefined(sourceFile.imports, (moduleSpecifier): FixAddToExistingImportInfo | undefined => {
|
||||
const i = importFromModuleSpecifier(moduleSpecifier);
|
||||
if (isRequireVariableDeclaration(i.parent, /*requireStringLiteralLikeArgument*/ true)) {
|
||||
if (isRequireVariableDeclaration(i.parent)) {
|
||||
return checker.resolveExternalModuleName(moduleSpecifier) === moduleSymbol ? { declaration: i.parent, importKind } : undefined;
|
||||
}
|
||||
if (i.kind === SyntaxKind.ImportDeclaration || i.kind === SyntaxKind.ImportEqualsDeclaration) {
|
||||
|
||||
@ -232,7 +232,7 @@ namespace ts.GoToDefinition {
|
||||
return declaration.parent.kind === SyntaxKind.NamedImports;
|
||||
case SyntaxKind.BindingElement:
|
||||
case SyntaxKind.VariableDeclaration:
|
||||
return isInJSFile(declaration) && isRequireVariableDeclaration(declaration, /*requireStringLiteralLikeArgument*/ true);
|
||||
return isInJSFile(declaration) && isRequireVariableDeclaration(declaration);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -619,7 +619,7 @@ namespace ts.FindAllReferences {
|
||||
Debug.assert((parent as ImportClause | NamespaceImport).name === node);
|
||||
return true;
|
||||
case SyntaxKind.BindingElement:
|
||||
return isInJSFile(node) && isRequireVariableDeclaration(parent, /*requireStringLiteralLikeArgument*/ true);
|
||||
return isInJSFile(node) && isRequireVariableDeclaration(parent);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user