Skip to content
This repository has been archived by the owner on Jan 6, 2024. It is now read-only.

Commit

Permalink
Add README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
MrXyfir committed Feb 23, 2019
1 parent fc65bbb commit 65347e9
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
JSON-parsed environment variables.

Super lightweight.

No dependencies.

Copies the string values in `process.env` and parses each with `JSON.parse()` to `process.enve`.

That's it.

# Usage

Let's assume you have an `.env` file with the following data:

```env
STRING_VAR="Hello"
NUMBER_VAR=1234
BOOL_VAR=true
OBJECT_VAR={"foo":"bar"}
ALSO_STRING_VAR=Hello
```

Note that an `.env` file is completely irrelevant to how enve works. This is just an example. How you get the environment variables into your app is up to you.

Also note that the string variables may differ on how they handle quotes based on how your environment variables are passed to your app and how they're parsed _before_ enve gets to them. Just remember, all enve does is pass the value to `JSON.parse()`, if that _fails_ then it falls back to the original string value.

```js
// Only needed in your entry file
import 'enve';
// or...
require('enve');

process.env.STRING_VAR === '"Hello"';
process.enve.STRING_VAR === 'Hello';

process.env.NUMBER_VAR === '1234';
process.enve.NUMBER_VAR === 1234;

process.env.BOOL_VAR === 'true';
process.enve.BOOL_VAR === true;

process.env.OBJECT_VAR === '{"foo":"bar"}';
process.enve.OBJECT_VAR.foo === 'bar';

process.env.ALSO_STRING_VAR === 'Hello';
process.enve.ALSO_STRING_VAR === 'Hello';
```

## TypeScript

enve works fine with TypeScript.

```ts
import 'enve';

declare global {
namespace NodeJS {
interface Process {
enve: { foo: string; bar: boolean };
}
}
}

// Type 'true' is not assignable to type 'string'. ts(2322)
process.env.foo = true;
// Type 'string' is not assignable to type 'boolean'. ts(2322)
process.env.bar = 'baz';
```

0 comments on commit 65347e9

Please sign in to comment.