Skip to content

Allow to return nil from a defn of a component#64

Merged
darkleaf merged 1 commit intomasterfrom
allow-return-nil-from-component
Nov 7, 2025
Merged

Allow to return nil from a defn of a component#64
darkleaf merged 1 commit intomasterfrom
allow-return-nil-from-component

Conversation

@darkleaf
Copy link
Copy Markdown
Owner

@darkleaf darkleaf commented Nov 5, 2025

Мы уже несколько раз подорвались на коде вида

(defn my-component [{flag `flag}]
  (when flag
    (side-effect)))

в тестах flag взведен, и все работает, т.к. side-effect у нас возвращает не nil,
но в проде он не взведен и приложение не запускается с ошибкой "A component fn must not return nil"

Можно было бы как-то внутри di вести учет nil компонентов, чтобы компонент для пользователя был настоящим nil но я что-то не могу придумать такого случая в реальности:

(defn other-component [{component `possible-nil-component
                        :or {component (create-default-impl ...)}}]
  ...)

в этом случае сам компонент должен вернуть дефолтную реализацию.


Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants