Type parsers describe how to parse PostgreSQL types.
type TypeParserType = {|
+name: string,
+parse: (value: string) => *
|};
Example:
{
name: 'int8',
parse: (value) => {
return parseInt(value, 10);
}
}
Note: Unlike pg-types
that uses OIDs to identify types, Slonik identifies types using their names.
Use this query to find type names:
SELECT
typname
FROM pg_type
ORDER BY typname ASC
Type parsers are configured using typeParsers
client configuration.
Read: Default type parsers.
Type name | Implemnetation | Factory function name |
---|---|---|
date |
Produces a literal date as a string (format: YYYY-MM-DD). | createDateTypeParser |
int8 |
Produces an integer. | createBigintTypeParser |
interval |
Produces interval in seconds (integer). | createIntervalTypeParser |
numeric |
Produces a float. | createNumericTypeParser |
timestamp |
Produces a unix timestamp (in milliseconds). | createTimestampTypeParser |
timestamptz |
Produces a unix timestamp (in milliseconds). | createTimestampWithTimeZoneTypeParser |
Built-in type parsers can be created using the exported factory functions, e.g.
import {
createTimestampTypeParser
} from 'slonik';
createTimestampTypeParser();
// {
// name: 'timestamp',
// parse: (value) => {
// return value === null ? value : Date.parse(value);
// }
// }