Sentry.Raven.Core
- Package
- purescript-sentry-raven
- Repository
- adamczykm/purescript-sentry-raven
#withRaven Source
withRaven :: forall opts ctx a. WriteForeign ctx => Dsn -> opts -> ctx -> (forall h. (Raven h ctx -> Effect a)) -> Effect aInitializes 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 extra err ctx h. WriteForeign err => WriteForeign extra => Raven h ctx -> err -> extra -> Effect UnitLogs 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 extra msg ctx h. WriteForeign msg => WriteForeign extra => Raven h ctx -> msg -> extra -> Effect UnitLogs 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 a r ctx h. WriteForeign { category :: a | r } => Raven h ctx -> { category :: a | r } -> Effect UnitAdds 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 ctx h. ReadForeign ctx => Raven h ctx -> Effect ctxReturns current Raven context.
#withNewContext Source
withNewContext :: forall a ctx' ctx h. WriteForeign ctx => WriteForeign ctx' => ReadForeign ctx => ReadForeign ctx' => Raven h ctx -> ctx' -> (forall h'. Raven h' ctx' -> Effect a) -> Effect aRuns given effect within a scope of new context. May change the type of the context.
#withChangedContext Source
withChangedContext :: forall a ctx' ctx h. WriteForeign ctx => WriteForeign ctx' => ReadForeign ctx => ReadForeign ctx' => Raven h ctx -> (ctx -> ctx') -> (forall h'. Raven h' ctx' -> Effect a) -> Effect aRuns given effect within a scope of modified context. May change the type of the context.
#withAddedTags Source
withAddedTags :: forall a t3 t2 t1 ctx h. 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 aAdds 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 a t3 t2 t1 ctx h. 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 aRuns given effect within a scope of additional extra context. May change the type of the context.
#withUser Source
withUser :: forall a t2 t1 ctx h. WriteForeign { user :: t1 | ctx } => ReadForeign { user :: t1 | ctx } => Raven h { user :: t1 | ctx } -> t2 -> (forall h'. Raven h' { user :: t2 | ctx } -> Effect a) -> Effect aRuns given effect with new user context. May change the type of the context.
#setContext Source
setContext :: forall ctx h. WriteForeign ctx => Raven h ctx -> ctx -> Effect UnitSets current Raven context. Notice that if you want to change the type of the context you should use 'withNewContext' function.
#modifyContext Source
modifyContext :: forall ctx h. WriteForeign ctx => ReadForeign ctx => Raven h ctx -> (ctx -> ctx) -> Effect UnitModifies current Raven context. Notice that if you want to change the type of the context you should use 'withChangedContext' function.
#setTags Source
setTags :: forall t1 ctx h. WriteForeign { tags :: t1 | ctx } => ReadForeign { tags :: t1 | ctx } => Raven h { tags :: t1 | ctx } -> t1 -> Effect UnitReplaces set of tags in the current Raven context.
#modifyTags Source
modifyTags :: forall t1 ctx h. WriteForeign { tags :: t1 | ctx } => ReadForeign { tags :: t1 | ctx } => Raven h { tags :: t1 | ctx } -> (t1 -> t1) -> Effect UnitModifies set of tags in the current Raven context.
#setUser Source
setUser :: forall t1 ctx h. WriteForeign { user :: t1 | ctx } => ReadForeign { user :: t1 | ctx } => Raven h { user :: t1 | ctx } -> t1 -> Effect UnitReplaces set user in the current Raven context.
#modifyUser Source
modifyUser :: forall t1 ctx h. WriteForeign { user :: t1 | ctx } => ReadForeign { user :: t1 | ctx } => Raven h { user :: t1 | ctx } -> (t1 -> t1) -> Effect UnitModifies set user in the current Raven context.
#setExtraContext Source
setExtraContext :: forall t1 ctx h. WriteForeign { extra :: t1 | ctx } => ReadForeign { extra :: t1 | ctx } => Raven h { extra :: t1 | ctx } -> t1 -> Effect UnitReplaces extra context data in the current Raven context.
#modifyExtraContext Source
modifyExtraContext :: forall t1 ctx h. WriteForeign { extra :: t1 | ctx } => ReadForeign { extra :: t1 | ctx } => Raven h { extra :: t1 | ctx } -> (t1 -> t1) -> Effect UnitModifies extra context data in the current Raven context.