module Staversion.Internal.BuildPlan.Version
( parseVersionText,
VersionJSON(..)
) where
import Control.Applicative (empty, pure)
import Data.Aeson (FromJSON(..), Value(..))
import Data.Maybe (listToMaybe)
import Data.Text (Text, unpack)
import Staversion.Internal.Version (parseVersionText, Version)
newtype VersionJSON = VersionJSON { unVersionJSON :: Version } deriving (Show,Eq,Ord)
instance FromJSON VersionJSON where
parseJSON (String t) = maybe empty pure $ fmap VersionJSON $ parseVersionText t
parseJSON _ = empty