Size: a a a

Elm Lang сообщество разработчиков

2018 September 26

AK

Anton Komissarov in Elm Lang сообщество разработчиков
меня подбешивало
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
навое поле +1 к ману и одно описание. вроде не сильная плата за изменение
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
+ замена импорта
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
почему замена и где?
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
import Json.Decode exposing (map3)
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
обычно делаю import Json.Decode as Decode и пишу в виде Decode.*
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
дело вкуса
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
кто-то сверху любит больше кода
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
кто-то в коде
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
поэтому одно поле в пределе 2 строчки, умеренно
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
может это только у нас, но у нас частенько декодеры хендлят сбор ошибок из респонса
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
и вроде так много кто делает
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
тот кейс когда не только Result Ok/Err
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
вот было хотел, но не делал. казалось излешне. а можно пример глянуть?
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
сейчас посмотрю могу ли я что-то быстренько шлифануть до примера
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
спасибо
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
самый быстрый вариант который нашёл и подправил
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
trickyDecoder : Decoder DecodedTypeWithErrorsAccumulated
trickyDecoder =
   Decode.field "lotsOfFields" Decode.value
       |> Decode.andThen
           ((\a ->
               let
                   left : Result String { lefty : List DecodedType, decodingErrors : List String }
                   left =
                       Decode.decodeValue (typeDecoder "left") a

                   right : Result String { sails : List DecodedType, decodingErrors : List String }
                   right =
                       Decode.decodeValue (typeDecoder "right") a

                   errors : List String
                   errors =
                       Result.map2 (\a b -> List.concat [ a.decodingErrors, b.decodingErrors ]) left right |> Result.withDefault []

                   emptyListToMaybe : List a -> Maybe (List a)
                   emptyListToMaybe list =
                       if List.isEmpty list then
                           Nothing
                       else
                           Just list

                   —lot's of code that actually forms the VALID payload
                   decodedType =
                       "DecodedTypeHardcoreListOfSomething"
                   —
               in
               { type_ = decodedType, decodingErrors = errors, encodedValue = a }
            )
               — some more functions
               » Decode.succeed
           )
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
какой печальный форматинг(
источник

AK

Anton Komissarov in Elm Lang сообщество разработчиков
может позже найду более свежий и короткий пример
источник