export function obtool(input: Input) {
return {
map(
mapper: (value: Input[keyof Input], key: string) => OutputValue
) {
return <{[P in keyof Input]: OutputValue}>(
Object.fromEntries(
Object.entries(input).map(
([key, value]) => [key, mapper(value, key)]
)
)
)
},
}
}