0-dependency module to load envinronmental variables from .env to process.env
npm install @tinyhttp/dotenv 
> A rewrite of dotenv module.
Dotenv is a 0-dependency module to load envinronmental variables from .env to process.env.
``sh`
pnpm i @tinyhttp/dotenv
`ts`
import * as dotenv from '@tinyhttp/dotenv'
config will read your .env file, parse the contents, assign it to process.env, and return an Object with a parsed key containing the loaded content or an error key if it failed.
`ts
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
`
#### Options
##### Path
Default: path.resolve(process.cwd(), '.env')
You may specify a custom path if your file containing environment variables is located elsewhere.
`ts`
import * as dotenv from '@tinyhttp/dotenv'
dotenv.config({ path: '/custom/path/to/.env' })
##### Encoding
Default: utf8
You may specify the encoding of your file containing environment variables.
`ts`
import * as dotenv from '@tinyhttp/dotenv'
dotenv.config({ encoding: 'latin1' })
##### Debug
Default: false
You may turn on logging to help debug why certain keys or values are not being set as you expect.
`ts`
import * as dotenv from '@tinyhttp/dotenv'
dotenv.config({ debug: process.env.DEBUG })
The engine which parses the contents of your file containing environment variables is available to use. It accepts a String or Buffer and will return an Object with the parsed keys and values.
`ts`
import * as dotenv from '@tinyhttp/dotenv'
const buf = Buffer.from('BASIC=basic')
const config = dotenv.parse(buf) // will return an object
console.log(typeof config, config) // object { BASIC : 'basic' }
#### Rules
- BASIC=basic becomes {BASIC: 'basic'}#
- empty lines are skipped
- lines beginning with are treated as commentsEMPTY=
- empty values become empty strings ( becomes {EMPTY: ''})JSON={"foo": "bar"}
- inner quotes are maintained (think JSON) ( becomes {JSON:"{\"foo\": \"bar\"}")trim
- whitespace is removed from both ends of unquoted values (see more on ) (FOO= some value becomes {FOO: 'some value'})SINGLE_QUOTE='quoted'
- single and double quoted values are escaped ( becomes {SINGLE_QUOTE: "quoted"})FOO=" some value "
- single and double quoted values maintain whitespace from both ends ( becomes {FOO: ' some value '})MULTILINE="new\nline"
- double quoted values expand new lines ( becomes
``
{MULTILINE: 'new
line'}
#### Options
##### Debug
Default: false
You may turn on logging to help debug why certain keys or values are not being set as you expect.
`ts``
import * as dotenv from '@tinyhttp/dotenv'
const buf = Buffer.from('hello world')
const opt = { debug: true }
const config = dotenv.parse(buf, opt)
// expect a debug message because the buffer is not in KEY=VAL form