type-fest
Advanced tools
Comparing version 4.18.1 to 4.18.2
{ | ||
"name": "type-fest", | ||
"version": "4.18.1", | ||
"version": "4.18.2", | ||
"description": "A collection of essential TypeScript types", | ||
@@ -5,0 +5,0 @@ "license": "(MIT OR CC0-1.0)", |
import type {CamelCase, CamelCaseOptions} from './camel-case'; | ||
import type {UnknownArray} from './unknown-array'; | ||
@@ -47,9 +48,41 @@ /** | ||
*/ | ||
export type CamelCasedPropertiesDeep<Value, Options extends CamelCaseOptions = {preserveConsecutiveUppercase: true}> = Value extends Function | ||
export type CamelCasedPropertiesDeep< | ||
Value, | ||
Options extends CamelCaseOptions = {preserveConsecutiveUppercase: true}, | ||
> = Value extends Function | ||
? Value | ||
: Value extends Array<infer U> | ||
? Array<CamelCasedPropertiesDeep<U, Options>> | ||
: Value extends UnknownArray | ||
? CamelCasedPropertiesArrayDeep<Value> | ||
: Value extends Set<infer U> | ||
? Set<CamelCasedPropertiesDeep<U, Options>> : { | ||
[K in keyof Value as CamelCase<K, Options>]: CamelCasedPropertiesDeep<Value[K], Options>; | ||
? Set<CamelCasedPropertiesDeep<U, Options>> | ||
: { | ||
[K in keyof Value as CamelCase<K, Options>]: CamelCasedPropertiesDeep< | ||
Value[K], | ||
Options | ||
>; | ||
}; | ||
// This is a copy of DelimiterCasedPropertiesArrayDeep (see: delimiter-cased-properties-deep.d.ts). | ||
// These types should be kept in sync. | ||
type CamelCasedPropertiesArrayDeep<Value extends UnknownArray> = | ||
Value extends [] | ||
? [] | ||
: // Tailing spread array | ||
Value extends [infer U, ...infer V] | ||
? [CamelCasedPropertiesDeep<U>, ...CamelCasedPropertiesDeep<V>] | ||
: Value extends readonly [infer U, ...infer V] | ||
? readonly [CamelCasedPropertiesDeep<U>, ...CamelCasedPropertiesDeep<V>] | ||
: // Leading spread array | ||
Value extends readonly [...infer U, infer V] | ||
? [...CamelCasedPropertiesDeep<U>, CamelCasedPropertiesDeep<V>] | ||
: Value extends readonly [...infer U, infer V] | ||
? readonly [ | ||
...CamelCasedPropertiesDeep<U>, | ||
CamelCasedPropertiesDeep<V>, | ||
] | ||
: // Array | ||
Value extends Array<infer U> | ||
? Array<CamelCasedPropertiesDeep<U>> | ||
: Value extends ReadonlyArray<infer U> | ||
? ReadonlyArray<CamelCasedPropertiesDeep<U>> | ||
: never; |
@@ -64,2 +64,4 @@ import type {DelimiterCase} from './delimiter-case'; | ||
// This is a copy of CamelCasedPropertiesArrayDeep (see: camel-cased-properties-deep.d.ts). | ||
// These types should be kept in sync. | ||
type DelimiterCasedPropertiesArrayDeep<Value extends UnknownArray, Delimiter extends string> = | ||
@@ -66,0 +68,0 @@ Value extends [] |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
364344
8792