prolude 0.0.0.13 → 0.0.0.14
raw patch · 16 files changed
+241/−58 lines, 16 filesdep +network-uridep ~QuickCheckdep ~generic-randomdep ~lensPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: network-uri
Dependency ranges changed: QuickCheck, generic-random, lens, quickcheck-instances, swagger2
API changes (from Hackage documentation)
- Prolude.Json: class FromJSON a
- Prolude.Json: class ToJSON a
- Prolude.Json: eitherDecode :: FromJSON a => ByteString -> Either String a
- Prolude.Json: encode :: ToJSON a => a -> ByteString
+ Prolude.Core: Proxy :: Proxy (t :: k)
+ Prolude.Core: data Proxy (t :: k)
+ Prolude.Uri: stringToUri :: String -> Either String URI
+ Prolude.Uri: textToUri :: Text -> Either String URI
+ Prolude.Uri: type Uri = URI
+ Prolude.Uri: uriToString :: URI -> String
+ Prolude.Uri: uriToText :: URI -> Text
Files
- Prolude.hs +9/−0
- Prolude/Aeson.hs +19/−1
- Prolude/ByteString.hs +14/−5
- Prolude/Core.hs +22/−14
- Prolude/Csv.hs +14/−1
- Prolude/Exception.hs +6/−1
- Prolude/Foldable.hs +5/−1
- Prolude/Json.hs +15/−9
- Prolude/MongoDB.hs +23/−4
- Prolude/Swagger.hs +10/−1
- Prolude/Test.hs +4/−1
- Prolude/Text.hs +16/−1
- Prolude/Time.hs +8/−4
- Prolude/Uri.hs +53/−0
- Prolude/Uuid.hs +15/−9
- prolude.cabal +8/−6
Prolude.hs view
@@ -1,3 +1,10 @@+{- | +Module: Prolude+Description: A custom prelude built by the ITProTV engineers.+Copyright: Copyright (c) 2020 EdutainmentLIVE, LLC+License: MIT+-}+ module Prolude ( module Prolude.Aeson , module Prolude.ByteString@@ -17,6 +24,7 @@ , module Prolude.Test , module Prolude.Text , module Prolude.Time+ , module Prolude.Uri , module Prolude.Uuid ) where@@ -39,4 +47,5 @@ import Prolude.Test import Prolude.Text import Prolude.Time+import Prolude.Uri import Prolude.Uuid
Prolude/Aeson.hs view
@@ -1,9 +1,15 @@ {-# LANGUAGE PatternSynonyms #-} module Prolude.Aeson- ( module Data.Aeson+ ( -- * Aeson re-exports+ -- $aeson+ module Data.Aeson+ -- * Alias types+ -- $alias , JsonOptions , JsonValue+ -- * Pattern synonyms+ -- $pattern , pattern JsonArray , pattern JsonBoolean , pattern JsonNull@@ -31,6 +37,18 @@ import qualified Data.Scientific as Scientific import qualified Data.Text as Text import qualified Data.Vector as Vector++{- $aeson+These are our re-exports from Aeson. They include: The FromJSON and ToJSON classes; Generic JSON parsing; (.!=), (.:), (.:?), (.=)+-}++{- $alias+We created type aliases for Aeson.Options and Aeson.Value.+-}++{- $pattern+We created pattern synonyms for the Aeson.Value constructors.+-} type JsonOptions = Aeson.Options type JsonValue = Aeson.Value
Prolude/ByteString.hs view
@@ -1,9 +1,14 @@ module Prolude.ByteString- ( module Data.ByteString- , LazyByteString- , putLazyByteString- , writeByteStringToFile- )+ ( -- * ByteString re-exports+ module Data.ByteString+ -- * ByteString functions+ , writeByteStringToFile+ -- * LazyByteString type alias+ -- $alias+ , LazyByteString+ -- * LazyByteString functions+ , putLazyByteString+ ) where import Data.ByteString (ByteString)@@ -11,6 +16,10 @@ import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as LBS import qualified System.IO as IO++{- $alias+We created a type alias for LazyByteString.ByteString simply called LazyByteString.+-} type LazyByteString = LBS.ByteString
Prolude/Core.hs view
@@ -1,36 +1,45 @@ module Prolude.Core- ( module Control.Applicative+ ( -- * Applicative re-exports+ module Control.Applicative+ -- * Monad re-exports , module Control.Monad , module Control.Monad.Fail+ , module Data.Monoid+ -- * Base re-exports , module Data.Bool- , module Data.Char , module Data.Either , module Data.Eq , module Data.Foldable , module Data.Function , module Data.Functor- , module Data.Int , module Data.Kind- , module Data.List- , module Data.Monoid , module Data.Ord+ , module Data.Proxy , module Data.Semigroup- , module Data.String , module Data.Traversable- , module Data.Tuple- , module Data.Word , module GHC.Base- , module GHC.Enum , module GHC.Err- , module GHC.Float , module GHC.Generics , module GHC.IO.Exception- , module GHC.List- , module GHC.Num- , module GHC.Real , module GHC.Show , module System.IO , module Text.Read+ -- * List re-exports+ , module Data.List+ , module GHC.List+ -- * Number re-exports+ , module Data.Int+ , module GHC.Enum+ , module GHC.Float+ , module GHC.Num+ , module GHC.Real+ -- * String + Text re-exports+ , module Data.Char+ , module Data.String+ , module Data.Word+ -- * Tuple re-exports+ , module Data.Tuple+ -- * Identity , identity ) where@@ -105,4 +114,3 @@ identity :: a -> a identity x = x {-# INLINE identity #-}-
Prolude/Csv.hs view
@@ -1,9 +1,14 @@ {-# LANGUAGE ConstraintKinds #-} module Prolude.Csv- ( module Data.Csv+ ( -- * Csv re-exports+ module Data.Csv+ -- * Alias types+ -- $alias , FromCsvField , ToCsvField+ -- * Alias functions+ -- $functions , parseCsvField , toCsvField )@@ -14,6 +19,14 @@ , ToNamedRecord ) import qualified Data.Csv as Csv++{- $alias+We created type aliases for the Csv.ToField and Csv.FromField classes.+-}++{- $functions+We created aliases for the Csv.parseField and Csv.toField functions.+-} type FromCsvField = Csv.FromField type ToCsvField = Csv.ToField
Prolude/Exception.hs view
@@ -1,6 +1,8 @@ module Prolude.Exception- ( module Control.Exception.Safe+ ( -- * Exception re-exports+ module Control.Exception.Safe , UnsafeException.AsyncException(..)+ -- * Exception functions , catchIf , unsafeEvaluate , unsafeThrow@@ -12,11 +14,14 @@ import qualified Control.Exception as UnsafeException import Control.Exception.Safe hiding (catchIO, throwM) +-- | Function alias for Control.Exception.evaluate unsafeEvaluate :: a -> IO a unsafeEvaluate = UnsafeException.evaluate +-- | Function alias for Control.Exception.throw unsafeThrow :: Exception e => e -> a unsafeThrow = UnsafeException.throw +-- | Catch exception based on a predicate catchIf :: (MonadCatch m, Exception e) => (e -> Bool) -> m a -> (e -> m a) -> m a catchIf f a b = catch a $ \e -> if f e then b e else throw e
Prolude/Foldable.hs view
@@ -1,7 +1,11 @@ module Prolude.Foldable- ( module Data.Foldable+ ( -- * Foldable re-exports+ module Data.Foldable+ -- * Map re-exports , module Data.Map+ -- * Set re-exports , module Data.Set+ -- * GHC re-exports , module GHC.Exts ) where
Prolude/Json.hs view
@@ -1,19 +1,25 @@ module Prolude.Json- ( module Data.Aeson+ ( -- * Aeson re-exports+ module Data.Aeson+ -- * Aeson.Types re-exports , module Data.Aeson.Types+ -- * Aeson functions , jsonEitherDecode , jsonEncode ) where -import Data.Aeson (FromJSON, ToJSON, eitherDecode, encode, withObject, withText)+import Data.Aeson (withObject, withText) import Data.Aeson.Types (Parser)-import Data.ByteString.Lazy (ByteString)-import Data.Either (Either)-import Data.String (String)+import qualified Data.Aeson as Aeson+import qualified Data.ByteString.Lazy as ByteString+import qualified Data.Either as Either+import qualified Data.String as String -jsonEitherDecode :: FromJSON a => ByteString -> Either String a-jsonEitherDecode = eitherDecode+-- | Function alias for Aeson.eitherDecode+jsonEitherDecode :: Aeson.FromJSON a => ByteString.ByteString -> Either.Either String.String a+jsonEitherDecode = Aeson.eitherDecode -jsonEncode :: ToJSON a => a -> ByteString-jsonEncode = encode+-- | Function alias for Aeson.encode+jsonEncode :: Aeson.ToJSON a => a -> ByteString.ByteString+jsonEncode = Aeson.encode
Prolude/MongoDB.hs view
@@ -2,7 +2,10 @@ {-# LANGUAGE ConstraintKinds #-} module Prolude.MongoDB- ( module Database.MongoDB+ ( -- * MongoDB re-exports+ module Database.MongoDB+ -- * Type aliases+ -- $type , MongoAction , MongoCollection , MongoDatabase@@ -12,6 +15,8 @@ , MongoQuery , MongoValue , MongoVal+ -- * Pattern synonyms+ -- $synonyms , pattern MongoArray , pattern MongoBin , pattern MongoBool@@ -32,6 +37,8 @@ , pattern MongoUserDef , pattern MongoUTC , pattern MongoUuid+ -- * Function aliases+ -- $functions , mongoFailed , mongoInsert_ , mongoModified@@ -42,13 +49,25 @@ import Prolude.Core -import Control.Monad.IO.Class (MonadIO) import Database.MongoDB (ObjectId, UpdateOption(MultiUpdate), fval, genObjectId, (=:))+import qualified Control.Monad.IO.Class as Monad import qualified Data.Int as Int import qualified Data.Text as Text import qualified Data.Time as Time import qualified Database.MongoDB as Mongo +{- $type+We created type aliases for specific Mongo types. These include: Action, Collection, Database, Document, Field, Label, Query, Selector, Val, and Value.+-}++{- $synonyms+We created pattern synonyms for the MongoValue constructors.+-}++{- $functions+We created aliases for specific Mongo functions. These include: failed, insert_, nModified, select, and updateMany.+-}+ type MongoAction = Mongo.Action type MongoCollection = Mongo.Collection type MongoDatabase = Mongo.Database@@ -146,7 +165,7 @@ mongoFailed :: Mongo.WriteResult -> Bool mongoFailed = Mongo.failed -mongoInsert_ :: MonadIO m => MongoCollection -> MongoDocument -> MongoAction m ()+mongoInsert_ :: Monad.MonadIO m => MongoCollection -> MongoDocument -> MongoAction m () mongoInsert_ = Mongo.insert_ mongoModified :: Mongo.WriteResult -> Maybe Int@@ -156,7 +175,7 @@ mongoSelect = Mongo.select mongoUpdateMany- :: MonadIO m+ :: Monad.MonadIO m => MongoCollection -> [(MongoSelector, MongoDocument, [UpdateOption])] -> MongoAction m Mongo.WriteResult
Prolude/Swagger.hs view
@@ -1,9 +1,13 @@ {-# LANGUAGE ConstraintKinds #-} module Prolude.Swagger - ( Swagger.SwaggerType(..)+ ( -- * SwaggerType re-export+ Swagger.SwaggerType(..)+ -- * Alias types+ -- $alias , SwaggerToSchema , SwaggerToParamSchema+ -- * Functions , defaultDeclareNamedSchema ) where@@ -13,9 +17,14 @@ import qualified Data.Swagger.Internal.Schema as Swagger import qualified Data.Swagger.Internal.TypeShape as Swagger +{- $alias+We created type aliases for Swagger.ToSchema and Swagger.ToParamSchema.+-}+ type SwaggerToParamSchema = Swagger.ToParamSchema type SwaggerToSchema = Swagger.ToSchema +-- | Function to help with Swagger.ToSchema instances defaultDeclareNamedSchema :: Applicative f => (Swagger.Schema -> Swagger.Schema) -> proxy a -> f Swagger.NamedSchema defaultDeclareNamedSchema f = const . pure . Swagger.NamedSchema Nothing $ f mempty
Prolude/Test.hs view
@@ -4,8 +4,11 @@ {-# LANGUAGE UndecidableInstances #-} module Prolude.Test - ( module Test.QuickCheck+ ( -- * QuickCheck re-exports+ module Test.QuickCheck+ -- * Type , ArbitraryUniform(..)+ -- * Function , arbitraryIO ) where
Prolude/Text.hs view
@@ -1,6 +1,9 @@ module Prolude.Text- ( LazyText+ ( -- $conversions+ -- * Types+ LazyText , Text.Text+ -- * Functions , lazyTextToString , lazyTextToText , stringToLazyText@@ -12,6 +15,18 @@ import qualified Data.Text as Text import qualified Data.Text.Lazy as LazyText++{- $conversions++----------+------------------+------------------+----------------++| From/To | LazyText | String | Text |++----------+------------------+------------------+----------------++| LazyText | - | lazyTextToString | lazyTextToText |++----------+------------------+------------------+----------------++| String | stringToLazyText | - | stringToText |++----------+------------------+------------------+----------------++| Text | textToLazyText | textToString | - |++----------+------------------+------------------+----------------++-} type LazyText = LazyText.Text
Prolude/Time.hs view
@@ -1,8 +1,12 @@ module Prolude.Time- ( module Data.Time.Calendar+ ( -- * Data.Time.Calendar re-exports+ module Data.Time.Calendar+ -- * Data.Time.Clock re-exports , module Data.Time.Clock , module Data.Time.Clock.POSIX+ -- * Data.Time.Format re-exports , module Data.Time.Format+ -- * Functions , getCurrentTime ) where@@ -13,9 +17,9 @@ import Data.Time.Clock.POSIX (POSIXTime, getPOSIXTime, posixSecondsToUTCTime, utcTimeToPOSIXSeconds) import Data.Time.Format (defaultTimeLocale, formatTime) -import Control.Monad.IO.Class (MonadIO(liftIO))+import qualified Control.Monad.IO.Class as Monad import qualified Data.Time as Time -- | Returns now-getCurrentTime :: MonadIO m => m UTCTime-getCurrentTime = liftIO Time.getCurrentTime+getCurrentTime :: Monad.MonadIO m => m UTCTime+getCurrentTime = Monad.liftIO Time.getCurrentTime
+ Prolude/Uri.hs view
@@ -0,0 +1,53 @@+module Prolude.Uri + ( -- $conversions+ -- * Type alias+ Uri+ -- * Functions+ , stringToUri+ , textToUri+ , uriToString+ , uriToText+ )+where++import qualified Data.Either as Either+import qualified Data.String as String+import qualified Data.Text as Text+import qualified Network.URI as URI++import qualified Prolude.Core as Core+import qualified Prolude.Text as Text++{- $conversions++---------+-------------+-------------++| From/To | Uri | String |++---------+-------------+-------------++| Uri | - | uriToString |++---------+-------------+-------------++| String | stringToUri | - |++---------+-------------+-------------++++---------+-----------+-----------++| From/To | Uri | Text |++---------+-----------+-----------++| Uri | - | uriToText |++---------+-----------+-----------++| Text | textToUri | - |++---------+-----------+-----------++-}++type Uri = URI.URI++stringToUri :: String.String -> Either.Either String.String URI.URI+stringToUri string = case URI.parseURI string of+ Nothing -> Left $ "invalid URI: " <> show string+ Just uri -> Right uri++textToUri :: Text.Text -> Either.Either String.String URI.URI+textToUri = stringToUri . Text.textToString++uriToString :: URI.URI -> String.String+uriToString uri = URI.uriToString Core.identity uri ""++uriToText :: URI.URI -> Text.Text+uriToText = Text.stringToText . uriToString
Prolude/Uuid.hs view
@@ -1,13 +1,15 @@ module Prolude.Uuid - ( Uuid- , randomUuid- , textToUuid- , uuidToText- , wordsToUuid- )+ ( -- * Type alias+ Uuid+ -- * Functions+ , randomUuid+ , textToUuid+ , uuidToText+ , wordsToUuid+ ) where -import Control.Monad.IO.Class (MonadIO(liftIO))+import qualified Control.Monad.IO.Class as Monad import qualified Data.Maybe as Maybe import qualified Data.Text as Text import qualified Data.UUID as UUID@@ -17,14 +19,18 @@ type Uuid = UUID.UUID +-- | Converts a Uuid to Text uuidToText :: Uuid -> Text.Text uuidToText = UUID.toText +-- | Converts a Text to a Maybe Uuid textToUuid :: Text.Text -> Maybe.Maybe Uuid textToUuid = UUID.fromText +-- | Creates a Uuid from Words wordsToUuid :: Word.Word32 -> Word.Word32 -> Word.Word32 -> Word.Word32 -> Uuid wordsToUuid = UUID.fromWords -randomUuid :: MonadIO m => m Uuid-randomUuid = liftIO UUID.nextRandom+-- | Returns a randomUuid+randomUuid :: Monad.MonadIO m => m Uuid+randomUuid = Monad.liftIO UUID.nextRandom
prolude.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.10 name: prolude-version: 0.0.0.13+version: 0.0.0.14 synopsis: ITProTV's custom prelude description: Prolude is ITProTV's custom prelude.@@ -40,6 +40,7 @@ Prolude.Test Prolude.Text Prolude.Time+ Prolude.Uri Prolude.Uuid build-depends:@@ -48,17 +49,18 @@ , bytestring >= 0.10.10 && < 0.11 , cassava >= 0.5.2.0 && < 0.6 , containers >= 0.6.2 && < 0.7- , generic-random >= 1.3.0.1 && < 1.4+ , generic-random >= 1.3.0 && < 1.4 , mongoDB >= 2.7.0 && < 2.8 , mtl >= 2.2.2 && < 2.3- , QuickCheck >= 2.14.1 && < 2.15- , quickcheck-instances >= 0.3.25 && < 0.4- , lens >= 4.19.2 && < 4.20+ , QuickCheck >= 2.13.2 && < 2.15+ , quickcheck-instances >= 0.3.23 && < 0.4+ , lens >= 4.18.1 && < 4.20+ , network-uri >= 2.6.3 && < 2.7 , persistent >= 2.8 && < 3 , persistent-mongoDB >= 2.8 && < 3 , safe-exceptions >= 0.1.7 && < 0.2 , scientific >= 0.3.6 && < 0.4- , swagger2 >= 2.6 && < 2.7+ , swagger2 >= 2.5 && < 2.7 , text >= 1.2.3 && < 1.3 , time >= 1.9.3 && < 1.10 , uuid >= 1.3.13 && < 1.4