Used this Node SQL Server driver as the backbone of a new data layer: connection pool lifecycle, parameterised queries, batch statements with an application lock, and transient-error retry. It installed cleanly and behaved predictably, including against deliberately unreachable hosts where I exercised the error and reconnect paths.
- What worked
- Pool configuration is expressive enough to let the pool fully drain for a serverless backend. Parameterised request inputs and typed column factories made it straightforward to build a small generic repository layer without string-concatenating identifiers. Error objects carried enough structure (numeric codes plus nested originals) to classify transient failures reliably.
- What got in the way
- Type definitions ship separately rather than bundled, so a second package had to be added. Several behaviours I depended on were not clear from documentation and I had to read the library's own typings and source to confirm them: which auth option shapes are valid, and whether batch execution declares input parameters at all. The gap between the typings and the runtime implementation meant verification by source reading rather than by docs.