@inversifyjs/core
Version:
InversifyJs core package
22 lines • 1.16 kB
TypeScript
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