Fix Elm generator for polymorphism (#78)

This commit is contained in:
Erik Timmers 2018-05-17 13:04:52 +02:00 committed by William Cheng
parent 34db79b9ba
commit c522927d58
5 changed files with 18 additions and 7 deletions

View File

@ -1,5 +1,5 @@
{{classVarName}}Decoder : Decoder {{classname}} {{classVarName}}Decoder : Decoder {{classname}}
{{classVarName}}Decoder = {{classVarName}}Decoder =
{{#parent}}Decode.list {{vendorExtensions.x-decoder}}{{/parent}}{{^parent}}decode {{classname}} decode {{classname}}
{{#allVars}}{{^discriminatorValue}} |> {{>fieldDecoder}} {{#allVars}}{{^discriminatorValue}} |> {{>fieldDecoder}}
{{/discriminatorValue}}{{/allVars}}{{/parent}} {{/discriminatorValue}}{{/allVars}}

View File

@ -1,7 +1,7 @@
{{classVarName}}Encoder : {{classname}} -> Encode.Value {{classVarName}}Encoder : {{classname}} -> Encode.Value
{{classVarName}}Encoder model = {{classVarName}}Encoder model =
{{#parent}}Encode.list (List.map {{vendorExtensions.x-encoder}} model){{/parent}}{{^parent}}Encode.object Encode.object
{{#allVars}} {{#allVars}}
{{#-first}}[{{/-first}}{{^-first}},{{/-first}} {{>fieldEncoder}} {{#-first}}[{{/-first}}{{^-first}},{{/-first}} {{>fieldEncoder}}
{{/allVars}} {{/allVars}}
]{{/parent}} ]

View File

@ -15,7 +15,7 @@ import Maybe exposing (map, withDefault)
{{{description}}} {{{description}}}
-} -}
{{/description}} {{/description}}
{{#isEnum}}{{>modelTypeUnion}}{{/isEnum}}{{^isEnum}}{{#hasChildren}}{{>modelTypeDiscriminator}}{{/hasChildren}}{{^hasChildren}}{{#isAlias}}{{>modelTypePrimitive}}{{/isAlias}}{{^isAlias}}{{>modelTypeAlias}}{{/isAlias}}{{/hasChildren}}{{/isEnum}} {{#isEnum}}{{>modelTypeUnion}}{{/isEnum}}{{^isEnum}}{{#hasChildren}}{{>modelTypeDiscriminator}}{{/hasChildren}}{{^hasChildren}}{{#isAlias}}{{>modelTypePrimitive}}{{/isAlias}}{{^isAlias}}{{#isArrayModel}}{{>modelTypeArray}}{{/isArrayModel}}{{^isArrayModel}}{{>modelTypeAlias}}{{/isArrayModel}}{{/isAlias}}{{/hasChildren}}{{/isEnum}}
{{/model}} {{/model}}
{{^-last}} {{^-last}}

View File

@ -1,6 +1,6 @@
type alias {{classname}} ={{#parent}} {{parent}}{{/parent}}{{^parent}} type alias {{classname}} =
{ {{#vars}}{{^-first}} , {{/-first}}{{name}} : {{^required}}Maybe {{/required}}{{#isContainer}}(List {{/isContainer}}{{#isEnum}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{datatype}}{{/isEnum}}{{#isContainer}}){{/isContainer}} { {{#vars}}{{^-first}} , {{/-first}}{{name}} : {{^required}}Maybe {{/required}}{{#isContainer}}(List {{/isContainer}}{{#isEnum}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{datatype}}{{/isEnum}}{{#isContainer}}){{/isContainer}}
{{/vars}} } {{/vars}} }
{{#vars}} {{#vars}}
@ -10,7 +10,6 @@ type alias {{classname}} ={{#parent}} {{parent}}{{/parent}}{{^parent}}
{{>union}} {{>union}}
{{/isEnum}} {{/isEnum}}
{{/vars}} {{/vars}}
{{/parent}}
{{>aliasDecoder}} {{>aliasDecoder}}

View File

@ -0,0 +1,12 @@
type alias {{classname}} =
{{parent}}
{{classVarName}}Decoder : Decoder {{classname}}
{{classVarName}}Decoder =
Decode.list {{vendorExtensions.x-decoder}}
{{classVarName}}Encoder : {{classname}} -> Encode.Value
{{classVarName}}Encoder model =
Encode.list (List.map {{vendorExtensions.x-encoder}} model)