Packages

BEAM-native coding agent substrate for Elixir/OTP projects

Current section

Files

Jump to
vibe lib vibe server metadata.ex
Raw

lib/vibe/server/metadata.ex

defmodule Vibe.Server.Metadata do
@moduledoc "Server node metadata persistence for client discovery."
@spec path() :: Path.t()
def path, do: Vibe.Paths.server_metadata()
@spec write!(map()) :: :ok
def write!(metadata) do
path = path()
File.mkdir_p!(Path.dirname(path))
File.write!(path, Jason.encode!(metadata, pretty: true))
end
@spec read() :: {:ok, map()} | {:error, term()}
def read do
with {:ok, text} <- File.read(path()), do: Jason.decode(text)
end
@spec delete() :: :ok
def delete do
File.rm(path())
:ok
end
end