7 ms·
Super cool, looks great. Interesting to see you built it with Typescript. I was wondering-- and I know this is a long story, but I am curious: How does one g
by twomoonsbysurf 4y ago
Super cool, looks great. Interesting to see you built it with Typescript.
I was wondering-- and I know this is a long story, but I am curious:
How does one go about building a PostgreSQL driver for NodeJS in Typescript?
How do you design and begin that sort of thing? What sort of knowledge resources did you rely on (i.e. documentation, other references)?
I googled 'database driver' to get a definition: "A database driver is a computer program that implements a protocol (ODBC or JDBC) for a database connection. The driver works like an adaptor which connects a generic interface to a specific database vendor implementation."
- porsager 4y agoThanks a lot. I did not built it with Typescript, just plain js - I don't use Typescript at all(not my cup of tee), but a kind soul (thanks @minigugus) contributed the typings ;) I actually began it out of curiosity and because I was missing features in the current options. I had been using a wrapper around pg-promise to give me the API i wanted for quite a while, and one day when going through the PostgreSQL documentation I landed on the protocol (https://www.postgresql.org/docs/current/protocol.html https://www.postgresql.org/docs/current/protocol.html) pages. Now the PostgreSQL documentation might seem daunting at first, but once you figure out the structure and semantics it's such an insanely good resource. I had the first POC version working over a weekend, and from there it was about 80% of the way to support all the things I needed. Now the Postgres protocol is actually fairly simple, and I suppose that's why other databases have chosen to use it as well (eg. Postgres.js also works with cockroachdb). I would love to write a longer post about the progress at some point, but I haven't found the time for it yet.
- domlebo70 4y agoHey. Love this lib. I am curious why you decided against using TS here? You mentioned it's not your cup of tea.
- lukaszkups 4y agoI can only assume that I've finally found a soulmate that just don't like writing TS code. Like, in my full-time job I'm using 100% TypeScript, but I don't really ENJOY writing in it - that's why in my all side-projects I use good old JavaScript. I think it's just a personal syntax preference. But I don't want to answer this for the OP, just added my 2cents, maybe he has similar feeling about it :)
- porsager 4y agoHaha.. There's plenty of us out there, it's probably just that we'd rather do actual stuff than talk about doing it. A bit like Typescript - it doesn't really do anything, it just talks about it. Joking aside, I generally don't want to get into the debate, because I believe people work differently, and there should be room for doing both things. It's just a bit sad that Typescript is being pushed so hard as if it's the only right way.
- twomoonsbysurf 4y ago
- jamil7 4y ago> It's just a bit sad that Typescript is being pushed so hard as if it's the only right way. It's being evangelised as if it has zero downsides, it introduces overhead to what can already be a brittle dependency/build chain - providing questionable levels of actual type safety. This is coming from someone who generally prefers typed languages too, Typescript to me is the exception to that rule.
- toastercat 4y agoYep! I'm the same way -- it comes from a love of simplicity and an affair I had with Lua, which I find marvelously simple and inspirational.
- Aeolun 4y agoSome people really love the simplicity that comes from zero compilation. I like that too, so I always start with just JS, but then two files in realize I really want my typings. Now I use esbuild instead of tsc, and I have the best of both worlds.
- toastercat 4y ago> Now I use esbuild instead of tsc, and I have the best of both worlds. I'm interested in this. I know esbuild can compile TypeScript to JS, but that it doesn't serve as an actual typechecker. Without tsc as a dev dependency, do you just rely on your IDE's intellisense to tell you when there's a type error?
- Aeolun 4y agoI still install tsc, but I don’t actually do the type checking except at release time (and whatever typechecking the IDE provides through the language server).
- twomoonsbysurf 4y ago