solidity-ast
Version:
Solidity AST schema and type definitions
12 lines (7 loc) • 474 B
TypeScript
import { Node, NodeType, NodeTypeMap } from '../node';
export type ExtendedNodeType = '*' | NodeType;
export interface ExtendedNodeTypeMap extends NodeTypeMap {
'*': Node;
}
export function isNodeType<N extends Node, T extends ExtendedNodeType>(nodeType: T | readonly T[]): (node: N) => node is N & ExtendedNodeTypeMap[T];
export function isNodeType<N extends Node, T extends ExtendedNodeType>(nodeType: T | readonly T[], node: N): node is N & ExtendedNodeTypeMap[T];