22 lines
1.1 KiB
Plaintext
22 lines
1.1 KiB
Plaintext
import { Cloneable } from './Cloneable';
|
|
export type OneToManyMapStartSpec<TRelation extends object> = {
|
|
[TKey in keyof TRelation]: {
|
|
isOptional: undefined extends TRelation[TKey] ? true : false;
|
|
};
|
|
};
|
|
/**
|
|
* Data structure able to efficiently manage a set of models related to a set of properties in a one to many relation.
|
|
*/
|
|
export declare class OneToManyMapStar<TModel, TRelation extends object> implements Cloneable<OneToManyMapStar<TModel, TRelation>> {
|
|
#private;
|
|
constructor(spec: OneToManyMapStartSpec<TRelation>);
|
|
add(model: TModel, relation: TRelation): void;
|
|
clone(): this;
|
|
get<TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]): Iterable<TModel> | undefined;
|
|
getAllKeys<TKey extends keyof TRelation>(key: TKey): Iterable<TRelation[TKey]>;
|
|
removeByRelation<TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]): void;
|
|
protected _buildNewInstance(spec: OneToManyMapStartSpec<TRelation>): this;
|
|
protected _cloneModel(model: TModel): TModel;
|
|
protected _cloneRelation(relation: TRelation): TRelation;
|
|
}
|
|
//# sourceMappingURL=OneToManyMapStar.d.ts.map |