UNPKG

typedux

Version:

Slightly adjusted Redux (awesome by default) for TS

33 lines 1.03 kB
/** * Optional chaining with default values. To inspect a property value in * a tree-like structure, invoke it as a function, optionally passing a default value. * * @example * // Given: * const x = oc<T>({ * a: 'hello', * b: { d: 'world' }, * c: [-100, 200, -300], * }); * * // Then: * x.a() === 'hello' * x.b.d() === 'world' * x.c[0]() === -100 * x.c[100]() === undefined * x.c[100](1234) === 1234 * x.c.map((e) => e()) === [-100, 200, -300] * x.d.e() === undefined * x.d.e('optional default value') === 'optional default value' * (x as any).y.z.a.b.c.d.e.f.g.h.i.j.k() === undefined */ //export declare function oc<T>(data?: T): SelectorChainType<T>; export function selector(data) { return new Proxy(((defaultValue) => (data == null ? defaultValue : data)), { get: (target, key) => { const obj = target(); return selector(typeof obj === "object" ? obj[key] : undefined); } }); } //# sourceMappingURL=SelectorBuilder.js.map