Code Monkey home page Code Monkey logo

elm-constants's Issues

Empty environment variables are not supported

To reproduce:

.env:

BASE_PATH=

elm-constants.json:

{
  "path": "./src/",
  "moduleName": "Env",
  "values": [
    "BASE_PATH"
  ]
}

Run elm-constants.

Expected behavior:

Env.elm produced with basePath = "".

Actual behavior:

I couldn't find any of the environment variable you specified, so I have nothing to generate!

BASE_PATH="" of course does not change anything because it produces the same shell variable with the same shell value.

I guess the issue is here:

elm-constants/index.js

Lines 139 to 147 in bf6eefe

const envValue = process.env[envValueName];
if (envValue) {
return [
[elmName].concat(accExposing),
[toElmValue(elmName, envValue)].concat(accElmValue)
];
} else {
return acc;
}

There's a confusion here between falsy environment variables and those which are missing.

I think there's also a larger issue here which is that we shouldn't try to be "safe" against missing environment variables. Elm code cannot detect undefined variables, so if a variable is truly missing, we should probably error out immediately rather than let later compilation steps fail when the variable is not there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.