Skip to content

Commit ca82304

Browse files
committed
when present
1 parent 01eb78e commit ca82304

1 file changed

Lines changed: 7 additions & 14 deletions

File tree

src/config/index.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ export const getEnv = (
486486
}
487487

488488
type SettingValueType = string | number | boolean
489-
type ConcreteSettingType<C extends SettingDefinition> = C['type'] extends 'string'
489+
type SettingTypeWhenPresent<C extends SettingDefinition> = C['type'] extends 'string'
490490
? string
491491
: C['type'] extends 'number'
492492
? number
@@ -498,36 +498,29 @@ type ConcreteSettingType<C extends SettingDefinition> = C['type'] extends 'strin
498498
: never
499499
: never
500500
type SettingType<C extends SettingDefinition> = C extends HasDefault | IsRequired
501-
? ConcreteSettingType<C>
502-
: ConcreteSettingType<C> | undefined
501+
? SettingTypeWhenPresent<C>
502+
: SettingTypeWhenPresent<C> | undefined
503503

504504
export type BaseSettingsDefinitionType = typeof BaseSettingsDefinition
505505

506-
export type MaybeRequiredSettingDefinition =
507-
| {
508-
required?: false
509-
}
510-
| {
511-
required: true
512-
}
513-
514506
export type SettingDefinitionBase = {
515507
description: string
516508
sensitive?: boolean
517-
} & MaybeRequiredSettingDefinition
509+
required?: boolean
510+
}
518511

519512
export type NonEnumSettingDefinition<TypeString, Type> = SettingDefinitionBase & {
520513
type: TypeString
521-
options?: never
522514
default?: Type
523515
validate?: Validator<Type>
516+
options?: never
524517
}
525518

526519
export type EnumSettingDefinition = SettingDefinitionBase & {
527520
type: 'enum'
528-
options: readonly string[]
529521
default?: string
530522
validate?: Validator<string>
523+
options: readonly string[]
531524
}
532525

533526
export type SettingDefinition =

0 commit comments

Comments
 (0)