Code documentation
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user