@bedard/types
Advanced tools
Comparing version 0.8.2 to 0.8.3
# Changelog | ||
## 0.8.3 | ||
- Fix strict mode errors | ||
## 0.8.0 | ||
- Removed build step, node module will expose src files directly. | ||
- Removed build step, node module will expose src files directly | ||
- [`Transparent<T>`](https://github.com/scottbedard/types#transparentt) | ||
@@ -7,0 +11,0 @@ ## 0.7.0 |
@@ -26,3 +26,3 @@ { | ||
}, | ||
"version": "0.8.2" | ||
"version": "0.8.3" | ||
} |
@@ -10,6 +10,3 @@ import { Last } from './Last' | ||
*/ | ||
export type BreakWords< | ||
T extends string, | ||
Parts extends string[] = [] | ||
> = BreakParts<BreakChars<T>> | ||
export type BreakWords<T extends string> = BreakParts<BreakChars<T>> | ||
@@ -21,3 +18,7 @@ // break a string into parts | ||
> = Parts extends [infer Head, ...infer Tail] | ||
? BreakParts<Tail, [...Acc, ...BreakCase<Head>]> | ||
? Head extends string | ||
? Tail extends string[] | ||
? BreakParts<Tail, [...Acc, ...BreakCase<Head>]> | ||
: never | ||
: never | ||
: Acc | ||
@@ -50,3 +51,3 @@ | ||
type SameWord<A, B> = A extends Lowercase<A> | ||
type SameWord<A extends string, B extends string> = A extends Lowercase<A> | ||
? true | ||
@@ -53,0 +54,0 @@ : B extends Uppercase<B> |
@@ -10,3 +10,3 @@ import { CamelCase } from './CamelCase' | ||
export type CamelCaseKeys<T> = T extends Record<string, any> | ||
? { [K in keyof T as CamelCase<K>]: T[K] } | ||
? { [K in Extract<keyof T, string> as CamelCase<K>]: T[K] } | ||
: T |
@@ -12,3 +12,3 @@ import { CamelCase } from './index' | ||
: T extends Record<string, any> | ||
? { [K in keyof T as CamelCase<K>]: CamelCaseKeysDeep<T[K]> } | ||
? { [K in Extract<keyof T, string> as CamelCase<K>]: CamelCaseKeysDeep<T[K]> } | ||
: T |
@@ -40,2 +40,2 @@ export { AllEqual } from './AllEqual' | ||
export const version = '0.8.2' | ||
export const version = '0.8.3' |
@@ -16,4 +16,5 @@ /** | ||
: Parts extends [string, ...infer Tail] | ||
// @ts-expect-error https://github.com/microsoft/TypeScript/issues/45281 | ||
? `${Parts[0]}${Delimeter}${Join<Tail, Delimeter>}` | ||
? Tail extends string[] | ||
? `${Parts[0]}${Delimeter}${Join<Tail, Delimeter>}` | ||
: never | ||
: string |
@@ -10,3 +10,3 @@ import { KebabCase } from './KebabCase' | ||
export type KebabCaseKeys<T> = T extends Record<string, any> | ||
? { [K in keyof T as KebabCase<K>]: T[K] } | ||
? { [K in Extract<keyof T, string> as KebabCase<K>]: T[K] } | ||
: T |
@@ -12,3 +12,3 @@ import { KebabCase } from './index' | ||
: T extends Record<string, any> | ||
? { [K in keyof T as KebabCase<K>]: KebabCaseKeysDeep<T[K]> } | ||
? { [K in Extract<keyof T, string> as KebabCase<K>]: KebabCaseKeysDeep<T[K]> } | ||
: T |
@@ -11,3 +11,7 @@ /** | ||
> = T extends [infer Head, ...infer Tail] | ||
? MapCapitalize<Tail, [...Acc, Capitalize<Head>]> | ||
? Head extends string | ||
? Tail extends string[] | ||
? MapCapitalize<Tail, [...Acc, Capitalize<Head>]> | ||
: never | ||
: never | ||
: Acc |
@@ -11,3 +11,7 @@ /** | ||
> = T extends [infer Head, ...infer Tail] | ||
? MapLowercase<Tail, [...Acc, Lowercase<Head>]> | ||
? Head extends string | ||
? Tail extends string[] | ||
? MapLowercase<Tail, [...Acc, Lowercase<Head>]> | ||
: never | ||
: never | ||
: Acc |
@@ -11,3 +11,7 @@ /** | ||
> = T extends [infer Head, ...infer Tail] | ||
? MapUppercase<Tail, [...Acc, Uppercase<Head>]> | ||
? Head extends string | ||
? Tail extends string[] | ||
? MapUppercase<Tail, [...Acc, Uppercase<Head>]> | ||
: never | ||
: never | ||
: Acc |
@@ -10,3 +10,3 @@ import { PascalCase } from './PascalCase' | ||
export type PascalCaseKeys<T> = T extends Record<string, any> | ||
? { [K in keyof T as PascalCase<K>]: T[K] } | ||
? { [K in Extract<keyof T, string> as PascalCase<K>]: T[K] } | ||
: T |
@@ -12,3 +12,3 @@ import { PascalCase } from './index' | ||
: T extends Record<string, any> | ||
? { [K in keyof T as PascalCase<K>]: PascalCaseKeysDeep<T[K]> } | ||
? { [K in Extract<keyof T, string> as PascalCase<K>]: PascalCaseKeysDeep<T[K]> } | ||
: T |
@@ -10,3 +10,3 @@ import { ScreamingSnakeCase } from './ScreamingSnakeCase' | ||
export type ScreamingSnakeCaseKeys<T> = T extends Record<string, any> | ||
? { [K in keyof T as ScreamingSnakeCase<K>]: T[K] } | ||
? { [K in Extract<keyof T, string> as ScreamingSnakeCase<K>]: T[K] } | ||
: T |
@@ -12,3 +12,3 @@ import { ScreamingSnakeCase } from './index' | ||
: T extends Record<string, any> | ||
? { [K in keyof T as ScreamingSnakeCase<K>]: ScreamingSnakeCaseKeysDeep<T[K]> } | ||
? { [K in Extract<keyof T, string> as ScreamingSnakeCase<K>]: ScreamingSnakeCaseKeysDeep<T[K]> } | ||
: T |
@@ -10,3 +10,3 @@ import { SnakeCase } from './SnakeCase' | ||
export type SnakeCaseKeys<T> = T extends Record<string, any> | ||
? { [K in keyof T as SnakeCase<K>]: T[K] } | ||
? { [K in Extract<keyof T, string> as SnakeCase<K>]: T[K] } | ||
: T |
@@ -12,3 +12,3 @@ import { SnakeCase } from './index' | ||
: T extends Record<string, any> | ||
? { [K in keyof T as SnakeCase<K>]: SnakeCaseKeysDeep<T[K]> } | ||
? { [K in Extract<keyof T, string> as SnakeCase<K>]: SnakeCaseKeysDeep<T[K]> } | ||
: T |
@@ -15,3 +15,5 @@ import { Equal } from './Equal' | ||
? WalkDelimeters<[Source], Delimeter> | ||
: WalkString<Source, Delimeter> | ||
: Delimeter extends string | ||
? WalkString<Source, Delimeter> | ||
: never | ||
@@ -35,3 +37,7 @@ // walk over single string and split by delimeter | ||
> = Parts extends [infer Head, ...infer Tail] | ||
? WalkParts<Tail, Delimeter, [...Acc, ...WalkString<Head, Delimeter>]> | ||
? Tail extends string[] | ||
? Head extends string | ||
? WalkParts<Tail, Delimeter, [...Acc, ...WalkString<Head, Delimeter>]> | ||
: never | ||
: never | ||
: Acc | ||
@@ -43,5 +49,8 @@ | ||
Delimeters extends string[], | ||
Acc extends string[] = [], | ||
> = Delimeters extends [infer Head, ...infer Tail] | ||
? WalkDelimeters<WalkParts<Parts, Head>, Tail> | ||
? Head extends string | ||
? Tail extends string[] | ||
? WalkDelimeters<WalkParts<Parts, Head>, Tail> | ||
: never | ||
: never | ||
: Parts |
@@ -14,2 +14,3 @@ { | ||
"sourceMap": true, | ||
"strict": true, | ||
"target": "es2015" | ||
@@ -16,0 +17,0 @@ }, |
49145
1205