1.3 KiB
1.3 KiB
Qenv Project Overview
Purpose
@push.rocks/qenv is a TypeScript/Node.js module for managing environment variables in Node.js projects. It provides a unified interface for loading environment variables from multiple sources:
- Process environment variables
- YAML configuration files (.yml/.yaml)
- JSON configuration files (.json)
- Docker secrets
- Dynamic/async variable resolution via functions
Key Features
- Support for required and optional environment variables
- Multi-source loading hierarchy (env vars > config files > Docker secrets)
- Base64-encoded object support for complex configurations
- Synchronous and asynchronous variable retrieval
- Strict mode with error throwing for unset variables
- TypeScript with full type definitions
- Logging via @push.rocks/smartlog
Main Components
Qenv
class: Core class for environment variable managementCloudlyAdapter
: Configuration vault integration- Support for
qenv.yml
(required vars definition) andenv.yml
/env.json
(values)
Tech Stack
- TypeScript
- Node.js
- pnpm package manager
- @push.rocks ecosystem libraries (smartfile, smartlog, smartpath)
- @git.zone tools for building and testing
Dependencies
- @api.global/typedrequest
- @configvault.io/interfaces
- @push.rocks/smartfile
- @push.rocks/smartlog
- @push.rocks/smartpath