Skip to content

mdgriffith/elm-codegen

Repository files navigation

Elm CodeGen

Elm CodeGen is an Elm package and CLI tool for generating Elm code.

The goal is to be easier to write and more maintainable than that string template you have lying around. 😏

Here's what this tool does for you in order to make generating code simpler.

  1. Automatic imports — Import declarations are calculated.
  2. Built in type inference — The types for your generated code are inferred, which means generated things can figure out their own type signatures.
  3. Use existing packages easily — For generating code that uses a specific library such as elm-ui, the elm-codegen CLI can create some Elm code to help you out. Check out the Using packages guide to get a better idea of what this looks like!

To get started, here's a small example to give you an idea of what the code looks like!

Elm.declaration "anExample"
    (Elm.record
        [ ("name", Elm.string "a fancy string!")
        , ("fancy", Elm.bool True)
        ]
    )
    |> Elm.ToString.declaration

The above will generate the following string:

anExample : { name : String, fancy : Bool }
anExample =
    { name = "a fancy string!"
    , fancy = True
    }

Check out the guide!

And finally, the elm-codegen package documentation.

Using the CLI

npm install -g elm-codegen

Then you can start a codegen project using:

elm-codegen init