import { LocalDate } from 'js-joda'; /** Function to transform a string into a given type */ export interface Parser { (value: string): T } export const BooleanParser: Parser = (value: string) => value === 'true'; export const LocalDateParser: Parser = (value: string) => LocalDate.parse(value); export const IntParser: Parser = parseInt; export const FloatParser: Parser = parseFloat; export const JSONParser = (value: string) => JSON.parse(value) as T; // Utility function to catch any errors that parsers might throw export function safeParse(parse: Parser, value: string): T { try { return parse(value); } catch (e) { return undefined; } }