@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12module Random.Token
23 ( Token
34 , tokenToAscii
@@ -21,8 +22,11 @@ import Test.QuickCheck.Arbitrary
2122import Web.HttpApiData
2223
2324import Crypto.Random as R
25+
26+#ifndef ghcjs_HOST_OS
2427import Database.PostgreSQL.Simple.FromField
2528import Database.PostgreSQL.Simple.ToField
29+#endif
2630
2731-- | 16 bytes lenght random value parametrized by label.
2832newtype Token (a :: k) = Token ByteString
@@ -39,6 +43,7 @@ instance FromJSON (Token a) where
3943instance ToJSON (Token a) where
4044 toJSON = toJSON . tokenToText
4145
46+#ifndef ghcjs_HOST_OS
4247instance forall a. (Typeable (Token a), Typeable a) => FromField (Token a) where
4348 fromField fld bs = do
4449 t <- fromField fld bs
@@ -48,6 +53,7 @@ instance forall a. (Typeable (Token a), Typeable a) => FromField (Token a) where
4853
4954instance ToField (Token a) where
5055 toField = toField . tokenToText
56+#endif
5157
5258generateToken :: (MonadRandom m) => m (Token a)
5359generateToken = Token <$> R.getRandomBytes 16