diff options
Diffstat (limited to '@linaria/packages/babel/src/utils/getVisitorKeys.ts')
-rw-r--r-- | @linaria/packages/babel/src/utils/getVisitorKeys.ts | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/@linaria/packages/babel/src/utils/getVisitorKeys.ts b/@linaria/packages/babel/src/utils/getVisitorKeys.ts new file mode 100644 index 0000000..72f11f8 --- /dev/null +++ b/@linaria/packages/babel/src/utils/getVisitorKeys.ts @@ -0,0 +1,10 @@ +import { types as t } from '@babel/core'; +import type { Node, VisitorKeys } from '@babel/types'; + +type Keys<T extends Node> = (VisitorKeys[T['type']] & keyof T)[]; + +export default function getVisitorKeys<TNode extends Node>( + node: TNode +): Keys<TNode> { + return t.VISITOR_KEYS[node.type] as Keys<TNode>; +} |