UNPKG

typedux

Version:

Slightly adjusted Redux (awesome by default) for TS

37 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selector = void 0; /** * 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>; 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); } }); } exports.selector = selector; //# sourceMappingURL=SelectorBuilder.js.map