-
Notifications
You must be signed in to change notification settings - Fork 188
Open
Description
I'm receiving a BigInteger value from snowflake-sdk & I need to convert it to JS Number or JS Big Int to serialize it correctly. When I try to use bigInt.isInstance(value), it always return false. Can you help me understand what's wrong?
// rows = snowflakeConn.execute({binds, sqlText})
// rows contains some BigInteger value
// cellValue extracted from rows
import bigInt from 'big-integer'
bigInt.isInstance(cellValue) # false
# { cellValue: Integer { value: 159100n }, isBigInt: false }
# { cellValue: Integer { value: 159200n }, isBigInt: false }
I've also tried the following import & it didn't work either/
import * as bigInt from 'big-integer'
As far as I know, they creates bigInt value like this:
https://github.com/snowflakedb/snowflake-connector-nodejs/blob/21f884c0a050f536fb1a87ddcc28cacaaeb71daf/lib/connection/result/column.js#L303
Currently, I'm using a workaround like this:
return typeof value === 'object' && value.constructor.name === 'Integer'
On a separate note, It would also be useful to have a toJSValue() that return the underlying value in JS type. toJSNumber is useful but it only works correctly for non-big-int numbers.
Metadata
Metadata
Assignees
Labels
No labels