Sha256: 17fd39370a6ff62e85f93b571504c0f458d22fdc0618bf8e00550375a2b8e593

Contents?: true

Size: 894 Bytes

Versions: 33

Compression:

Stored size: 894 Bytes

Contents

import {SplitIncludingDelimiters} from './delimiter-case';
import {SnakeCase} from './snake-case';
import {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 {ScreamingSnakeCase} from 'type-fest';

const someVariable: ScreamingSnakeCase<'fooBar'> = 'FOO_BAR';
```

@category Template Literals
*/
export type ScreamingSnakeCase<Value> = Value extends string
	? IsScreamingSnakeCase<Value> extends true
		? Value
		: Uppercase<SnakeCase<Value>>
	: Value;

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
immosquare-cleaner-0.1.40 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.39 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.38 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.32 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.31 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.30 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.29 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.28 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.27 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.26 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.25 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.24 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts
immosquare-cleaner-0.1.23 node_modules/crypto-random-string/node_modules/type-fest/ts41/screaming-snake-case.d.ts