UNPKG

space-lift

Version:

TypeScript Array, Object, Map, Set, Union, Enum utils

23 lines (22 loc) 648 B
import { ArrayWrapper } from './array'; import { MapWrapper } from './map'; import { ObjectWrapper } from './object'; import { SetWrapper } from './set'; import { isWrapper } from './wrapper'; import * as is from './is'; export const lift = function (obj) { if (isWrapper(obj)) return obj; if (is.object(obj)) return new ObjectWrapper(obj); if (obj instanceof Array) return new ArrayWrapper(obj); if (obj instanceof Map) return new MapWrapper(obj); if (obj instanceof Set) return new SetWrapper(obj); return obj; }; export function pipe(func) { return lift(func(this.value())); }