UNPKG

@nullvoxpopuli/ember-composable-helpers

Version:
28 lines (24 loc) 883 B
import type { AnyFn } from '../utils/types'; export function optional<Fn extends AnyFn>([action]: [fn: Fn]): Fn; export function optional<Fn extends AnyFn>([action]: [fn: Fn | undefined]): | Fn | (<Arg>(arg: Arg) => Arg); export function optional([action]: [fn?: undefined]): <Arg>(arg: Arg) => Arg; export function optional<Fn extends AnyFn>([action]: [fn?: Fn | undefined]): | Fn | (<Arg>(arg: Arg) => Arg) { if (typeof action === 'function') { return action; } return <Arg>(i: Arg) => i; } export default function optionalHelper<Fn extends AnyFn>(action: Fn): Fn; export default function optionalHelper<Fn extends AnyFn>( action: Fn | undefined, ): Fn | (<Arg>(arg: Arg) => Arg); export default function optionalHelper( action?: undefined, ): <Arg>(arg: Arg) => Arg; export default function optionalHelper(action?: AnyFn) { return optional([action]); }