packages feed

colorless 2.2.19 → 2.2.20

raw patch · 6 files changed

+26/−23 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Colorless.Types: instance Data.Aeson.Types.FromJSON.FromJSON Colorless.Types.Limits
+ Colorless.Types: instance Data.Aeson.Types.ToJSON.ToJSON Colorless.Types.Limits
+ Colorless.Types: instance GHC.Generics.Generic Colorless.Types.Limits
- Colorless.Client.Exchange: Response'Success :: a -> Response err a
+ Colorless.Client.Exchange: Response'Success :: a -> Limits -> Response err a
- Colorless.Server.Exchange: Response'Success :: Value -> Response
+ Colorless.Server.Exchange: Response'Success :: Value -> Limits -> Response

Files

colorless.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           colorless-version:        2.2.19+version:        2.2.20 synopsis:       Colorless | The Programmatic IDL description:    Colorless | The Programmatic IDL category:       Web
library/Colorless/Client/Exchange.hs view
@@ -8,7 +8,7 @@ import Data.Aeson (Value(..), FromJSON(..), ToJSON(..), object, (.=), (.:)) import Data.Text (Text) -import Colorless.Types (RuntimeError, HasType(..), Version(..))+import Colorless.Types (RuntimeError, HasType(..), Version(..), Limits) import Colorless.Ast (ToAst(..)) import Colorless.Val (ToVal(..), FromVal(..)) import Colorless.Client.Expr (Expr, exprJSON)@@ -53,7 +53,7 @@  data Response err a   = Response'Error (ResponseError err)-  | Response'Success a+  | Response'Success a Limits   deriving (Show, Eq)  instance (FromVal err, HasType err, FromVal a, HasType a) => FromJSON (Response err a) where@@ -64,11 +64,11 @@         m <- o .: "success"         case fromVal m of           Nothing -> mzero-          Just v -> return $ Response'Success v+          Just v -> Response'Success v <$> o .: "limits"       "Error" -> Response'Error <$> o .: "error"       _ -> mzero   parseJSON _ = mzero  instance (ToVal err, HasType err, ToVal a, HasType a) => ToJSON (Response err a) where   toJSON (Response'Error m) = object [ "tag" .= String "Error", "error" .= m ]-  toJSON (Response'Success m) = object [ "tag" .= String "Success", "success" .= toVal m ]+  toJSON (Response'Success m limits) = object [ "tag" .= String "Success", "success" .= toVal m, "limits" .= limits]
library/Colorless/Server/Exchange.hs view
@@ -7,7 +7,7 @@ import Control.Monad (mzero) import Data.Aeson (Value(..), FromJSON(..), ToJSON(..), object, (.=), (.:)) -import Colorless.Types (RuntimeError)+import Colorless.Types (RuntimeError, Limits)  data Request = Request   { meta :: Value@@ -35,9 +35,9 @@  data Response   = Response'Error ResponseError-  | Response'Success Value+  | Response'Success Value Limits   deriving (Show, Eq)  instance ToJSON Response where   toJSON (Response'Error m) = object [ "tag" .= String "Error", "error" .= m ]-  toJSON (Response'Success m) = object [ "tag" .= String "Success", "success" .= m ]+  toJSON (Response'Success m limits) = object [ "tag" .= String "Success", "success" .= m, "limits" .= limits ]
library/Colorless/Server/Expr.hs view
@@ -94,13 +94,13 @@         else liftIO $ writeIORef ref (count + 1)  tickServiceCall :: (MonadIO m, RuntimeThrower m) => Eval m ()-tickServiceCall = tick serviceCallLimit langServiceCallCount RuntimeError'LangServiceCallLimit+tickServiceCall = tick serviceCalls langServiceCallCount RuntimeError'LangServiceCallLimit  tickLambda :: (MonadIO m, RuntimeThrower m) => Eval m ()-tickLambda = tick lambdaLimit langLambdaCount RuntimeError'LangLambdaLimit+tickLambda = tick lambdas langLambdaCount RuntimeError'LangLambdaLimit  tickExpr :: (MonadIO m, RuntimeThrower m) => Eval m ()-tickExpr = tick exprLimit langExprCount RuntimeError'LangExprLimit+tickExpr = tick expressions langExprCount RuntimeError'LangExprLimit  type Env m = Map Symbol (IORef (Expr m)) @@ -313,7 +313,7 @@ addVarToScope envRef var expr = do   env <- liftIO $ readIORef envRef   ref <- liftIO $ newIORef expr-  limit <- variableLimit <$> asks limits+  limit <- variables <$> asks limits   addVarToEnv limit envRef var ref env  varLookup :: (MonadIO m, RuntimeThrower m) => Map Symbol (IORef a) -> Symbol -> m a@@ -504,7 +504,7 @@         else RuntimeError'TooFewArguments       else do         args' <- liftIO $ mapM newIORef (Map.fromList args)-        limit <- variableLimit <$> asks limits+        limit <- variables <$> asks limits         envRef' <- addEnvToEnv limit args' envRef         eval expr envRef' 
library/Colorless/Types.hs view
@@ -149,18 +149,21 @@   parseJSON _ = mzero  data Limits = Limits-  { variableLimit :: Maybe Int-  , serviceCallLimit :: Maybe Int-  , lambdaLimit :: Maybe Int-  , exprLimit :: Maybe Int-  } deriving (Show, Eq)+  { variables :: Maybe Int+  , serviceCalls :: Maybe Int+  , lambdas :: Maybe Int+  , expressions :: Maybe Int+  } deriving (Show, Eq, Generic) +instance ToJSON Limits+instance FromJSON Limits+ defLimits :: Limits defLimits = Limits-  { variableLimit = Just 50-  , serviceCallLimit = Just 50-  , lambdaLimit = Just 10-  , exprLimit = Just 100+  { variables = Just 50+  , serviceCalls = Just 50+  , lambdas = Just 10+  , expressions = Just 100   }  data Hooks m meta meta' = Hooks
package.yaml view
@@ -1,5 +1,5 @@ name: colorless-version: '2.2.19'+version: '2.2.20' category: Web synopsis: Colorless | The Programmatic IDL description: Colorless | The Programmatic IDL