@@ -150,11 +150,11 @@ defmodule Jsonpatch do
150150 iex> destination = %{"name" => "Bob", "married" => true, "hobbies" => ["Elixir!"], "age" => 33}
151151 iex> Jsonpatch.diff(source, destination)
152152 [
153- %Jsonpatch.Operation.Replace {path: "/married", value: true},
154- %Jsonpatch.Operation.Remove {path: "/hobbies/2"},
155- %Jsonpatch.Operation.Remove {path: "/hobbies/1"},
156- %Jsonpatch.Operation.Replace {path: "/hobbies/0", value: "Elixir!"},
157- %Jsonpatch.Operation.Add {path: "/age", value: 33}
153+ %{path: "/married", value: true, op: "replace" },
154+ %{path: "/hobbies/2", op: "remove "},
155+ %{path: "/hobbies/1", op: "remove "},
156+ %{path: "/hobbies/0", value: "Elixir!", op: "replace "},
157+ %{path: "/age", value: 33, op: "add" }
158158 ]
159159 """
160160 @ spec diff ( Types . json_container ( ) , Types . json_container ( ) ) :: [ Jsonpatch . t ( ) ]
@@ -190,7 +190,7 @@ defmodule Jsonpatch do
190190 |> flat ( )
191191 |> Stream . map ( fn { k , _ } -> escape ( k ) end )
192192 |> Stream . filter ( fn k -> k not in checked_keys end )
193- |> Stream . map ( fn k -> % Remove { path: "#{ ancestor_path } /#{ k } " } end )
193+ |> Stream . map ( fn k -> % { op: "remove" , path: "#{ ancestor_path } /#{ k } " } end )
194194 |> Enum . reduce ( patches , fn remove_patch , patches -> [ remove_patch | patches ] end )
195195 end
196196
@@ -201,7 +201,7 @@ defmodule Jsonpatch do
201201 case Utils . fetch ( source , key ) do
202202 # Key is not present in source
203203 { :error , _ } ->
204- [ % Add { path: current_path , value: val } | patches ]
204+ [ % { op: "add" , path: current_path , value: val } | patches ]
205205
206206 # Source has a different value but both (destination and source) value are lists or a maps
207207 { :ok , source_val } when are_unequal_lists ( source_val , val ) ->
@@ -213,7 +213,7 @@ defmodule Jsonpatch do
213213
214214 # Scalar source val that is not equal
215215 { :ok , source_val } when source_val != val ->
216- [ % Replace { path: current_path , value: val } | patches ]
216+ [ % { op: "replace" , path: current_path , value: val } | patches ]
217217
218218 _ ->
219219 patches
0 commit comments