UNPKG

nope-js-node

Version:

NoPE Runtime for Nodejs. For Browser-Support please use nope-browser

71 lines (70 loc) 2.54 kB
/** * @author Martin Karkowski * @email m.karkowski@zema.de * @desc [description] */ import { INopeEventEmitter, INopeObservable } from "../types/nope"; import { IMapBasedMergeData, IMergeData } from "../types/nope/nopeHelpers.interface"; export declare class MergeData<T, D = any> implements IMergeData<T, D> { originalData: D; protected _extractData: (data: D) => Set<T>; /** * Element which will trig implements IMergeDatager an event containing the changes * * @author M.Karkowski * @type {INopeEventEmitter<{ * added: T[], * removed: T[] * }>} * @memberof MergeData */ readonly onChange: INopeEventEmitter<{ added: T[]; removed: T[]; }>; /** * Contains the current data. * * @author M.Karkowski * @type {INopeObservable<T[]>} * @memberof MergeData */ readonly data: INopeObservable<T[]>; constructor(originalData: D, _extractData: (data: D) => Set<T>); /** * Update the underlying data. * * @author M.Karkowski * @param {*} [data=this.originalData] * @memberof MergeData */ update(data?: D, force?: boolean): void; /** * Disposes the Element. * * @author M.Karkowski * @memberof MergeData */ dispose(): void; } export declare class MapBasedMergeData<OriginalKey, OriginalValue, ExtractedKey = OriginalKey, ExtractedValue = OriginalValue> extends MergeData<ExtractedValue, Map<OriginalKey, OriginalValue>> implements IMapBasedMergeData<OriginalKey, OriginalValue, ExtractedKey, ExtractedValue> { protected _path: keyof OriginalValue | string; protected _pathKey: keyof OriginalValue | string; amountOf: Map<ExtractedKey, number>; simplified: Map<ExtractedKey, ExtractedValue>; keyMapping: Map<OriginalKey, Set<ExtractedKey>>; keyMappingReverse: Map<ExtractedKey, Set<OriginalKey>>; conflicts: Map<ExtractedKey, Set<ExtractedValue>>; orgKeyToExtractedValue: Map<OriginalKey, Set<ExtractedValue>>; extractedKey: ExtractedKey[]; extractedValue: ExtractedValue[]; constructor(originalData: Map<OriginalKey, OriginalValue>, _path?: keyof OriginalValue | string, _pathKey?: keyof OriginalValue | string); /** * Update the underlying data. * * @author M.Karkowski * @param {*} [data=this.originalData] * @memberof MergeData */ update(data?: Map<OriginalKey, OriginalValue>): void; }