Environment Variables

Environment Variables are must have for applications that supports multiple environments.

Specifying the data

The variables for different environments live in the config folder of an Elm-UI application.

Each environment can have JSON file, for example this app uses three environments (development, staging, production):

my-app
├── config
|   └── development.json
|   ├── staging.json
|   ├── production.json
...

Specifying the environment

Every command can have the -e, --env [env] flag that specifies the current environment. If no environment is specified development is assumed and used.

Running the development server in staging environment:

elm-ui start -e staging

The contents of the current environment is injected into the compiled code and is accessible as window.ENV.

Accessing the variables

Reading the variables can be done with the Ui.Helpers.Env module specifically the get function.

For example we have the following data:

{ 
  "endpoint": "https://httpbin.org/post" 
}

We can read the endpoint with the following code:

-- Ui.Helpers.Env.get : String -> Json.Decoder a -> Result String a
result = Ui.Helpers.Env.get "endpoint" Json.Decode.string

results matching ""

    No results matching ""