UNPKG

graphile-settings

Version:
21 lines (20 loc) 639 B
export function safeInflection(fn, fallback) { try { return fn() ?? fallback; } catch { return fallback; } } export function createAttributeInflector(inflection) { return (attrName, codec) => { const attributeName = safeInflection(() => inflection._attributeName?.({ attributeName: attrName, codec }), attrName); return safeInflection(() => inflection.camelCase?.(attributeName), attributeName); }; } export function fallbackTableType(codecName) { return codecName .replace(/_/g, ' ') .replace(/\b\w/g, (char) => char.toUpperCase()) .replace(/ /g, ''); }