Typescript wrapper around node-postgres
💥 breaking change 🚀 new feature 🐛 bug fix 🔧 chore 📓 docs
- 🔧 Dependency updates
- 🔧 improve PgDriverQueryError message
- 🐛 If a
queryOneOrNone
was executed with SQL that selected insufficient columns to fully populate the row type, it would erroneously returnNone
. Fixed now to return the expectedPgRowValidationError
type.
- 🐛 Prevent array positional parameters from being deduped.
- 💥 An additional
context
param has been added toconnection.query
andqueryX
functions. This is a blob of data that will be attached to query and transaction error instances. The normal use case for this is attaching application context so that error reporting functions can group errors together, or log out additional information about where the error came from.
- 🚀 Add
named
function to set the name of a givenSQL
-templated query.
- 🐛 Sql fragment parser should unwrap complex types (e.g. NonEmptyArray, Option) before passing it to the driver.
- 🐛 Fix broken nominal typing on classes by changing
public readonly _T = "<class name>"
topublic readonly _<class name>: void
. - 💥 As a result of fixing nominal typing,
makeConnectionPool
now returns an error union ofPgPoolCreationError | PgTypeParserSetupError
instead ofPgPoolCreationError
. Other errors may occur in application code as a result of the error classes now being correctly differentiated.
- 🔧 Add _T symbol to uniquely identify error classes
- 💥 Simplified the API by always requiring an environment object in which pg-ts can
store it's state (
Connection
) under aSymbol
key. This will never conflict with other keys in theE
, so we can now removeConnectionE
and related subsequent design decisions.
- 🐛
QueryAnyError
union includedPgRowCountError
. This is incorrect (obvs). - 🔧 Compiled with TS3.0.1.
-
Either
ish functions no longer return a simpleError
type in theirLeft
s. Instead, we now provide a union of concrete error types that make it explicit what the failure conditions are. Clients can pattern match on error type using the providedErrorPredicate
functions, e.g,isRowCountError
. Application-defined error types are propagated through thepg-ts
stack. -
Commonly-grouped errors are provided as unions, e.g.
ConnectionError<L>
,TransactionError<L>
. -
Renamed
withConnectionE
towidenToConnectionE
for clarity and to differentiate from thewithConnectionE
function defined onConnection
. -
withTransaction
has been replaced by three similar functions that assist you depending on whether you want to go from:Outer Context Inner Context Function to use Connection
Connection
withTransactionC
ConnectionE<E>
ConnectionE<E>
withTransactionE
ConnectionE<E>
Connection
withTransactionEC
-
Fixed the
types
setting in package.json, so imports should now default tofrom "pg-ts"
instead offrom "pg-ts/dist"
. -
Integration tests are provided. A
DATABASE_URL
environment variable must be present. The test suite will create the table it needs and will truncate before each test. Every query type is tested and transaction commit/rollback behaviour is also verified.