shelving
Version:
Toolkit for using data in JavaScript.
22 lines (21 loc) • 1.16 kB
TypeScript
import type { ImmutableArray } from "./array.js";
import type { Data } from "./data.js";
import type { Query } from "./query.js";
/** Item data with a string ID that uniquely identifies it. */
export type Item<T extends Data = Data> = T & {
id: string;
};
/** Entity or `undefined` to indicate the item doesn't exist. */
export type OptionalItem<T extends Data = Data> = Item<T> | undefined;
/** Get the ID from item data. */
export declare function getItemID<T extends Data>({ id }: Item<T>): string;
/** Get the IDs of an iterable set item data. */
export declare function getItemIDs<T extends Data>(entities: Iterable<Item<T>>): Iterable<string>;
/** Merge an ID into a set of data to make an `ItemData` */
export declare function getItem<T extends Data>(id: string, data: T | Item<T>): Item<T>;
/** An array of item data. */
export type Items<T extends Data = Data> = ImmutableArray<Item<T>>;
/** A set of query constraints for item data. */
export type ItemQuery<T extends Data = Data> = Query<Item<T>>;
/** Get query that targets a single database item by its ID. */
export declare function getItemQuery<T extends Data>(id: string): Query<Item<T>>;