null
firebase-rules
Our great sponsors
null | firebase-rules | |
---|---|---|
5 | 1 | |
1,747 | 7 | |
- | - | |
5.6 | 1.8 | |
2 months ago | about 3 years ago | |
Go | TypeScript | |
BSD 2-clause "Simplified" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
null
-
JSON encoder/decoder supporting omitempty on structs
Use-case: working on PATCH requests, the body may or may not contain nullable values. I am using guregu/null and I can't use a pointer because if the json contains "null" as a value, the pointer will be set to nil in the struct, instead of a value representing the presence of null. In short I can't differentiate the absence of the field in the request from the presence of the field with a null value.
-
Nilable - finally a way to stop using pointers just to get the nil state
https://github.com/guregu/null is an awesome package implementing most SQL scanner Interfaces plus JSON
- Golang backend with lots of raw SQL queries
-
Is there a downside to treating possible null values in DB as pointers in struct?
There’s also this: https://github.com/guregu/null
-
Gonion - Golang Client for querying Tor network data
Unfortunately in Go, switching to *bool makes the api a little more awkward to use since users that need to set true or false have to define a local variable then use a pointer to that. Another option would be something like null, but that adds a dependency to your currently-dependency-free project. If anyone has a better solution to this pattern, I'd love to hear it.
firebase-rules
-
Ask HN: What are some tools / libraries you built yourself?
Night Patrol - https://github.com/jahed/night-patrol
I got tired of passing flags to Nightwatch to filter tests and looking through results to re-run failures. So I made an interactive CLI for all of that. I stopped using this once I moved to Cypress but even with Cypress' web interface, I feel something like Night Patrol would be a lot more productive.
Firebase Rules - https://github.com/jahed/firebase-rules
I didn't like how Firebase's RTDB rules were expressions in JSON strings so I built a library to build them using a lisp-like syntax to compose and re-use rules. Firebase also has its own rules language (Bolt) but I'd rather not learn and maintain yet another tool-specific language.
Promises - https://github.com/jahed/promises
This isn't a complete solution yet, I didn't get time to refine the API. But I really prefer using Promises as result types (a.k.a. either, left/right) rather than using async/await/try/catch. It's so much more powerful to write code in a way that doesn't care if your functions are async or sync. Again, kind of like a lisp, there's also power in not being tied to a language's keywords and being able to provide a more tailored vocabulary.
What are some alternatives?
csvutil - csvutil provides fast and idiomatic mapping between CSV and Go (golang) values.
htmx - </> htmx - high power tools for HTML
validator - Simple validation for Rust structs
Pion WebRTC - Pure Go implementation of the WebRTC API
react-leaflet-canvas-overlay - React Leaflet component similar to ImageOverlay and VideoOverlay
tera - A template engine for Rust based on Jinja2/Django
gh-token - Manage installation access tokens for GitHub apps from your terminal 💻
GoJS, a JavaScript Library for HTML Diagrams - JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.
trdsql - CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.
Nullboard - Nullboard is a minimalist kanban board, focused on compactness and readability.
didder - An extensive, fast, and accurate command-line image dithering tool.
lowdefy - The config web stack for business apps - build internal tools, client portals, web apps, admin panels, dashboards, web sites, and CRUD apps with YAML or JSON.