@tanstack/db
Version:
A reactive client store for building super fast apps on sync
36 lines (35 loc) • 2.23 kB
TypeScript
import { NamespacedRow } from '../../types.js';
export declare const CALLBACK_INPUT: unique symbol;
export declare const CALLBACK_SELECTED: unique symbol;
export declare const INCLUDES_PUBLIC_KEY: unique symbol;
export declare const INCLUDES_ROUTING: unique symbol;
export type RouteMetadata = {
correlationKey: unknown;
parentContext: unknown;
};
export type RoutedScalarMetadata = {
value: unknown;
correlationKey: unknown;
parentContext: unknown;
publicKey: unknown;
};
export declare function attachRouteMetadata<T extends object>(value: T, correlationKey: unknown, parentContext: unknown): T;
export declare function getRouteMetadata(value: unknown): RouteMetadata | undefined;
export declare function getNamespacedRouteMetadata(row: unknown, source: string): RouteMetadata | undefined;
export declare function stripRouteMetadata<T extends object>(value: T): T;
export declare function attachRouteMetadataToResult(value: unknown, correlationKey: unknown, parentContext: unknown, publicKey: unknown): unknown;
export declare function getRoutedScalarMetadata(value: unknown): RoutedScalarMetadata | undefined;
/** Give FROM and JOIN rows the same route and callback namespace. */
export declare function wrapInputRow(alias: string, row: unknown, callbackValue?: unknown): NamespacedRow;
/** A namespace keeps authored values beside its callback source overrides.
* A one-element tuple denotes a flat union view: absent fields must disappear,
* whereas named overrides replace only their own source aliases.
*/
export declare function getCallbackInput<T extends object>(row: T): T;
/** Copy public containers while removing private route state at every depth. */
export declare function stripInternalRouteMetadata(value: unknown): unknown;
/** Remove every compiler-owned key before invoking user code. */
export declare function stripInternalCallbackMetadata(value: unknown): unknown;
/** Copy only paths changed by a leaf transform or an omitted private key. */
export declare function transformPublicContainers(value: unknown, transformLeaf: (value: unknown) => unknown, omittedKeys: ReadonlySet<PropertyKey>): unknown;
export declare function isPublicContainer(value: unknown): value is object;