rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
12 lines (9 loc) • 447 B
TypeScript
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>;
}