UNPKG

reflexy

Version:

Flexbox layout react components

42 lines (41 loc) 1.56 kB
export const stringAndNumberConverter = { fromAttribute: (_value) => { const value = _value?.trim(); return value != null && value !== '' && Number.isSafeInteger(+value) ? +value : value || undefined; }, toAttribute: (value) => (value == null || value === '' ? null : value), }; export const stringAndBooleanConverter = { fromAttribute: (_value) => { const value = _value?.trim(); return value === '' ? true : (value ?? undefined); }, // eslint-disable-next-line no-nested-ternary toAttribute: (value) => (value == null || value === false ? null : value === true ? '' : value), }; export const numberAndBooleanConverter = { fromAttribute: (_value) => { const value = _value?.trim(); if (value == null) return undefined; if (value === '') return true; return Number.isFinite(+value) ? +value : !!value; }, // eslint-disable-next-line no-nested-ternary toAttribute: (value) => (value == null || value === false ? null : value === true ? '' : value), }; export const numberAndStringAndBooleanConverter = { fromAttribute: (_value) => { const value = _value?.trim(); if (value == null) return undefined; if (value === '') return true; return Number.isFinite(+value) ? +value : !!value; }, // eslint-disable-next-line no-nested-ternary toAttribute: (value) => (value == null || value === false ? null : value === true ? '' : value), };