Skip to main content

src/version_bump@registry.erl

-module(version_bump@registry).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/version_bump/registry.gleam").
-export([default/0]).

-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.

?MODULEDOC(
    " The built-in plugin registry.\n"
    "\n"
    " Maps each built-in plugin's spec name to its `Plugin` record. The engine\n"
    " resolves a configured `PluginSpec.name` against this registry to obtain the\n"
    " hook implementations to run; an unknown name is a configuration error.\n"
    "\n"
    " The registry is intentionally a plain `Dict` so it stays a pure value with\n"
    " no IO. Names mirror the semantic-release package short-names (the `@…/`\n"
    " scope is dropped, matching how they are written in config).\n"
).

-file("src/version_bump/registry.gleam", 22).
?DOC(" The default registry of built-in plugins, keyed by spec name.\n").
-spec default() -> gleam@dict:dict(binary(), version_bump@plugin:plugin()).
default() ->
    _pipe = [{<<"commit-analyzer"/utf8>>,
            version_bump@plugins@commit_analyzer:plugin()},
        {<<"release-notes-generator"/utf8>>,
            version_bump@plugins@release_notes:plugin()},
        {<<"npm"/utf8>>, version_bump@plugins@npm:plugin()},
        {<<"hex"/utf8>>, version_bump@plugins@hex:plugin()},
        {<<"git"/utf8>>, version_bump@plugins@git:plugin()},
        {<<"github"/utf8>>, version_bump@plugins@github:plugin()},
        {<<"exec"/utf8>>, version_bump@plugins@exec:plugin()}],
    maps:from_list(_pipe).