Module

Sentry.Raven.Core

Package
purescript-sentry-raven
Repository
adamczykm/purescript-sentry-raven

#Dsn Source

newtype Dsn

Newtype representing Sentry's Data Source Name

Constructors

#withRaven Source

withRaven :: forall a ctx opts. WriteForeign ctx => Dsn -> opts -> ctx -> (forall h. (Raven h ctx -> Effect a)) -> Effect a

Initializes Raven library and runs given effect in given Raven context, which allows to use the rest of the library function and automatically log uncaught exceptions. For more information about rejected promises, DSN, configuration options and contexts, please consult Raven library or Sentry documentation.

#captureException Source

captureException :: forall h ctx err extra. WriteForeign err => WriteForeign extra => Raven h ctx -> err -> extra -> Effect Unit

Logs exceptional behaviour of a program to given Raven instance. Parses err argument to message and stores extra as additional error data.

#captureMessage Source

captureMessage :: forall h ctx msg extra. WriteForeign msg => WriteForeign extra => Raven h ctx -> msg -> extra -> Effect Unit

Logs non-exceptional behaviour of a program to given Raven instance. Parses msg argument as message and stores extra as additional data.

#recordBreadcrumb Source

recordBreadcrumb :: forall h ctx r a. WriteForeign { category :: a | r } => Raven h ctx -> { category :: a | r } -> Effect Unit

Adds a breadcrumb to the current context. Notice that replacing context will cause recorded breadcrumbs to be dropped. You may also want to use 'recordBreadcrumb'' from 'Sentry.Raven.Breadcrumb' for type-restricted version of this function.

#getContext Source

getContext :: forall h ctx. ReadForeign ctx => Raven h ctx -> Effect ctx

Returns current Raven context.

#withNewContext Source

withNewContext :: forall h ctx ctx' a. WriteForeign ctx => WriteForeign ctx' => ReadForeign ctx => ReadForeign ctx' => Raven h ctx -> ctx' -> (forall h'. Raven h' ctx' -> Effect a) -> Effect a

Runs given effect within a scope of new context. May change the type of the context.

#withChangedContext Source

withChangedContext :: forall h ctx ctx' a. WriteForeign ctx => WriteForeign ctx' => ReadForeign ctx => ReadForeign ctx' => Raven h ctx -> (ctx -> ctx') -> (forall h'. Raven h' ctx' -> Effect a) -> Effect a

Runs given effect within a scope of modified context. May change the type of the context.

#withAddedTags Source

withAddedTags :: forall h ctx t1 t2 t3 a. Union t2 t1 t3 => Nub t3 t3 => WriteForeign { tags :: Record t1 | ctx } => ReadForeign { tags :: Record t1 | ctx } => Raven h { tags :: Record t1 | ctx } -> Record t2 -> (forall h'. Raven h' { tags :: Record t3 | ctx } -> Effect a) -> Effect a

Adds given set of tags to the context and runs given effect within a scope of it. May change the type of the context.

#withAddedExtraContext Source

withAddedExtraContext :: forall h ctx t1 t2 t3 a. Union t2 t1 t3 => Nub t3 t3 => WriteForeign { extra :: Record t1 | ctx } => ReadForeign { extra :: Record t1 | ctx } => Raven h { extra :: Record t1 | ctx } -> Record t2 -> (forall h'. Raven h' { extra :: Record t3 | ctx } -> Effect a) -> Effect a

Runs given effect within a scope of additional extra context. May change the type of the context.

#withUser Source

withUser :: forall h ctx t1 t2 a. WriteForeign { user :: t1 | ctx } => ReadForeign { user :: t1 | ctx } => Raven h { user :: t1 | ctx } -> t2 -> (forall h'. Raven h' { user :: t2 | ctx } -> Effect a) -> Effect a

Runs given effect with new user context. May change the type of the context.

#setContext Source

setContext :: forall h ctx. WriteForeign ctx => Raven h ctx -> ctx -> Effect Unit

Sets current Raven context. Notice that if you want to change the type of the context you should use 'withNewContext' function.

#modifyContext Source

modifyContext :: forall h ctx. WriteForeign ctx => ReadForeign ctx => Raven h ctx -> (ctx -> ctx) -> Effect Unit

Modifies current Raven context. Notice that if you want to change the type of the context you should use 'withChangedContext' function.

#setTags Source

setTags :: forall h ctx t1. WriteForeign { tags :: t1 | ctx } => ReadForeign { tags :: t1 | ctx } => Raven h { tags :: t1 | ctx } -> t1 -> Effect Unit

Replaces set of tags in the current Raven context.

#modifyTags Source

modifyTags :: forall h ctx t1. WriteForeign { tags :: t1 | ctx } => ReadForeign { tags :: t1 | ctx } => Raven h { tags :: t1 | ctx } -> (t1 -> t1) -> Effect Unit

Modifies set of tags in the current Raven context.

#setUser Source

setUser :: forall h ctx t1. WriteForeign { user :: t1 | ctx } => ReadForeign { user :: t1 | ctx } => Raven h { user :: t1 | ctx } -> t1 -> Effect Unit

Replaces set user in the current Raven context.

#modifyUser Source

modifyUser :: forall h ctx t1. WriteForeign { user :: t1 | ctx } => ReadForeign { user :: t1 | ctx } => Raven h { user :: t1 | ctx } -> (t1 -> t1) -> Effect Unit

Modifies set user in the current Raven context.

#setExtraContext Source

setExtraContext :: forall h ctx t1. WriteForeign { extra :: t1 | ctx } => ReadForeign { extra :: t1 | ctx } => Raven h { extra :: t1 | ctx } -> t1 -> Effect Unit

Replaces extra context data in the current Raven context.

#modifyExtraContext Source

modifyExtraContext :: forall h ctx t1. WriteForeign { extra :: t1 | ctx } => ReadForeign { extra :: t1 | ctx } => Raven h { extra :: t1 | ctx } -> (t1 -> t1) -> Effect Unit

Modifies extra context data in the current Raven context.

Re-exports from Sentry.Raven.Core.Internal

#Raven Source

data Raven :: Type -> Type -> Type