Files
qenv/.serena/memories/project_overview.md

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 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