lib/hush/transformer/to_file.ex
defmodule Hush.Transformer.ToFile do
@moduledoc """
File writer transformer
"""
@behaviour Hush.Transformer
@impl true
@spec key() :: :to_file
def key(), do: :to_file
# sobelow_skip ["Traversal.FileModule"]
@impl true
@spec transform(config :: any(), value :: any()) :: {:ok, any()} | {:error, String.t()}
def transform(path, value) do
case File.write(path, value) do
:ok ->
{:ok, path}
{:error, reason} ->
{:error, "Couldn't write file to #{path} due to :#{reason}"}
end
end
end