nope-js-node
Version:
NoPE Runtime for Nodejs. For Browser-Support please use nope-browser
71 lines (70 loc) • 2.54 kB
TypeScript
/**
* @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;
}