From e26d5fd3f5f767d9fba06378af3fc7e5a8c3bf70 Mon Sep 17 00:00:00 2001 From: Vida Xie Date: Mon, 14 Jul 2025 21:24:41 +0800 Subject: [PATCH] refactor: enhance `fallbackKeysFilter` readability --- src/ast/traverse.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/ast/traverse.ts b/src/ast/traverse.ts index e939507..4b83395 100644 --- a/src/ast/traverse.ts +++ b/src/ast/traverse.ts @@ -32,12 +32,11 @@ export const KEYS = Evk.unionWith({ /** * Check that the given key should be traversed or not. - * @this {Traversable} * @param key The key to check. + * @param value The value of the key in the node. * @returns `true` if the key should be traversed. */ -function fallbackKeysFilter(this: any, key: string): boolean { - let value = null +function fallbackKeysFilter(key: string, value: any = null): boolean { return ( key !== "comments" && key !== "leadingComments" && @@ -46,7 +45,7 @@ function fallbackKeysFilter(this: any, key: string): boolean { key !== "range" && key !== "tokens" && key !== "trailingComments" && - (value = this[key]) !== null && + value !== null && typeof value === "object" && (typeof value.type === "string" || Array.isArray(value)) ) @@ -57,8 +56,10 @@ function fallbackKeysFilter(this: any, key: string): boolean { * @param node The node to get. * @returns The keys to traverse. */ -function getFallbackKeys(node: Node): string[] { - return Object.keys(node).filter(fallbackKeysFilter, node) +export function getFallbackKeys(node: Node): string[] { + return Object.keys(node).filter((key) => + fallbackKeysFilter(key, node[key as keyof Node]), + ) } /** @@ -119,5 +120,3 @@ export interface Visitor { export function traverseNodes(node: Node, visitor: Visitor): void { traverse(node, null, visitor) } - -export { getFallbackKeys } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy