{"version":3,"file":"ast-utils.cjs","names":[],"sources":["../../src/sql/ast-utils.ts"],"sourcesContent":["import type { Node } from \"@pgsql/types\";\n\nexport type KeysOfUnion<T> = T extends T ? keyof T : never;\n\nexport function is<K extends KeysOfUnion<Node>>(\n  node: Node,\n  kind: K,\n): node is Extract<Node, Record<K, unknown>> {\n  return kind in node;\n}\n\nexport function isANode(node: unknown): node is Node {\n  if (typeof node !== \"object\" || node === null) {\n    return false;\n  }\n  const keys = Object.keys(node);\n  return keys.length === 1 && /^[A-Z]/.test(keys[0]);\n}\n\nexport function getNodeKind(node: Node): KeysOfUnion<Node> {\n  const keys = Object.keys(node);\n  return keys[0] as KeysOfUnion<Node>;\n}\n"],"mappings":";;AAIA,SAAgB,GACd,MACA,MAC2C;AAC3C,QAAO,QAAQ;;AAGjB,SAAgB,QAAQ,MAA6B;AACnD,KAAI,OAAO,SAAS,YAAY,SAAS,KACvC,QAAO;CAET,MAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,QAAO,KAAK,WAAW,KAAK,SAAS,KAAK,KAAK,GAAG;;AAGpD,SAAgB,YAAY,MAA+B;AAEzD,QADa,OAAO,KAAK,KACd,CAAC"}