Fork me on GitHub
#announcements
<
2023-05-12
>
kuzmin_m10:05:23

https://github.com/darkleaf/di: DI is a dependency injection framework that allows you to define dependencies as cheaply as defining function arguments. 2.3.0 With di/env-parsing middleware, you can add env parsers. https://www.darkleaf.ru/di/test/darkleaf/di/tutorial/n_env_test.html.

(defn jetty
  {::di/stop (memfn stop)}
  [{port    :env.long/PORT
    handler `handler
    :or  {port 8080}}]
  (jetty/run-jetty handler {:join? false
                            :port port}))

(di/start `jetty (di/env-parsing {:env.long parse-long}))

🎉 14
mkvlr10:05:34

great to see the Clerk docs! If you have any feedback, please let us know in #C035GRLJEP8

😊 2
borkdude10:05:47

https://github.com/borkdude/deps.clj: a faithful port of the clojure CLI bash script to Clojure This project now comes with an API for easier embedding in applications. Babashka is one such application, but #cursive will now also adopt it, which drove the creation of a more polished API so you can have more control over what happens during various phases of installation and process creation: borkdude/deps.clj {:mvn/version "1.11.1.1273-3"} See the API.md docs here: https://github.com/borkdude/deps.clj/blob/master/API.md Also see these additional API notes: https://github.com/borkdude/deps.clj#api Happy deps.clj-ing!

(require '[borkdude.deps :as deps])
user=> (deps/parse-cli-opts ["-M:foo:bar" "-m" "foo.bar"])
{:mode :main, :main-aliases ":foo:bar", :args ("-m" "foo.bar")}
Thanks to @cfleming for working on this with me.

🎉 29
clojure-spin 21
cursive 1
danielsz16:05:03

I've published a https://www.youtube.com/watch?v=xIuJ0f1Vqek about the Meyvn REPL. The Meyvn REPL supports Java and Kotlin codebases. Source files are being monitored and compiled automatically, so you can create a class in Java, import it in a Kotlin object, which you can then manipulate at the REPL in Clojure. It achieves this by doing static analysis not on source files but on compiled classes. By keeping a dependency graph, it knows which classes need to be reloaded and in what order. This technology is very useful in the context of teams inheriting legacy codebases, typically Java or Kotlin.

👀 21
🤯 10
❤️ 2