diff options
author | Volpeon <github@volpeon.ink> | 2023-05-28 08:13:08 +0200 |
---|---|---|
committer | Volpeon <github@volpeon.ink> | 2023-05-28 08:13:08 +0200 |
commit | 8c49a30faa431b8b56a4b4926e7dae56b1311fea (patch) | |
tree | 6a103b49cdfe6df38fadad1f9d59521dd92ebf74 /src/Data/JLD.hs | |
parent | Added Node Map Merging algorithm (diff) | |
download | hs-jsonld-8c49a30faa431b8b56a4b4926e7dae56b1311fea.tar.gz hs-jsonld-8c49a30faa431b8b56a4b4926e7dae56b1311fea.tar.bz2 hs-jsonld-8c49a30faa431b8b56a4b4926e7dae56b1311fea.zip |
Completed untested Flattening implementation
Diffstat (limited to 'src/Data/JLD.hs')
-rw-r--r-- | src/Data/JLD.hs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Data/JLD.hs b/src/Data/JLD.hs index c5c28eb..d7688d0 100644 --- a/src/Data/JLD.hs +++ b/src/Data/JLD.hs | |||
@@ -5,6 +5,7 @@ module Data.JLD ( | |||
5 | JLDExpansionParams (..), | 5 | JLDExpansionParams (..), |
6 | JLDExpansionState (..), | 6 | JLDExpansionState (..), |
7 | expand, | 7 | expand, |
8 | flatten, | ||
8 | ) where | 9 | ) where |
9 | 10 | ||
10 | import Data.JLD.Prelude | 11 | import Data.JLD.Prelude |
@@ -15,6 +16,7 @@ import Data.JLD.Expansion (JLDEParams (..)) | |||
15 | import Data.JLD.Expansion qualified as E (expand) | 16 | import Data.JLD.Expansion qualified as E (expand) |
16 | import Data.JLD.Expansion.Context (buildActiveContext) | 17 | import Data.JLD.Expansion.Context (buildActiveContext) |
17 | import Data.JLD.Expansion.Global (JLDExpansionEnv (..), JLDExpansionState (..)) | 18 | import Data.JLD.Expansion.Global (JLDExpansionEnv (..), JLDExpansionState (..)) |
19 | import Data.JLD.Flattening qualified as F (flatten) | ||
18 | import Data.JLD.Mime | 20 | import Data.JLD.Mime |
19 | import Data.JLD.Model.ActiveContext (ActiveContext (..), newActiveContext) | 21 | import Data.JLD.Model.ActiveContext (ActiveContext (..), newActiveContext) |
20 | import Data.JLD.Model.Keyword (Keyword (..)) | 22 | import Data.JLD.Model.Keyword (Keyword (..)) |
@@ -97,3 +99,10 @@ expand document baseUrl paramsFn = do | |||
97 | Left err -> Left err | 99 | Left err -> Left err |
98 | 100 | ||
99 | pure (result', state') | 101 | pure (result', state') |
102 | |||
103 | flatten :: Monad m => Value -> URI -> (JLDExpansionParams () m -> JLDExpansionParams e m) -> m (Either (JLDError e) Value, JLDExpansionState) | ||
104 | flatten document baseUrl paramsFn = do | ||
105 | (result, state') <- expand document baseUrl paramsFn | ||
106 | case result of | ||
107 | Left err -> pure (Left err, state') | ||
108 | Right expanded -> fmap (,state') <. runExceptT <| F.flatten expanded | ||