safe-> is a safe navigation macro for Clojure. It extends some-> with additional guards:
- doesn’t call nil values
- doesn’t call missing methods (ClojureScript only)
For example, call foo if not nil:
| JS | foo?.() |
| Clojure | (when foo (foo)) |
| Clojure macro | (safe-> (foo)) |
For chaining:
| JS | foo?.bar?.baz?.() |
|
| ClojureScript | (some-> foo .-bar .baz) |
← ERROR if baz is nil |
| ClojureScript macro | (safe-> foo .-bar .baz) |
← SAFE if baz is nil |