Skip to content

配置管理

自 1.5.0 起

用于配置和环境管理的类型工具。

概述

配置管理模块提供了应用程序配置的类型支持,包括环境变量、配置模式、密钥管理和功能开关。这些类型可以帮助你构建类型安全的配置系统,确保配置值在编译时和运行时都得到正确验证。

通过这些类型工具,你可以定义配置结构、验证环境变量、安全地管理敏感信息,以及实现动态的功能开关控制。

基本用法

typescript
import type { Config, Environment, EnvVar, Secret, FeatureFlag } from 'uni-types'

// 定义应用配置
interface AppConfig {
  database: { host: string; port: number }
  redis: { url: string }
}

type MyConfig = Config<AppConfig>

// 定义环境变量
type DatabaseUrl = EnvVar<string>

// 定义密钥
type ApiKey = Secret<string>

// 定义功能开关
type BetaFeature = FeatureFlag<boolean>

主要类型

Config

配置类型,定义应用程序的配置结构。

typescript
type Config<T = unknown> = {
  [key: string]: T
} & {
  __config?: true
}

Environment

环境类型,表示应用程序运行的环境。

typescript
type Environment = 'development' | 'staging' | 'production' | 'test' | 'local'

EnvVar

环境变量类型,包含值、来源和是否必需的信息。

typescript
type EnvVar<T = unknown> = {
  value: T
  source: ConfigSource
  required: boolean
  default?: T
  description?: string
}

Secret

密钥类型,用于安全地存储和管理敏感配置值。

typescript
type Secret<T = string> = {
  __secret: true
  value: T
  expiresAt?: Date
  rotatedAt?: Date
  version?: number
}

FeatureFlag

功能开关类型,用于控制功能的启用状态和目标规则。

typescript
type FeatureFlag<T = boolean> = {
  name: string
  enabled: T
  description?: string
  variants?: FeatureFlagVariant<T>[]
  targeting?: FeatureTargeting[]
  createdAt: Date
  updatedAt: Date
}

相关

基于 MIT 许可发布