module Data.JLD.Model.NodeObject (isNodeObject, isNotNodeObject) where import Data.JLD.Prelude import Data.JLD.Model.Keyword (Keyword (..)) import Data.Aeson (Value (..)) import Data.Aeson.Key qualified as K import Data.Aeson.KeyMap qualified as KM isNodeObject :: Value -> Bool isNodeObject (Object o) = ( not (KM.member (show KeywordValue) o) && not (KM.member (show KeywordList) o) && not (KM.member (show KeywordSet) o) ) || (KM.keys o == ([KeywordContext, KeywordGraph] <&> show .> K.fromText)) isNodeObject _ = False isNotNodeObject :: Value -> Bool isNotNodeObject = isNodeObject .> not