packages feed

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 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