UNPKG

@future-widget-lab/ui-keys

Version:

A helper for creating render-friendly keys, useful for uniquely identifying resources, caching, testing, and rendering.

32 lines (26 loc) 591 B
import { parse } from 'flatted'; /** * @description * Use this helper to parse the generated UI key back into its original components. */ export const parseUiKey = (key: string): unknown[] => { return key.split('::').map((segment) => { if (segment === 'unknown') { return null; } if (!isNaN(Number(segment))) { return Number(segment); } if (segment === 'true' || segment === 'false') { return segment === 'true'; } if (segment.startsWith('@')) { try { return parse(segment.slice(1)); } catch { return segment; } } return segment; }); };