
module.exports =
  # See `man 3 libcurl-errors`
  error: (err) ->
    switch err.code
      when 1 then new Error 'CURLE_UNSUPPORTED_PROTOCOL'
      when 2 then new Error 'CURLE_FAILED_INIT'
      when 3 then new Error 'CURLE_URL_MALFORMAT'
      when 4 then new Error 'CURLE_NOT_BUILT_IN'
      when 5 then new Error 'CURLE_COULDNT_RESOLVE_PROXY'
      when 6 then new Error 'CURLE_COULDNT_RESOLVE_HOST'
      when 7 then new Error 'CURLE_COULDNT_CONNECT'
      when 8 then new Error 'CURLE_FTP_WEIRD_SERVER_REPLY'
      when 9 then new Error 'CURLE_REMOTE_ACCESS_DENIED'
      when 10 then new Error 'CURLE_FTP_ACCEPT_FAILED'
      when 11 then new Error 'CURLE_FTP_WEIRD_PASS_REPLY'
      when 12 then new Error 'CURLE_FTP_ACCEPT_TIMEOUT'
      when 13 then new Error 'CURLE_FTP_WEIRD_PASV_REPLY'
      when 14 then new Error 'CURLE_FTP_WEIRD_227_FORMAT'
      when 15 then new Error 'CURLE_FTP_CANT_GET_HOST'
      when 17 then new Error 'CURLE_FTP_COULDNT_SET_TYPE'
      when 18 then new Error 'CURLE_PARTIAL_FILE'
      when 19 then new Error 'CURLE_FTP_COULDNT_RETR_FILE'
      when 21 then new Error 'CURLE_QUOTE_ERROR'
      when 22 then new Error 'CURLE_HTTP_RETURNED_ERROR'
      when 23 then new Error 'CURLE_WRITE_ERROR'
      when 25 then new Error 'CURLE_UPLOAD_FAILED'
      when 26 then new Error 'CURLE_READ_ERROR'
      when 27 then new Error 'CURLE_OUT_OF_MEMORY'
      when 28 then new Error 'CURLE_OPERATION_TIMEDOUT'
      when 30 then new Error 'CURLE_FTP_PORT_FAILED'
      when 31 then new Error 'CURLE_FTP_COULDNT_USE_REST'
      when 33 then new Error 'CURLE_RANGE_ERROR'
      when 34 then new Error 'CURLE_HTTP_POST_ERROR'
      when 35 then new Error 'CURLE_SSL_CONNECT_ERROR'
      when 36 then new Error 'CURLE_BAD_DOWNLOAD_RESUME'
      when 37 then new Error 'CURLE_FILE_COULDNT_READ_FILE'
      when 38 then new Error 'CURLE_LDAP_CANNOT_BIND'
      when 39 then new Error 'CURLE_LDAP_SEARCH_FAILED'
      when 41 then new Error 'CURLE_FUNCTION_NOT_FOUND'
      when 42 then new Error 'CURLE_ABORTED_BY_CALLBACK'
      when 43 then new Error 'CURLE_BAD_FUNCTION_ARGUMENT'
      when 45 then new Error 'CURLE_INTERFACE_FAILED'
      when 47 then new Error 'CURLE_TOO_MANY_REDIRECTS'
      when 48 then new Error 'CURLE_UNKNOWN_OPTION'
      when 49 then new Error 'CURLE_TELNET_OPTION_SYNTAX'
      when 51 then new Error 'CURLE_PEER_FAILED_VERIFICATION'
      when 52 then new Error 'CURLE_GOT_NOTHING'
      when 53 then new Error 'CURLE_SSL_ENGINE_NOTFOUND'
      when 54 then new Error 'CURLE_SSL_ENGINE_SETFAILED'
      when 55 then new Error 'CURLE_SEND_ERROR'
      when 56 then new Error 'CURLE_RECV_ERROR'
      when 58 then new Error 'CURLE_SSL_CERTPROBLEM'
      when 59 then new Error 'CURLE_SSL_CIPHER'
      when 60 then new Error 'CURLE_SSL_CACERT'
      when 61 then new Error 'CURLE_BAD_CONTENT_ENCODING'
      when 62 then new Error 'CURLE_LDAP_INVALID_URL'
      when 63 then new Error 'CURLE_FILESIZE_EXCEEDED'
      when 64 then new Error 'CURLE_USE_SSL_FAILED'
      when 65 then new Error 'CURLE_SEND_FAIL_REWIND'
      when 66 then new Error 'CURLE_SSL_ENGINE_INITFAILED'
      when 67 then new Error 'CURLE_LOGIN_DENIED'
      when 68 then new Error 'CURLE_TFTP_NOTFOUND'
      when 69 then new Error 'CURLE_TFTP_PERM'
      when 70 then new Error 'CURLE_REMOTE_DISK_FULL'
      when 71 then new Error 'CURLE_TFTP_ILLEGAL'
      when 72 then new Error 'CURLE_TFTP_UNKNOWNID'
      when 73 then new Error 'CURLE_REMOTE_FILE_EXISTS'
      when 74 then new Error 'CURLE_TFTP_NOSUCHUSER'
      when 75 then new Error 'CURLE_CONV_FAILED'
      when 76 then new Error 'CURLE_CONV_REQD'
      when 77 then new Error 'CURLE_SSL_CACERT_BADFILE'
      when 78 then new Error 'CURLE_REMOTE_FILE_NOT_FOUND'
      when 79 then new Error 'CURLE_SSH'
      when 80 then new Error 'CURLE_SSL_SHUTDOWN_FAILED'
      when 81 then new Error 'CURLE_AGAIN'
      when 82 then new Error 'CURLE_SSL_CRL_BADFILE'
      when 83 then new Error 'CURLE_SSL_ISSUER_ERROR'
      when 84 then new Error 'CURLE_FTP_PRET_FAILED'
      when 85 then new Error 'CURLE_RTSP_CSEQ_ERROR'
      when 86 then new Error 'CURLE_RTSP_SESSION_ERROR'
      when 87 then new Error 'CURLE_FTP_BAD_FILE_LIST'
      when 88 then new Error 'CURLE_CHUNK_FAILED'
      when 89 then new Error 'CURLE_NO_CONNECTION_AVAILABLE'
      else err
