UNPKG

924 BJavaScriptView Raw
1import dotenv from "dotenv";
2
3/**
4 * init dotenv
5 * priority: environment -> .env
6 *
7 * Available settings
8 *
9 * APP_PORT=9527
10 * APP_BASE_PATH=/v1
11 * APP_MONGODB_CONNECTION="mongodb://localhost/petstore"
12 */
13
14dotenv.config();
15
16/**
17 *
18 * @param {string} name envrionment name
19 * @param {object} opt option with { required, default }
20 * @returns {*} value
21 */
22
23export function env(name, init) {
24 const value = process.env[name.toUpperCase()] || process.env[name] || init;
25
26 if (value === undefined) {
27 throw new Error(`environment ${name} is missing`);
28 }
29
30 return value;
31}
32
33/**
34 * basic
35 */
36export const NODE_ENV = env("NODE_ENV", "development");
37export const PORT = env("PORT", 9527);
38export const BASE = env("BASE", "/petstore/v0");
39export const LOG_LEVEL = env("LOG_LEVEL", "info");
40
41/**
42 * Mongodb
43 */
44export const MONGODB_CONNECTION = env(
45 "MONGODB_CONNECTION",
46 `mongodb://localhost/petstore-${NODE_ENV}`
47);