Transformer for Roblox TypeScript compiler that allows getting values of process.env as string literals
npm i rbxts-transform-env
, then in your tsconfig.json:
"compilerOptions": {
...
"plugins": [
{
"transform": "rbxts-transform-env"
}
],
}
This will change to whatever the value of NODE_ENV
is in your environment. If no value is set, this is defined in the configuration options above under defaultEnvironment
, or "production"
if no such value is present.
This contains three functions of which can be used to obtain environment variables
This will attempt to grab the given variable
from the environment, otherwise will provide the default value. (undefined
if no default value is given)
This can be used to get a boolean environment variable, or check if an environment variable exists.
If the value is not (case-insensitive) false
, but is set it will be considered true
. This can be used to also check if environment variables exist.
This will attempt to grab the given variable
from the environment and parse it as a number, otherwise will provide the default value. (undefined
if no default value is given)
If there is an if statement, an attempt will be made to short-circuit the if statement. e.g.
if ($NODE_ENV === "production") {
// Code here
}
Any code in this if statement will not render (unless an else is specified) if the environment is not production.
This also applies to $env.boolean
. Currently $env.string
and $env.number
do not shortcut, but this may change in future.
- New transformation process (should be faster)
- Removed
$ifEnv
. This should be doable via an if statement now. $env
has now been split up into$env.string
,$env.number
and$env.boolean
.$env
is no longer callable.- The reason for this was the old behaviour of relying on the template argument for typing was a hidden "gotcha" that had issues. This is much more explicit.
Below is a matrix of versions to roblox-ts versions. This should be approximately correct for the older versions.
roblox-ts | rbxts-transform-env | typescript |
---|---|---|
3.0.0 |
3.0.0 (latest ) |
~5.5.3 |
2.2.0 |
2.2.0 (latest ) |
~5.2.2 |
2.1.x |
2.1.0 (beta ) |
~4.9.5 |
2.0.x |
2.0.0 |
~4.8.2 |
≥ 1.3.0 && ≤ 1.3.3 |
1.1.0-ts4.5 |
~4.5.5 |
= 1.2.9 |
1.1.0-ts4.4 |
~4.4 |