@waiting/shared-types
Advanced tools
Comparing version 16.4.0 to 17.0.0
@@ -5,3 +5,3 @@ /** | ||
* | ||
* @version 16.3.1 | ||
* @version 16.4.0 | ||
* @author waiting | ||
@@ -8,0 +8,0 @@ * @license MIT |
@@ -6,11 +6,7 @@ export declare type StrSplit<S extends string, D extends string> = string extends S ? string[] : S extends `${infer T}${D}${infer U}` ? [T, ...StrSplit<U, D>] : [ | ||
export declare type TupleJoin<T extends V[], D extends string> = T extends [] ? '' : T extends [unknown] ? `${T[0]}` : T extends [unknown, ...infer U] ? `${T[0]}${D}${TupleJoin<U, D>}` : string; | ||
declare type FormatCapitalize<T extends unknown[]> = T extends [] ? [] : T extends [string] ? [`${Capitalize<T[0]>}`] : T extends [string, ...infer U] ? [`${Capitalize<T[0]>}`, ...FormatCapitalize<U>] : []; | ||
declare type FormatCamelCase<T extends unknown[]> = T extends [] ? [] : T extends [unknown] ? [T[0]] : T extends [unknown, ...infer U] ? [T[0], ...FormatCapitalize<U>] : []; | ||
export declare type SnakeToCamel<T extends string, D extends string = '_' | '-'> = TupleJoin<FormatCamelCase<StrSplit<T, D>>, ''>; | ||
export declare type SnakeToPascal<T extends string, D extends string = '_' | '-'> = TupleJoin<FormatCapitalize<StrSplit<T, D>>, ''>; | ||
export declare type RecusiveCamelKeys<T> = { | ||
[K in keyof T as `${SnakeToCamel<K & string>}`]: T[K] extends Record<string, unknown> ? RecusiveCamelKeys<T[K]> : T[K]; | ||
}; | ||
export declare type RecusiveParscalKeys<T> = { | ||
[K in keyof T as `${SnakeToPascal<K & string>}`]: T[K] extends Record<string, unknown> ? RecusiveParscalKeys<T[K]> : T[K]; | ||
export declare type RecusivePascalKeys<T> = { | ||
[K in keyof T as `${SnakeToPascal<K & string>}`]: T[K] extends Record<string, unknown> ? RecusivePascalKeys<T[K]> : T[K]; | ||
}; | ||
@@ -20,3 +16,3 @@ export declare type RecordCamelKeys<T, D extends string = '_' | '-'> = { | ||
}; | ||
export declare type RecordParscalKeys<T, D extends string = '_' | '-'> = { | ||
export declare type RecordPascalKeys<T, D extends string = '_' | '-'> = { | ||
[K in keyof T as `${SnakeToPascal<K & string, D>}`]: T[K]; | ||
@@ -29,2 +25,5 @@ }; | ||
}; | ||
export declare type SnakeToCamel<T extends string, D extends string = '_'> = T extends `${D}${infer R}` ? `${D}${SnakeToCamel<R, D>}` : T extends `${infer R}${D}` ? `${SnakeToCamel<R, D>}${D}` : _SnakeToCamel<T, D>; | ||
declare type _SnakeToCamel<T extends string, D extends string> = T extends `${infer U}${infer R}` ? U extends D ? R extends D ? `${D}${D}` : R extends `${D}${string}` ? `${D}${_SnakeToCamel<R, D>}` : `${_SnakeToCamel<Capitalize<R>, D>}` : `${U}${_SnakeToCamel<R, D>}` : T; | ||
export declare type SnakeToPascal<T extends string, D extends string = '_'> = T extends `${D}${infer R}` ? `${D}${Capitalize<SnakeToPascal<R, D>>}` : T extends `${infer R}${D}` ? `${SnakeToPascal<Capitalize<R>, D>}${D}` : _SnakeToCamel<Capitalize<T>, D>; | ||
export {}; |
{ | ||
"name": "@waiting/shared-types", | ||
"author": "waiting", | ||
"version": "16.4.0", | ||
"version": "17.0.0", | ||
"description": "shared typescript types", | ||
@@ -63,3 +63,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "642e94892054b3c0d5b693b96c2dff905df2d189" | ||
"gitHead": "4a84d0e263181e01813728616ec7a4411bd913af" | ||
} |
25184
676