Code documentation

This commit is contained in:
2025-10-29 08:36:10 +00:00
parent 8d2ce27a74
commit 244b882f11
7 changed files with 458 additions and 11 deletions

View File

@@ -1,3 +1,34 @@
// Package config
// Path: /internal/platform/config
// File: load.go
//
// Purpose
// Responsible solely for loading strongly-typed application configuration
// from a JSON file on disk. This is the *input* stage of configuration
// lifecycle — the resulting Config is consumed by bootstrap and may be
// optionally stored globally via config.Init().
//
// Responsibilities (as implemented here)
// 1) Read configuration JSON file from a specified path.
// 2) Deserialize into the Config struct (strongly typed).
// 3) Return the populated Config value or an error.
//
// Design notes
// - Path is caller-controlled (bootstrap decides where config.json lives).
// - No defaults or validation are enforced here — errors bubble to bootstrap.
// - Pure function: no globals mutated, safe for tests and reuse.
// - Load returns a **value**, not a pointer, avoiding accidental mutation
// unless caller explicitly stores it.
//
// TODOs (from current architecture direction)
// - Add schema validation for required config fields.
// - Add environment override support for deployment flexibility.
// - Consider merging with a future layered config system (file + env + flags).
// - Emit structured errors including path details for troubleshooting.
//
// Change log
// [2025-10-29] Documentation aligned with bootstrap integration and config.Init() use.
package config
import (
@@ -5,6 +36,11 @@ import (
"os"
)
// Load reads the JSON configuration file located at `path`
// and unmarshals it into a Config struct.
//
// Caller is responsible for passing the result into bootstrap and/or
// config.Init() to make it globally available.
func Load(path string) (Config, error) {
var cfg Config