import { isArray } from 'lodash' export const coalesceSingle = (value: T | Array | null): undefined | T => { return coalesceMultiple(value)?.[0] } export const coalesceMultiple = (value: T | Array | null): undefined | T[] => { if (value === null || value === undefined) { return undefined } const ret: T[] = [] if (isArray(value)) { value.forEach(v => { if (v !== null && v !== undefined) { ret.push(v) } }) } else { ret.push(value) } return ret } export const coalesce = coalesceSingle