Add log module
parent
2d01802b86
commit
06c048286c
|
@ -0,0 +1,54 @@
|
||||||
|
module Internal.Config.Log exposing (caughtError, debug, error, info, securityWarn, warn)
|
||||||
|
{-| # Logs
|
||||||
|
|
||||||
|
The logs module exposes various log types that can be used to indicate logs.
|
||||||
|
This helps users filter for the logs that they care about.
|
||||||
|
|
||||||
|
The logs are encoded as strings as to allow the addition of new log types
|
||||||
|
without triggering a major update.
|
||||||
|
|
||||||
|
@docs caughtError, debug, error, info, securityWarn, warn
|
||||||
|
-}
|
||||||
|
|
||||||
|
{-| A caught error is an error that has been caught elsewhere in the code, hence
|
||||||
|
functioning as a secondary debug channel.
|
||||||
|
-}
|
||||||
|
caughtError : String
|
||||||
|
caughtError = "caught-error"
|
||||||
|
|
||||||
|
{-| Debug logs are logs that can be used to debug API interactions.
|
||||||
|
-}
|
||||||
|
debug : String
|
||||||
|
debug = "debug"
|
||||||
|
|
||||||
|
{-| Error strings indicate that something unexpected has happened. As a result,
|
||||||
|
something has stopped working.
|
||||||
|
-}
|
||||||
|
error : String
|
||||||
|
error = "error"
|
||||||
|
|
||||||
|
{-| Info contains relevant info for the user
|
||||||
|
-}
|
||||||
|
info : String
|
||||||
|
info = "info"
|
||||||
|
|
||||||
|
{-| Security warnings are warnings that contain red flags.
|
||||||
|
|
||||||
|
Of course, the Elm SDK is not aware of any security vulnerabilities that it
|
||||||
|
contains, but it can raise a user's attention to suspicious situations.
|
||||||
|
|
||||||
|
For example, if the homeserver returns room ids that do not look like usernames
|
||||||
|
at all, the homeserver can raise a security warning, which indicates that:
|
||||||
|
|
||||||
|
1. The homeserver might be bugged
|
||||||
|
2. The Elm SDK might be severaly outdated
|
||||||
|
3. The homeserver might be compromised and/or trying to attack the Elm SDK
|
||||||
|
-}
|
||||||
|
securityWarn : String
|
||||||
|
securityWarn = "security-warn"
|
||||||
|
|
||||||
|
{-| Warning logs are logs that are unusual, but that can be dealt with. Warnings
|
||||||
|
are debug logs that are out of the ordinary.
|
||||||
|
-}
|
||||||
|
warn : String
|
||||||
|
warn = "warn"
|
|
@ -0,0 +1,19 @@
|
||||||
|
module Internal.Tools.Decode exposing (Decoder)
|
||||||
|
{-| # Advanced security Json.Decode
|
||||||
|
|
||||||
|
This module extends the standard JSON encode / decode library for security
|
||||||
|
measures. Most Elm libraries do not access an API this often without insight
|
||||||
|
for the user, and hence this module aims to offer the user more insight into
|
||||||
|
what is going on.
|
||||||
|
|
||||||
|
Additionally, the decoder will warn for suspicious values, and provide helpful
|
||||||
|
errors when the JSON fails to decode.
|
||||||
|
|
||||||
|
## Primitives
|
||||||
|
|
||||||
|
@docs Decoder
|
||||||
|
-}
|
||||||
|
|
||||||
|
import Json.Decode as D
|
||||||
|
|
||||||
|
type Decoder a = D.Decoder { value : a, messages : List String }
|
Loading…
Reference in New Issue