frontend/.pnpm-store/v3/files/2b/d25abbd858bce2664a507261306612750cf36f4c94acf059e52b3b5b835edf99b8040cb6aa6a62351ed1ab600b1f5df0c7b66e1bd0ebc7c481e66d2d3c1326

31 lines
601 B
Plaintext

import {PascalCase} from './pascal-case';
/**
Convert object properties to pascal case but not recursively.
This can be useful when, for example, converting some API types from a different style.
@see PascalCase
@see PascalCasedPropertiesDeep
@example
```
interface User {
userId: number;
userName: string;
}
const result: PascalCasedProperties<User> = {
UserId: 1,
UserName: 'Tom',
};
```
@category Template Literals
*/
export type PascalCasedProperties<Value> = Value extends Function
? Value
: Value extends Array<infer U>
? Value
: { [K in keyof Value as PascalCase<K>]: Value[K] };