37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
# 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 management
|
|
- `CloudlyAdapter`: Configuration vault integration
|
|
- Support for `qenv.yml` (required vars definition) and `env.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 |