UNPKG

@push.rocks/lik

Version:

Provides a collection of lightweight helpers and utilities for Node.js projects.

105 lines (104 loc) 2.85 kB
import * as plugins from './classes.plugins.js'; export declare const uni: (prefix?: string) => string; export interface IObjectmapForEachFunction<T> { (itemArg: T): void; } export interface IObjectmapFindFunctionSync<T> { (itemArg: T): boolean; } export interface IObjectmapFindFunction<T> { (itemArg: T): Promise<boolean>; } export interface IObjectMapEventData<T> { operation: 'add' | 'remove'; payload: T; } /** * allows keeping track of objects */ export declare class ObjectMap<T> { private fastMap; eventSubject: plugins.smartrx.rxjs.Subject<IObjectMapEventData<T>>; /** * returns a new instance */ constructor(); /** * adds an object mapped to a string * the string must be unique */ addMappedUnique(uniqueKeyArg: string, objectArg: T): void; /** * fastest way to get an object from the map * @param uniqueKey */ getMappedUnique(uniqueKeyArg: string): T; /** * remove key * @param functionArg */ removeMappedUnique(uniqueKey: string): void; /** * add object to Objectmap * returns false if the object is already in the map * returns true if the object was added successfully */ add(objectArg: T): string; /** * like .add but adds an whole array of objects */ addArray(objectArrayArg: T[]): void; /** * check if object is in Objectmap */ checkForObject(objectArg: T): boolean; /** * get key for object * @param findFunction */ getKeyForObject(objectArg: T): string; /** * find object */ find(findFunction: IObjectmapFindFunction<T>): Promise<T>; findSync(findFunction: IObjectmapFindFunctionSync<T>): T; /** * finds a specific element and then removes it */ findOneAndRemove(findFunction: IObjectmapFindFunction<T>): Promise<T>; findOneAndRemoveSync(findFunction: IObjectmapFindFunctionSync<T>): T; /** * run function for each item in Objectmap */ forEach(functionArg: IObjectmapForEachFunction<T>): Promise<void>; /** * gets an object in the Observablemap and removes it, so it can't be retrieved again */ getOneAndRemove(): T; /** * returns a cloned array of all the objects currently in the Objectmap */ getArray(): T[]; /** * check if Objectmap ist empty */ isEmpty(): boolean; /** * remove object from Objectmap */ remove(objectArg: T): T; /** * wipe Objectmap */ wipe(): void; /** * returns a new Objectmap that includes */ concat(objectMapArg: ObjectMap<T>): ObjectMap<T>; /** * tries to merge another Objectmap * Note: uniqueKeyCollisions will cause overwrite * @param objectMapArg */ addAllFromOther(objectMapArg: ObjectMap<T>): void; }