Soundcheck.Check.Warning.InvalidLiveComponent (soundcheck v0.1.0)

Copy Markdown View Source

Basics

This check is disabled by default.

Learn how to enable it via .credo.exs.

This check has a base priority of high and works with any version of Elixir.

Explanation

Flags <.live_component> calls that LiveView rejects when it renders them: a missing id or module, or a module that is not a LiveComponent. Each raises ArgumentError on render, and the compiler reports none of them.

Before:

<.live_component module={MyAppWeb.PostLive.FormComponent} post={@post} />

After:

<.live_component
  module={MyAppWeb.PostLive.FormComponent}
  id={@post.id || :new}
  post={@post}
/>

The module check expands the alias as the template's module does and reads the compiled module; modules it cannot load are skipped. Calls that spread attributes ({@rest}) are skipped, since the spread may carry both.

Confidence: high. Tier: semantic for the module check (run mix compile before mix credo); the missing-attribute checks work without compiling.

Check-Specific Parameters

Use the following parameters to configure this check:

:excluded_paths

Paths to skip (atoms, binaries as path segments, or regexes).

This parameter defaults to [~r/\/test\//, "test"].

:strict

Unused.

This parameter defaults to false.

General Parameters

Like with all checks, general params can be applied.

Parameters can be configured via the .credo.exs config file.