UNPKG

rivo

Version:

🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.

12 lines (9 loc) • 447 B
import type { Args, Fn } from "../HKT"; export type ToCamelCase<S extends string> = _ToCamelCase<S> extends `${infer T}${infer U}` ? `${Uncapitalize<T>}${_ToCamelCase<U>}` : S; type _ToCamelCase<S extends string> = S extends `${infer T}${"_" | "-"}${infer U}` ? `${Capitalize<T>}${_ToCamelCase<Capitalize<U>>}` : S; export default interface ToCamelCaseFn extends Fn<[string], string> { def: ([s]: Args<this>) => ToCamelCase<typeof s>; }