This is a simple utility to expand environment variables in a string, heavily inspired by Golang's os.Expand.
Regex free, and no dependencies. If you need to expand environment variables in a string, this is the tool for you.
npm install explode-envimport { explode } from "explode-env";
// Works with ${USER} and $USER
const expanded = explode("Hello, $USER!", { USER: "world" });
console.log(expanded); // Hello, world!Alias for explode with process.env as the second argument.
import { explodeEnv } from "explode-env";
const expanded = explodeEnv("Hello, $USER!");
console.log(expanded); // Hello, <your username>!You can pass an options object as the third argument to explode and second argument to explodeEnv.
If true, variables that are not set in the mapping will not be expanded.
import { explode } from "explode-env";
const expanded = explode(
"Hello, $USER!, and $OTHERS!",
{ OTHERS: "User X, User Y" },
{
ignoreUnsetVars: true,
}
);
console.log(expanded); // Hello, $USER!, and User X, User Y!If true, default expansion in the form of ${var:-default} or ${var:=default} will not be expanded.
Note: This will NOT work with $var:-default or $var:=default. For reference: https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02
import { explode } from "explode-env";
const expanded = explode(
"Hello, ${WORLD:=World}! Welcome ${WORLD}!"
{},
{
ignoreDefaultExpansion: false,
}
);
console.log(expanded); // Hello, World! Welcome World!import { explode } from "explode-env";
const expanded = explode(
"Hello, ${WORLD:=World}! Welcome ${WORLD}!"
{},
{
ignoreDefaultExpansion: true,
}
);
console.log(expanded); // Hello, ! Welcome !npm testnpm version <major|minor|patch>
git push --tagsThen, GitHub Actions will take care of the rest.