UNPKG

@glimmer/reference

Version:

Objects used to track values and their dirtiness in Glimmer

64 lines 3.29 kB
import { Nullable, Reference, ReferenceSymbol } from "@glimmer/interfaces"; declare const REFERENCE: ReferenceSymbol; ////////// interface ReferenceEnvironment { getProp(obj: unknown, path: string): unknown; setProp(obj: unknown, path: string, value: unknown): unknown; } declare function createPrimitiveRef<T>(value: T): Reference<T>; declare const UNDEFINED_REFERENCE: Reference<any>; declare const NULL_REFERENCE: Reference<any>; declare const TRUE_REFERENCE: Reference<true>; declare const FALSE_REFERENCE: Reference<false>; declare function createConstRef<T>(value: T, debugLabel: false | string): Reference<T>; declare function createUnboundRef<T>(value: T, debugLabel: false | string): Reference<T>; declare function createComputeRef<T = unknown>(compute: () => T, update?: Nullable<(value: T) => void>, debugLabel?: false | string): Reference<T>; declare function createReadOnlyRef(ref: Reference): Reference; declare function isInvokableRef(ref: Reference): boolean; declare function createInvokableRef(inner: Reference): Reference; declare function isConstRef(_ref: Reference): boolean; declare function isUpdatableRef(_ref: Reference): boolean; declare function valueForRef<T>(_ref: Reference<T>): T; declare function updateRef(_ref: Reference, value: unknown): void; declare function childRefFor(_parentRef: Reference, path: string): Reference; declare function childRefFromParts(root: Reference, parts: string[]): Reference; declare let createDebugAliasRef: undefined | ((debugLabel: string, inner: Reference) => Reference); interface IterationItem<T, U> { key: unknown; value: T; memo: U; } interface AbstractIterator<T, U, V extends IterationItem<T, U>> { isEmpty(): boolean; next(): Nullable<V>; } type OpaqueIterationItem = IterationItem<unknown, unknown>; type OpaqueIterator = AbstractIterator<unknown, unknown, OpaqueIterationItem>; interface IteratorDelegate { isEmpty(): boolean; next(): { value: unknown; memo: unknown; } | null; } type KeyFor = (item: unknown, index: unknown) => unknown; declare function createIteratorRef(listRef: Reference, key: string): Reference<ArrayIterator | IteratorWrapper>; declare function createIteratorItemRef(_value: unknown): Reference<unknown>; declare class IteratorWrapper implements OpaqueIterator { private inner; private keyFor; constructor(inner: IteratorDelegate, keyFor: KeyFor); isEmpty(): boolean; next(): OpaqueIterationItem; } declare class ArrayIterator implements OpaqueIterator { private iterator; private keyFor; private current; private pos; constructor(iterator: unknown[] | readonly unknown[], keyFor: KeyFor); isEmpty(): boolean; next(): Nullable<IterationItem<unknown, number>>; } export { AbstractIterator, createIteratorItemRef, createIteratorRef, IterationItem, IteratorDelegate, OpaqueIterationItem, OpaqueIterator, childRefFor, childRefFromParts, createComputeRef, createConstRef, createDebugAliasRef, createInvokableRef, createPrimitiveRef, createReadOnlyRef, createUnboundRef, FALSE_REFERENCE, isConstRef, isInvokableRef, isUpdatableRef, NULL_REFERENCE, REFERENCE, Reference, ReferenceEnvironment, TRUE_REFERENCE, UNDEFINED_REFERENCE, updateRef, valueForRef }; //# sourceMappingURL=index.d.ts.map