Sha256: 25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef

Contents?: true

Size: 935 Bytes

Versions: 61

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

61 entries across 61 versions & 3 rubygems

Version Path
clapton-0.0.17 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.16 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.15 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
immosquare-cleaner-0.1.49 node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.14 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
immosquare-cleaner-0.1.48 node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.13 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.12 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.11 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.10 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.9 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.8 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.7 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.6 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.5 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.4 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.3 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.2 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
clapton-0.0.1 lib/clapton/javascripts/node_modules/type-fest/source/screaming-snake-case.d.ts
immosquare-cleaner-0.1.47 node_modules/type-fest/source/screaming-snake-case.d.ts