{-# LANGUAGE RecordWildCards #-}

module Ondim.Targets.Whiskers.Load where

import Ondim.Loading (LoadConfig (..), loadFnSimple)
import Ondim.Targets.Whiskers.Expansions (defaultState)
import Ondim.Targets.Whiskers.Parser (parseWhiskers)

loadWhiskers :: (Text, Text) -> LoadConfig s
loadWhiskers :: forall s. (Text, Text) -> LoadConfig s
loadWhiskers (Text, Text)
d = LoadConfig {[FilePattern]
OndimState s
LoadFn s
forall {s}. OndimState s
patterns :: [FilePattern]
initialState :: forall {s}. OndimState s
loadFn :: LoadFn s
initialState :: OndimState s
loadFn :: LoadFn s
patterns :: [FilePattern]
..}
  where
    patterns :: [FilePattern]
patterns = [FilePattern
"**/*.w.*"]
    initialState :: OndimState s
initialState = OndimState s
forall {s}. OndimState s
defaultState
    loadFn :: LoadFn s
loadFn = (FilePattern -> LByteString -> Either FilePattern [WNode])
-> LoadFn s
forall a n.
OndimNode a =>
(FilePattern -> LByteString -> Either FilePattern a) -> LoadFn n
loadFnSimple \FilePattern
fp LByteString
bs -> (Text, Text) -> FilePattern -> Text -> Either FilePattern [WNode]
parseWhiskers (Text, Text)
d FilePattern
fp (Text -> Either FilePattern [WNode])
-> Text -> Either FilePattern [WNode]
forall a b. (a -> b) -> a -> b
$ LByteString -> Text
forall a b. ConvertUtf8 a b => b -> a
decodeUtf8 LByteString
bs