avisonovate / config Goto Github PK
View Code? Open in Web Editor NEWConfigure a system using EDN files and clojure.spec
License: Apache License 2.0
Configure a system using EDN files and clojure.spec
License: Apache License 2.0
Given that config is still in alpha, the idea of moving towards clojure.spec (in Clojure 1.9) may become compelling.
Pros:
Cons:
It's a pretty common case that I want optional config keys because the function that will eventually take in that config has its own fallbacks. For example, with langhor (library for RabbitMQ), the connect
function accepts a map of connection parameters, e.g. :host
, :port
, :username
etc., all of which are optional and have defaults if they're not provided. So it makes sense for me to model my config after the map the connect
function accepts and exploit the built-in fallbacks. Furthermore, when I do want to set a value, I want to do it with environment variables. However, there doesn't seem to be a way to tell this library to optionally include a key based on whether or not an environment variable expansion is successful. The only way to avoid an exception is to provide a non-nil default, but that would require me to essentially duplicate the defaults that are already handled by langhor. Would it be possible to have some kind of reader conditional for optional configuration within a profile (perhaps where nil
as a value drops the key)?
I'm on clojure 1.9.0 and would love to use this library but can't due to the references to clojure.spec
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.