rbxts-transform-env
v3.0.0
Published
Transformer for Roblox TypeScript compiler that allows getting values of process.env as string literals
Downloads
243
Readme
rbxts-transform-env
Transformer for Roblox TypeScript compiler that allows getting values of process.env as string literals
Installation
npm i rbxts-transform-env
, then in your tsconfig.json:
"compilerOptions": {
...
"plugins": [
{
"transform": "rbxts-transform-env"
}
],
}
Usage
$NODE_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.
$env
This contains three functions of which can be used to obtain environment variables
$env.string( variable [, defaultValue] )
This will attempt to grab the given variable
from the environment, otherwise will provide the default value. (undefined
if no default value is given)
$env.boolean( variable )
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.
$env.number( variable [, defaultValue] )
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)
Behaviours
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.
Changes from 1.0 to 2.0
- 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.
Versions
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
|