NodeA discriminated union describing the shape of a configuration value at a given path.
When to use
Use when implementing a custom ConfigProvider by returning raw
nodes from the get callback passed to make, or when inspecting raw
provider output before schema parsing.
Details
Value is a terminal string leaf. Record is an object-like container
whose immediate child keys are known and may carry an optional co-located
value. Array is an indexed container with a known length and may also
carry an optional co-located value.
export type type Node =
| {
readonly _tag: "Value"
readonly value: string
}
| {
readonly _tag: "Record"
readonly keys: ReadonlySet<string>
readonly value: string | undefined
}
| {
readonly _tag: "Array"
readonly length: number
readonly value: string | undefined
}
A discriminated union describing the shape of a configuration value at a
given path.
When to use
Use when implementing a custom ConfigProvider by returning raw
nodes from the get callback passed to
make
, or when inspecting raw
provider output before schema parsing.
Details
Value is a terminal string leaf. Record is an object-like container
whose immediate child keys are known and may carry an optional co-located
value. Array is an indexed container with a known length and may also
carry an optional co-located value.
Node =
/** A terminal string value */
| {
readonly _tag: "Value"_tag: "Value"
readonly value: stringvalue: string
}
/** An object; keys are unordered */
| {
readonly _tag: "Record"_tag: "Record"
readonly keys: ReadonlySet<string>keys: interface ReadonlySet<T>ReadonlySet<string>
readonly value: string | undefinedvalue: string | undefined
}
/** An array-like container; length is the number of elements */
| {
readonly _tag: "Array"_tag: "Array"
readonly length: numberlength: number
readonly value: string | undefinedvalue: string | undefined
}