Welcome to the PostgreSQL engine for Event-Sauced. As this is a component library, I would recommend readers to go check out the main library for an overview of what Event Sauced is meant to be.
I like learning about databases, what they can - and more importantly - what they can not do. This lead me to try and implement an opinionated, but quite thin - event sourcing framework on top of the world's more popular databases.
And one of those seems to be PostgreSQL, so let's get started!
I'm currently orchestrating everything using Github Actions. It is fun, there's a bunch of goodies to be had for free, and it keeps stuff well within GitHub.
I'm using a combination of Prettier, Husky, Lint-Staged and finally [ESLINT].
It's a set-up that I'm borrowing from Alex Jover's amazing Typescript Library Starter, and it's working a treat.
There are two levels of linting happening, Code Style and Static Analysis. The former will be applied as a Git pre-commit hook (courtesy of Husky) on only staged files for speed (courtesy of Lint-Staged), and will automatically format the code (courtesy of Prettier).
The latter linter step - making use of more in-depth static analysis information - will be triggered as part of a Git pre-push hook, as it's generally a more expensive operation, and I don't want to be bothered all the time, as long as I get bothered before I actually push to my remotes.
You can find more on this in package.json
.
I like to keep the run-time dependency count to a bare minimum. This means that - in this case - I'll be fighting tooth and nail to keep the runtime dependencies to 2:
- the core event-sauced library
- pg - Incredibly stable PostgreSQL library for Node.js
Dependency versioning is managed in two ways:
- Automated - via Renovate
- Manual -
npm start maintenance.update_dependencies.interactive
- This will runnpm-check-updates
and guide you through an update.
You can perform a maintenance dry-run using just npm start maintenance
.
- Node.js
- Typescript - Type all the things
- Rollup - Package all the things
- Jest - Test all the things
- Wallaby - Test all the things RIGHT NOW
- Visual Studio Code - Write..all the things??
That's probably it for now.
@TODO - Fill this in once there's some code to examplify.
@TODO - Fill this in once there's some package to install.
@TODO - Fill this in (there's a pattern here, it's subtle though) once there's something to test.
@TODO - Set up contributers agreement
@TODO - Fill this in once you remember who all to thank
copyright © 2017-2019 YannickMeeus