Sha256: 25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef
Contents?: true
Size: 935 Bytes
Versions: 52
Compression:
Stored size: 935 Bytes
Contents
import type {SplitIncludingDelimiters} from './delimiter-case'; import type {SnakeCase} from './snake-case'; import type {Includes} from './includes'; /** Returns a boolean for whether the string is screaming snake case. */ type IsScreamingSnakeCase<Value extends string> = Value extends Uppercase<Value> ? Includes<SplitIncludingDelimiters<Lowercase<Value>, '_'>, '_'> extends true ? true : false : false; /** Convert a string literal to screaming-snake-case. This can be useful when, for example, converting a camel-cased object property to a screaming-snake-cased SQL column name. @example ``` import type {ScreamingSnakeCase} from 'type-fest'; const someVariable: ScreamingSnakeCase<'fooBar'> = 'FOO_BAR'; ``` @category Change case @category Template literal */ export type ScreamingSnakeCase<Value> = Value extends string ? IsScreamingSnakeCase<Value> extends true ? Value : Uppercase<SnakeCase<Value>> : Value;
Version data entries
52 entries across 52 versions & 3 rubygems