Comparing version 0.6.9 to 0.7.0
@@ -27,2 +27,90 @@ // src/check.ts | ||
} | ||
function isReferenced(node, parent, grandparent) { | ||
switch (parent.type) { | ||
case "MemberExpression": | ||
case "OptionalMemberExpression": | ||
if (parent.property === node) { | ||
return !!parent.computed; | ||
} | ||
return parent.object === node; | ||
case "JSXMemberExpression": | ||
return parent.object === node; | ||
case "VariableDeclarator": | ||
return parent.init === node; | ||
case "ArrowFunctionExpression": | ||
return parent.body === node; | ||
case "PrivateName": | ||
return false; | ||
case "ClassMethod": | ||
case "ClassPrivateMethod": | ||
case "ObjectMethod": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return false; | ||
case "ObjectProperty": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return !grandparent || grandparent.type !== "ObjectPattern"; | ||
case "ClassProperty": | ||
case "ClassAccessorProperty": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return true; | ||
case "ClassPrivateProperty": | ||
return parent.key !== node; | ||
case "ClassDeclaration": | ||
case "ClassExpression": | ||
return parent.superClass === node; | ||
case "AssignmentExpression": | ||
return parent.right === node; | ||
case "AssignmentPattern": | ||
return parent.right === node; | ||
case "LabeledStatement": | ||
return false; | ||
case "CatchClause": | ||
return false; | ||
case "RestElement": | ||
return false; | ||
case "BreakStatement": | ||
case "ContinueStatement": | ||
return false; | ||
case "FunctionDeclaration": | ||
case "FunctionExpression": | ||
return false; | ||
case "ExportNamespaceSpecifier": | ||
case "ExportDefaultSpecifier": | ||
return false; | ||
case "ExportSpecifier": | ||
if (grandparent?.source) { | ||
return false; | ||
} | ||
return parent.local === node; | ||
case "ImportDefaultSpecifier": | ||
case "ImportNamespaceSpecifier": | ||
case "ImportSpecifier": | ||
return false; | ||
case "ImportAttribute": | ||
return false; | ||
case "JSXAttribute": | ||
return false; | ||
case "ObjectPattern": | ||
case "ArrayPattern": | ||
return false; | ||
case "MetaProperty": | ||
return false; | ||
case "ObjectTypeProperty": | ||
return parent.key !== node; | ||
case "TSEnumMember": | ||
return parent.id !== node; | ||
case "TSPropertySignature": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return true; | ||
} | ||
return true; | ||
} | ||
@@ -508,2 +596,3 @@ // src/lang.ts | ||
isLiteralType, | ||
isReferenced, | ||
isTs, | ||
@@ -510,0 +599,0 @@ isTypeOf, |
@@ -15,2 +15,13 @@ import * as t from '@babel/types'; | ||
declare function isFunctionType(node: t.Node | undefined | null): node is t.Function; | ||
/** | ||
* Check if the input `node` is a reference to a bound variable. | ||
* | ||
* Copied from https://github.com/babel/babel/blob/main/packages/babel-types/src/validators/isReferenced.ts | ||
* To avoid runtime dependency on @babel/types (which includes process references) | ||
* This file should not change very often in babel but we may need to keep it | ||
* up-to-date from time to time. | ||
* | ||
* https://github.com/babel/babel/blob/main/LICENSE | ||
*/ | ||
declare function isReferenced(node: t.Node, parent: t.Node, grandparent?: t.Node): boolean; | ||
@@ -70,2 +81,2 @@ declare const REGEX_DTS: RegExp; | ||
export { GetNode, ImportBinding, LiteralUnion, ObjectPropertyLike, REGEX_DTS, REGEX_LANG_JSX, REGEX_LANG_TS, TS_NODE_TYPES, WithScope, attachScopes, babelParse, babelParseExpression, escapeKey, getLang, isCallOf, isDts, isFunctionType, isIdentifierOf, isLiteralType, isTs, isTypeOf, resolveIdentifier, resolveLiteral, resolveObjectKey, resolveString, resolveTemplateLiteral, unwrapTSNode, walkAST, walkASTAsync, walkImportDeclaration }; | ||
export { GetNode, ImportBinding, LiteralUnion, ObjectPropertyLike, REGEX_DTS, REGEX_LANG_JSX, REGEX_LANG_TS, TS_NODE_TYPES, WithScope, attachScopes, babelParse, babelParseExpression, escapeKey, getLang, isCallOf, isDts, isFunctionType, isIdentifierOf, isLiteralType, isReferenced, isTs, isTypeOf, resolveIdentifier, resolveLiteral, resolveObjectKey, resolveString, resolveTemplateLiteral, unwrapTSNode, walkAST, walkASTAsync, walkImportDeclaration }; |
@@ -27,2 +27,90 @@ // src/check.ts | ||
} | ||
function isReferenced(node, parent, grandparent) { | ||
switch (parent.type) { | ||
case "MemberExpression": | ||
case "OptionalMemberExpression": | ||
if (parent.property === node) { | ||
return !!parent.computed; | ||
} | ||
return parent.object === node; | ||
case "JSXMemberExpression": | ||
return parent.object === node; | ||
case "VariableDeclarator": | ||
return parent.init === node; | ||
case "ArrowFunctionExpression": | ||
return parent.body === node; | ||
case "PrivateName": | ||
return false; | ||
case "ClassMethod": | ||
case "ClassPrivateMethod": | ||
case "ObjectMethod": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return false; | ||
case "ObjectProperty": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return !grandparent || grandparent.type !== "ObjectPattern"; | ||
case "ClassProperty": | ||
case "ClassAccessorProperty": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return true; | ||
case "ClassPrivateProperty": | ||
return parent.key !== node; | ||
case "ClassDeclaration": | ||
case "ClassExpression": | ||
return parent.superClass === node; | ||
case "AssignmentExpression": | ||
return parent.right === node; | ||
case "AssignmentPattern": | ||
return parent.right === node; | ||
case "LabeledStatement": | ||
return false; | ||
case "CatchClause": | ||
return false; | ||
case "RestElement": | ||
return false; | ||
case "BreakStatement": | ||
case "ContinueStatement": | ||
return false; | ||
case "FunctionDeclaration": | ||
case "FunctionExpression": | ||
return false; | ||
case "ExportNamespaceSpecifier": | ||
case "ExportDefaultSpecifier": | ||
return false; | ||
case "ExportSpecifier": | ||
if (grandparent?.source) { | ||
return false; | ||
} | ||
return parent.local === node; | ||
case "ImportDefaultSpecifier": | ||
case "ImportNamespaceSpecifier": | ||
case "ImportSpecifier": | ||
return false; | ||
case "ImportAttribute": | ||
return false; | ||
case "JSXAttribute": | ||
return false; | ||
case "ObjectPattern": | ||
case "ArrayPattern": | ||
return false; | ||
case "MetaProperty": | ||
return false; | ||
case "ObjectTypeProperty": | ||
return parent.key !== node; | ||
case "TSEnumMember": | ||
return parent.id !== node; | ||
case "TSPropertySignature": | ||
if (parent.key === node) { | ||
return !!parent.computed; | ||
} | ||
return true; | ||
} | ||
return true; | ||
} | ||
@@ -508,2 +596,3 @@ // src/lang.ts | ||
isLiteralType, | ||
isReferenced, | ||
isTs, | ||
@@ -510,0 +599,0 @@ isTypeOf, |
{ | ||
"name": "ast-kit", | ||
"version": "0.6.9", | ||
"version": "0.7.0", | ||
"packageManager": "pnpm@8.6.0", | ||
@@ -5,0 +5,0 @@ "description": "AST Toolkit.", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
66119
1878