Packages
jsv
0.11.5
0.21.2
0.21.1
0.21.0
0.20.0
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.5
0.11.4
0.11.3
retired
0.11.2
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
A JSON Schema Validator with complete support for the latest specifications.
Current section
Files
Jump to
Current section
Files
lib/jsv/codec/poison_codec.ex
# credo:disable-for-this-file Credo.Check.Readability.Specs
if Code.ensure_loaded?(Poison) do
defmodule JSV.Codec.PoisonCodec do
@moduledoc false
def supports_formatting? do
true
end
def supports_ordered_formatting? do
false
end
def decode!(json) do
Poison.decode!(json)
end
def decode(json) do
Poison.decode(json)
end
def encode_to_iodata!(data) do
Poison.encode_to_iodata!(data)
end
def format_to_iodata!(data) do
Poison.encode_to_iodata!(data, pretty: true)
end
@spec to_ordered_data(term, term) :: no_return()
def to_ordered_data(_data, _key_sorter) do
raise "ordered JSON encoding requires Jason"
end
end
defimpl Poison.Encoder, for: JSV.ValidationError do
def encode(err, opts) do
err
|> JSV.normalize_error()
|> Poison.Encoder.Map.encode(opts)
end
end
end