@hoangsonw/env-guard
Version:
Protect your .env files from missing or insecure configurations by validating environment variables against a schema and enforcing .env.example.
92 lines (86 loc) • 5.96 kB
JavaScript
import { validateEnv } from "@hoangsonw/env-guard";
(async () => {
console.log("\n--- [DEMO: NO BASEDIR] ---\n");
// Example schema
const schema = {
DB_HOST: { required: true, insecureValues: ["localhost", "127.0.0.1"] },
DB_PASSWORD: { required: true, insecureValues: ["12345", "password"] },
DB_USER: { required: false },
};
// We do NOT supply baseDir, so it will auto-detect via stack trace
validateEnv({
schema,
envFilePath: "./.env",
exampleFilePath: "./.env.example",
allowMissingExampleKeys: false,
throwOnError: false,
});
console.log("\n--- [END DEMO: NO BASEDIR] ---\n");
})();
// Should output something like:
// > node __tests__/demo_no_basedir.js
//
//
// --- [DEMO: NO BASEDIR] ---
//
// [EnvGuard] Loading env file: /Users/davidnguyen/WebstormProjects/EnvGuard-Env-Validator/__tests__/.env
// [EnvGuard] Checking .env.example at: /Users/davidnguyen/WebstormProjects/EnvGuard-Env-Validator/__tests__/.env.example
// [EnvGuard] Validating environment variables...
// [EnvGuard] Env var "DB_HOST" has an insecure value: "localhost"
// [EnvGuard] Env var "DB_PASSWORD" has an insecure value: "12345"
// [EnvGuard] Extra variable "NVM_INC" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "NODE" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "INIT_CWD" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "NVM_CD_FLAGS" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "ANDROID_HOME" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "SHELL" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "TERM" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "TMPDIR" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "HOMEBREW_REPOSITORY" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_global_prefix" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "COLOR" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_noproxy" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_local_prefix" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "USER" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "NVM_DIR" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "COMMAND_MODE" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_globalconfig" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "SSH_AUTH_SOCK" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "__CF_USER_TEXT_ENCODING" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_execpath" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "PATH" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_package_json" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_userconfig" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_init_module" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "__CFBundleIdentifier" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_command" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "PWD" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "JAVA_HOME" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_lifecycle_event" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "EDITOR" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_package_name" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_npm_version" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "XPC_FLAGS" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_node_gyp" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_package_version" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "XPC_SERVICE_NAME" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "SHLVL" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "HOME" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_strict_ssl" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_loglevel" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "HOMEBREW_PREFIX" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_cache" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "LOGNAME" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_lifecycle_script" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "LC_CTYPE" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "NVM_BIN" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_user_agent" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "HOMEBREW_CELLAR" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "INFOPATH" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "PYTHON" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_node_execpath" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "npm_config_prefix" not in .env.example. Might be inconsistent.
// [EnvGuard] Extra variable "_" not in .env.example. Might be inconsistent.
// [EnvGuard] Validation passed with no issues!
//
// --- [END DEMO: NO BASEDIR] ---