packages feed

colorless 2.2.16 → 2.2.17

raw patch · 4 files changed

+28/−19 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Colorless.Types: RuntimeError'LambdaNotPermitted :: RuntimeError
- Colorless.Types: Options :: Maybe Int -> Options
+ Colorless.Types: Options :: Maybe Int -> Bool -> Options

Files

colorless.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           colorless-version:        2.2.16+version:        2.2.17 synopsis:       Colorless | The Programmatic IDL description:    Colorless | The Programmatic IDL category:       Web
library/Colorless/Server/Expr.hs view
@@ -343,26 +343,30 @@   expr' <- eval expr envRef   env <- liftIO $ readIORef envRef   ref <- liftIO $ newIORef expr'-  limit <- variableLimit <$> getOptions+  limit <- hardVariableLimit <$> getOptions   addVarToEnv limit envRef var ref env   return expr'  evalLambda :: (MonadIO m, RuntimeThrower m) => Lambda m -> IORef (Env m) -> Eval m (Expr m) evalLambda Lambda{params, expr} envRef = do-  return . Expr'Fn . Fn $ \vals -> do-    let keys = map fst params-    let args = zip keys vals-    let keysLen = length keys-    let argsLen = length args-    if keysLen /= argsLen-      then runtimeThrow $ if keysLen < argsLen-        then RuntimeError'TooManyArguments-        else RuntimeError'TooFewArguments-      else do-        args' <- liftIO $ mapM newIORef (Map.fromList args)-        limit <- variableLimit <$> getOptions-        envRef' <- addEnvToEnv limit args' envRef-        eval expr envRef'+  disabled <- hardDisableLambdas <$> getOptions+  if disabled+    then runtimeThrow $ RuntimeError'LambdaNotPermitted+    else+      return . Expr'Fn . Fn $ \vals -> do+        let keys = map fst params+        let args = zip keys vals+        let keysLen = length keys+        let argsLen = length args+        if keysLen /= argsLen+          then runtimeThrow $ if keysLen < argsLen+            then RuntimeError'TooManyArguments+            else RuntimeError'TooFewArguments+          else do+            args' <- liftIO $ mapM newIORef (Map.fromList args)+            limit <- hardVariableLimit <$> getOptions+            envRef' <- addEnvToEnv limit args' envRef+            eval expr envRef'  evalList :: (MonadIO m, RuntimeThrower m) => List m -> IORef (Env m)-> Eval m (Expr m) evalList List{list} envRef = do
library/Colorless/Types.hs view
@@ -82,6 +82,7 @@   | RuntimeError'UnparsableQuery   | RuntimeError'NoImplementation   | RuntimeError'NotMember+  | RuntimeError'LambdaNotPermitted   deriving (Show, Eq)  instance ToJSON RuntimeError where@@ -105,6 +106,7 @@     RuntimeError'UnparsableQuery -> e "UnparsableQuery"     RuntimeError'NoImplementation -> e "NoImplementation"     RuntimeError'NotMember -> e "NotMember"+    RuntimeError'LambdaNotPermitted -> e "LambdaNotPermitted"     where       e s = object [ "tag" .= String s ] @@ -131,16 +133,19 @@       "UnparsableQuery" -> pure RuntimeError'UnparsableQuery       "NoImplementation" -> pure RuntimeError'NoImplementation       "NotMember" -> pure RuntimeError'NotMember+      "LambdaNotPermitted" -> pure RuntimeError'LambdaNotPermitted       _ -> mzero   parseJSON _ = mzero  data Options = Options-  { variableLimit :: Maybe Int+  { hardVariableLimit :: Maybe Int+  , hardDisableLambdas :: Bool   } deriving (Show, Eq)  defOptions :: Options defOptions = Options-  { variableLimit = Just 100+  { hardVariableLimit = Just 100+  , hardDisableLambdas = True   }  --
package.yaml view
@@ -1,5 +1,5 @@ name: colorless-version: '2.2.16'+version: '2.2.17' category: Web synopsis: Colorless | The Programmatic IDL description: Colorless | The Programmatic IDL