aboutsummaryrefslogtreecommitdiff
path: root/AesonUtils.hs
diff options
context:
space:
mode:
authorMiroslav Kratochvil <miroslav.kratochvil@uni.lu>2023-10-16 11:37:27 +0200
committerMiroslav Kratochvil <miroslav.kratochvil@uni.lu>2023-10-16 11:37:27 +0200
commitfee144a3eca7e35b998061032f87d1e053999c6d (patch)
tree4475ab5ad29f7ad4acbe875fe791ee1da68e8f5a /AesonUtils.hs
parent4cdbf598c0e343384f8af3421d332ed15d8afe4e (diff)
parent005b69dd472811d7a8e623c3761d476b5584b92c (diff)
downloadreploy-fee144a3eca7e35b998061032f87d1e053999c6d.tar.gz
reploy-fee144a3eca7e35b998061032f87d1e053999c6d.tar.bz2
Merge branch 'mk-howtocards-fixes' into 'master'
updates required for howto-cards See merge request lcsb/sps/reploy!5
Diffstat (limited to 'AesonUtils.hs')
-rw-r--r--AesonUtils.hs25
1 files changed, 25 insertions, 0 deletions
diff --git a/AesonUtils.hs b/AesonUtils.hs
new file mode 100644
index 0000000..f7b19ad
--- /dev/null
+++ b/AesonUtils.hs
@@ -0,0 +1,25 @@
+{-
+ - Copyright (C) 2023 University of Luxembourg
+ -
+ - Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ - use this file except in compliance with the License. You may obtain a copy
+ - of the License from the LICENSE file in this repository, or at:
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing, software
+ - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ - License for the specific language governing permissions and limitations
+ - under the License.
+ -}
+module AesonUtils where
+
+import qualified Data.Aeson as A
+import qualified Data.Aeson.KeyMap as KM
+
+-- | A bit like `lodashMerge` from aeson-extra, but replaces the arrays. Right
+-- argument overwrites the left one.
+objMerge :: A.Value -> A.Value -> A.Value
+objMerge (A.Object a) (A.Object b) = A.Object $ KM.unionWith objMerge a b
+objMerge _ b = b