ConfigProvider.ts overview
Since v2.0.0
Exports Grouped by Category
combinators
constantCase
Returns a new config provider that will automatically convert all property names to constant case. This can be utilized to adapt the names of configuration properties from the default naming convention of camel case to the naming convention of a config provider.
Signature
declare const constantCase: (self: ConfigProvider) => ConfigProvider
Since v2.0.0
kebabCase
Returns a new config provider that will automatically convert all property names to kebab case. This can be utilized to adapt the names of configuration properties from the default naming convention of camel case to the naming convention of a config provider.
Signature
declare const kebabCase: (self: ConfigProvider) => ConfigProvider
Since v2.0.0
lowerCase
Returns a new config provider that will automatically convert all property names to lower case. This can be utilized to adapt the names of configuration properties from the default naming convention of camel case to the naming convention of a config provider.
Signature
declare const lowerCase: (self: ConfigProvider) => ConfigProvider
Since v2.0.0
snakeCase
Returns a new config provider that will automatically convert all property names to upper case. This can be utilized to adapt the names of configuration properties from the default naming convention of camel case to the naming convention of a config provider.
Signature
declare const snakeCase: (self: ConfigProvider) => ConfigProvider
Since v2.0.0
upperCase
Returns a new config provider that will automatically convert all property names to upper case. This can be utilized to adapt the names of configuration properties from the default naming convention of camel case to the naming convention of a config provider.
Signature
declare const upperCase: (self: ConfigProvider) => ConfigProvider
Since v2.0.0
within
Returns a new config provider that transforms the config provider with the specified function within the specified path.
Signature
declare const within: {
(path: ReadonlyArray<string>, f: (self: ConfigProvider) => ConfigProvider): (self: ConfigProvider) => ConfigProvider
(self: ConfigProvider, path: ReadonlyArray<string>, f: (self: ConfigProvider) => ConfigProvider): ConfigProvider
}
Since v2.0.0
constructors
fromEnv
A config provider that loads configuration from context variables
Options:
pathDelim
: The delimiter for the path segments (default:"_"
).seqDelim
: The delimiter for the sequence of values (default:","
).
Signature
declare const fromEnv: (options?: Partial<ConfigProvider.FromEnvConfig>) => ConfigProvider
Since v2.0.0
fromFlat
Constructs a new ConfigProvider
from a key/value (flat) provider, where nesting is embedded into the string keys.
Signature
declare const fromFlat: (flat: ConfigProvider.Flat) => ConfigProvider
Since v2.0.0
fromJson
Constructs a new ConfigProvider
from a JSON object.
Signature
declare const fromJson: (json: unknown) => ConfigProvider
Since v2.0.0
fromMap
Constructs a ConfigProvider using a map and the specified delimiter string, which determines how to split the keys in the map into path segments.
Signature
declare const fromMap: (map: Map<string, string>, config?: Partial<ConfigProvider.FromMapConfig>) => ConfigProvider
Since v2.0.0
make
Creates a new config provider.
Signature
declare const make: (options: {
readonly load: <A>(config: Config.Config<A>) => Effect.Effect<A, ConfigError.ConfigError>
readonly flattened: ConfigProvider.Flat
}) => ConfigProvider
Since v2.0.0
makeFlat
Creates a new flat config provider.
Signature
declare const makeFlat: (options: {
readonly load: <A>(
path: ReadonlyArray<string>,
config: Config.Config.Primitive<A>,
split: boolean
) => Effect.Effect<Array<A>, ConfigError.ConfigError>
readonly enumerateChildren: (
path: ReadonlyArray<string>
) => Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
readonly patch: PathPatch.PathPatch
}) => ConfigProvider.Flat
Since v2.0.0
context
ConfigProvider
The service tag for ConfigProvider
.
Signature
declare const ConfigProvider: Context.Tag<ConfigProvider, ConfigProvider>
Since v2.0.0
models
ConfigProvider (interface)
A ConfigProvider is a service that provides configuration given a description of the structure of that configuration.
Signature
export interface ConfigProvider extends ConfigProvider.Proto, Pipeable {
/**
* Loads the specified configuration, or fails with a config error.
*/
load<A>(config: Config.Config<A>): Effect.Effect<A, ConfigError.ConfigError>
/**
* Flattens this config provider into a simplified config provider that knows
* only how to deal with flat (key/value) properties.
*/
readonly flattened: ConfigProvider.Flat
}
Since v2.0.0
symbols
ConfigProviderTypeId
Signature
declare const ConfigProviderTypeId: unique symbol
Since v2.0.0
ConfigProviderTypeId (type alias)
Signature
type ConfigProviderTypeId = typeof ConfigProviderTypeId
Since v2.0.0
FlatConfigProviderTypeId
Signature
declare const FlatConfigProviderTypeId: unique symbol
Since v2.0.0
FlatConfigProviderTypeId (type alias)
Signature
type FlatConfigProviderTypeId = typeof FlatConfigProviderTypeId
Since v2.0.0
utils
ConfigProvider (namespace)
Since v2.0.0
Proto (interface)
Signature
export interface Proto {
readonly [ConfigProviderTypeId]: ConfigProviderTypeId
}
Since v2.0.0
Flat (interface)
A simplified config provider that knows only how to deal with flat (key/value) properties. Because these providers are common, there is special support for implementing them.
Signature
export interface Flat {
readonly [FlatConfigProviderTypeId]: FlatConfigProviderTypeId
readonly patch: PathPatch.PathPatch
load<A>(
path: ReadonlyArray<string>,
config: Config.Config.Primitive<A>,
split?: boolean
): Effect.Effect<Array<A>, ConfigError.ConfigError>
enumerateChildren(path: ReadonlyArray<string>): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
}
Since v2.0.0
FromMapConfig (interface)
Signature
export interface FromMapConfig {
readonly pathDelim: string
readonly seqDelim: string
}
Since v2.0.0
FromEnvConfig (interface)
Signature
export interface FromEnvConfig {
readonly pathDelim: string
readonly seqDelim: string
}
Since v2.0.0
KeyName (interface)
Signature
export interface KeyName {
readonly _tag: "KeyName"
readonly name: string
}
Since v1.0.0
KeyIndex (interface)
Signature
export interface KeyIndex {
readonly _tag: "KeyIndex"
readonly index: number
}
Since v1.0.0
KeyComponent (type alias)
Signature
type KeyComponent = KeyName | KeyIndex
Since v1.0.0
mapInputPath
Returns a new config provider that will automatically tranform all path configuration names with the specified function. This can be utilized to adapt the names of configuration properties from one naming convention to another.
Signature
declare const mapInputPath: {
(f: (path: string) => string): (self: ConfigProvider) => ConfigProvider
(self: ConfigProvider, f: (path: string) => string): ConfigProvider
}
Since v2.0.0
nested
Returns a new config provider that will automatically nest all configuration under the specified property name. This can be utilized to aggregate separate configuration sources that are all required to load a single configuration value.
Signature
declare const nested: {
(name: string): (self: ConfigProvider) => ConfigProvider
(self: ConfigProvider, name: string): ConfigProvider
}
Since v2.0.0
orElse
Returns a new config provider that preferentially loads configuration data from this one, but which will fall back to the specified alternate provider if there are any issues loading the configuration from this provider.
Signature
declare const orElse: {
(that: LazyArg<ConfigProvider>): (self: ConfigProvider) => ConfigProvider
(self: ConfigProvider, that: LazyArg<ConfigProvider>): ConfigProvider
}
Since v2.0.0
unnested
Returns a new config provider that will automatically un-nest all configuration under the specified property name. This can be utilized to de-aggregate separate configuration sources that are all required to load a single configuration value.
Signature
declare const unnested: {
(name: string): (self: ConfigProvider) => ConfigProvider
(self: ConfigProvider, name: string): ConfigProvider
}
Since v2.0.0