blob: 9f35b0e033bd72df4a27d4158995ccbc092177a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
{-# LANGUAGE ImportQualifiedPost #-}
module Data.Ini.Config.URIDict
( uriDictParser
) where
import Control.Lens
import Data.Foldable (toList)
import Data.Ini.Config
import Data.Ini.Config.KeyValue
import Data.Map (Map)
import Data.Map qualified as Map
import Data.Maybe (isJust, fromJust)
import Data.Text hiding (filter)
import Network.URI (URI, parseURI)
uriDictParser :: SectionParser (Map String URI)
-- uriDictParser = fromList . filter (isJust . snd) . fmap (_2 %~ parseURI) $ kvParser
-- uriDictParser = fmap kvParser
uriDictParser = fmap (Map.fromList)
$ fmap (fmap (_2 %~ fromJust))
$ fmap (filter (isJust . snd))
$ fmap toList
$ fmap (fmap (_1 %~ unpack . strip))
$ fmap (fmap (_2 %~ parseURI . unpack . strip))
-- $ fmap (fmap (_2 .~ Just nullURI))
$ kvParser
|