Current section

Files

Jump to
enux lib jsonc.ex
Raw

lib/jsonc.ex

defmodule Enux.Jsonc do
@moduledoc """
handles jsonc files
"""
import Enux.Utils
@doc """
decodes the jsonc passed to it by `Enux.load` and format it into a keyword list
"""
def decode(content, opts) do
decode = get_decode_function()
decoded = decode.(content)
cond do
is_map(decoded) -> decoded |> map_to_keyword_list(opts)
true -> decoded
end
end
defp get_decode_function do
cond do
is_list(Application.spec(:jsonc)) ->
&JSONC.decode!/1
true ->
raise "No jsonc decoder found"
end
end
end