@ngrx/signals
Version:
Reactive Store and Set of Utilities for Angular Signals
25 lines (24 loc) • 945 B
TypeScript
import { Signal } from '@angular/core';
export type EntityId = string | number;
export type EntityMap<Entity> = Record<EntityId, Entity>;
export type EntityState<Entity> = {
entityMap: EntityMap<Entity>;
ids: EntityId[];
};
export type NamedEntityState<Entity, Collection extends string> = {
[K in keyof EntityState<Entity> as `${Collection}${Capitalize<K>}`]: EntityState<Entity>[K];
};
export type EntityProps<Entity> = {
entities: Signal<Entity[]>;
};
export type NamedEntityProps<Entity, Collection extends string> = {
[K in keyof EntityProps<Entity> as `${Collection}${Capitalize<K>}`]: EntityProps<Entity>[K];
};
export type SelectEntityId<Entity> = (entity: Entity) => EntityId;
export type EntityPredicate<Entity> = (entity: Entity) => boolean;
export type EntityChanges<Entity> = Partial<Entity> | ((entity: Entity) => Partial<Entity>);
export declare enum DidMutate {
None = 0,
Entities = 1,
Both = 2
}