space-lift
Version:
TypeScript Array, Object, Map, Set, Union, Enum utils
23 lines (22 loc) • 648 B
JavaScript
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()));
}