-
Notifications
You must be signed in to change notification settings - Fork 2
Description
First, I want to say that your work on libpg-query-wasm is awe-inspiring! I maintain an open source plugin called SafeQL which heavily relies on pg-parser. Currently, it uses libpg-query but due to incompatibility with Windows, I was looking at your implementation.
While trying to migrate the code, I've stumbled across some issues that are related to TypeScript types:
1. Node's properties should be T | undefined instead of T | null | undefined
While I assume it's auto-generated from protobuf, All of the properties of pg_query.INode are both nullable and undefined-able, which is incorrect in runtime. They are never nullable, but only undefined-able:
2. Node properties are typed as their interfaces rather than their classes
For instance, when trying to access node.aConst, it will be typed as (property) pg_query.INode.aConst?: pg_query.IA_Const while it should be typed as pg_query.A_Const. Due to this incorrect type, TypeScript will throw an error:
while in runtime it should be fine:



