UNPKG

@civ-clone/core-registry

Version:

This component is used to create other registries that contain object data. This is a stub that contains all the shared methods that other classes will extend replacing the constructor with a call to the parent passing in the supported types that can be s

40 lines (39 loc) 1.46 kB
import { IRegistry, IRegistryIterator, IConstructor } from './Registry'; export interface IEntityRegistry<T> extends IRegistry<T> { accepts(entity: T): boolean; entries(): T[]; every(iterator: IRegistryIterator<T>): boolean; filter(iterator: IRegistryIterator<T>): T[]; forEach(iterator: (item: T, i: number) => void): void; getBy<K extends keyof T>( key: K, value: T[K] extends (...args: any[]) => any ? ReturnType<T[K]> : T[K] ): T[]; includes(item: T): boolean; indexOf(item: T): number; map(iterator: (item: T, i: number) => any): any[]; register(...entities: T[]): void; some(iterator: IRegistryIterator<T>): boolean; unregister(...entities: T[]): void; } export declare class EntityRegistry<T = any> implements IEntityRegistry<T> { #private; constructor(...acceptedTypes: IConstructor<T>[]); accepts(entity: T): boolean; entries(): T[]; every(iterator: IRegistryIterator<T>): boolean; filter(iterator: IRegistryIterator<T>): T[]; forEach(iterator: (item: T, i: number) => void): void; getBy<K extends keyof T>( key: K, value: T[K] extends (...args: any[]) => any ? ReturnType<T[K]> : T[K] ): T[]; includes(item: T): boolean; indexOf(entity: T): number; get length(): number; map(iterator: (item: T, i: number) => any): any[]; register(...entities: T[]): void; some(iterator: IRegistryIterator<T>): boolean; unregister(...entities: T[]): void; } export default EntityRegistry;