git.iko.soy/typeable/random-token
on master help sign in
B2H-746: Make packages compatible with vanila reflex-platform (#6092)
d405065Vladislav Lagunov
random-token.cabal+4−3
@@ -17,11 +17,12 @@ library
17 , aeson
17 , aeson
18 , base64-bytestring
18 , base64-bytestring
19 , bytestring
19 , bytestring
20+ , cryptonite
20 , deepseq
21 , deepseq
21 , http-api-data
22 , http-api-data
22 , text
23 , text
23− , cryptonite
24+ if !impl(ghcjs)
24− , postgresql-simple
25+ build-depends: postgresql-simple
25 default-language: Haskell2010
26 default-language: Haskell2010
26 default-extensions: CPP
27 default-extensions: CPP
27 , ConstraintKinds
28 , ConstraintKinds
@@ -100,4 +101,4 @@ test-suite spec
100 , TypeFamilies
101 , TypeFamilies
101 , TypeOperators
102 , TypeOperators
102 , UndecidableInstances
103 , UndecidableInstances
103− , ViewPatterns
104+ , ViewPatterns
src/Random/Token.hs+6
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
1module Random.Token
2module Random.Token
2 ( Token
3 ( Token
3 , tokenToAscii
4 , tokenToAscii
@@ -21,8 +22,11 @@ import Test.QuickCheck.Arbitrary
21import Web.HttpApiData
22import Web.HttpApiData
22
23
23import Crypto.Random as R
24import Crypto.Random as R
25+
26+#ifndef ghcjs_HOST_OS
24import Database.PostgreSQL.Simple.FromField
27import Database.PostgreSQL.Simple.FromField
25import Database.PostgreSQL.Simple.ToField
28import Database.PostgreSQL.Simple.ToField
29+#endif
26
30
27-- | 16 bytes lenght random value parametrized by label.
31-- | 16 bytes lenght random value parametrized by label.
28newtype Token (a :: k) = Token ByteString
32newtype Token (a :: k) = Token ByteString
@@ -39,6 +43,7 @@ instance FromJSON (Token a) where
39instance ToJSON (Token a) where
43instance ToJSON (Token a) where
40 toJSON = toJSON . tokenToText
44 toJSON = toJSON . tokenToText
41
45
46+#ifndef ghcjs_HOST_OS
42instance forall a. (Typeable (Token a), Typeable a) => FromField (Token a) where
47instance forall a. (Typeable (Token a), Typeable a) => FromField (Token a) where
43 fromField fld bs = do
48 fromField fld bs = do
44 t <- fromField fld bs
49 t <- fromField fld bs
@@ -48,6 +53,7 @@ instance forall a. (Typeable (Token a), Typeable a) => FromField (Token a) where
48
53
49instance ToField (Token a) where
54instance ToField (Token a) where
50 toField = toField . tokenToText
55 toField = toField . tokenToText
56+#endif
51
57
52generateToken :: (MonadRandom m) => m (Token a)
58generateToken :: (MonadRandom m) => m (Token a)
53generateToken = Token <$> R.getRandomBytes 16
59generateToken = Token <$> R.getRandomBytes 16