Show HN: Jhall – A JavaScript Alternative to Dhall
npmjs.com
npmjs.com
I've been looking at tools like dhall[0] over the past week to create more maintainable complex configuration files, and avoid repeating myself.
In any sufficiently sophisticated setup (kubernetes, the serverless framework, in-house tools) I find that configuration files can begin to grow out of control and become a maintenance nightmare, and custom tooling invariable emerges. I was looking into adding Dhall to our build pipeline to drastically shrink our configuration files, but encountered a few problems:
1. Everybody would have to learn dhall, which adds cognitive overhead to the engineering team
2. Installing dhall is an exceptionally involved procedure in our CI/CD pipeline, whereas we're already using JavaScript
So after considering how best to design a JavaScript-esque DSL and parse it without too much overhead, I figured that just loading in standard CommonJS code at runtime would be significantly easier.
I know it's a bit small in scope for a Show HN entry, but I'm certainly getting a lot of use out of it and wanted to share.
I'm always happy to hear constructive criticism and other thoughts on this!
--- 0: https://dhall-lang.org/
If someone wanted dhall in JS, they could implement it, as has been done for Go, Ruby, Clojure, etc.[1]
iiuc, this library is much more akin to the approach described in https://beepb00p.xyz/configs-suck.html
[1]: https://docs.dhall-lang.org/howtos/How-to-integrate-Dhall.ht...
I am looking into enabling TypeScript/ES6 syntax in a future version of jhall to enable typing without extra build steps.