space-lift
Version:
TypeScript Array, Object, Map, Set, Union, Enum utils
27 lines (26 loc) • 1.2 kB
TypeScript
export { lift } from './lift';
export { update, toDraft } from './immupdate';
export { range } from './array';
export { createUnion } from './union';
export { createEnum } from './enum';
export { identity, noop } from './function';
import * as isType from './is';
export declare const is: typeof isType;
export declare function immutable<T>(obj: T): Immutable<T>;
export declare type Immutable<T> = T extends ImmutablePrimitive ? T : T extends Array<infer U> ? ImmutableArray<U> : T extends Map<infer K, infer V> ? ImmutableMap<K, V> : T extends Set<infer M> ? ImmutableSet<M> : ImmutableObject<T>;
declare type ImmutablePrimitive = undefined | null | boolean | string | number | Function;
declare type ImmutableArray<T> = ReadonlyArray<Immutable<T>>;
declare type ImmutableMap<K, V> = ReadonlyMap<Immutable<K>, Immutable<V>>;
declare type ImmutableSet<T> = ReadonlySet<Immutable<T>>;
declare type ImmutableObject<T> = {
readonly [K in keyof T]: Immutable<T[K]>;
};
export declare type Result<T, E = unknown> = {
ok: true;
value: T;
} | {
ok: false;
error: E;
};
export declare function Ok<T>(value: T): Result<T, never>;
export declare function Err<E>(error: E): Result<never, E>;