import { documentNumberFormatable } from './formatables/document-number.formatable' import { emailFormatable } from './formatables/email.formatable' export class Formatter { static for = { email: emailFormatable, documentNumber: documentNumberFormatable, } as const static unformat = (field: string, value: T): T => { const formatter = Formatter.for[field] if (formatter) { return formatter.unformat(value) } return value } } export type Formattable = keyof typeof Formatter.for export const Formattables = Object.keys(Formatter.for) as Array