Package

purescript-ochadzuke

Repository
justinwoo/purescript-ochadzuke
License
MIT
Uploaded by
justinwoo
Published on
2018-10-03T21:14:12Z

A library that combines Simple-JSON, Milkis (Fetch), and Chirashi (Error subtypes).

It's ochadzuke made by mixing Chirashi and Milkis.

Usage

main :: Effect Unit
main = Aff.launchAff_ do

  -- works normally
  normal <- fetch' testUrl O.defaultFetchOptions'
  assertEqual'
    { expected: { "userId": 1 }
    , actual: normal
    }

  -- gives an error in readForeign on mismatched decoding type
  wrong <- Aff.attempt $ fetch' testUrl O.defaultFetchOptions'
  case wrong of
    Left e
      | Just (variant :: O.Error) <- C.readVariant e
      , Just multipleErrors <- V.prj O.readForeignS variant -> do
      pure unit
    Right (e :: { asdf :: String }) -> Aff.throwError $ Aff.error "False parsing result"
    Left e ->
      Aff.throwError e

  -- gives an error in otherS on random other failure
  wrong2 <- Aff.attempt $ fetch' (M.URL "sdflsjdfasdf") O.defaultFetchOptions'
  case wrong2 of
    Left e
      | Just (variant :: O.Error) <- C.readVariant e
      , Just other <- V.prj O.otherS variant ->
      assertEqual'
        { expected: "TypeError: Only absolute URLs are supported"
        , actual: Aff.message other
        }
    Right (e :: {}) -> Aff.throwError $ Aff.error "False parsing result"
    Left e -> Aff.throwError e

See the API Docs or the tests for usage.

Modules
Ochadzuke
Dependencies