@altostra/core
Version:
Core library for shared types and logic
19 lines (18 loc) • 1.46 kB
TypeScript
import type { Connection, ConnectionId, ConnectionKindType } from "../../Blueprint/Connection";
import type { Maybe } from "../../Common";
import type { BlueprintHelper } from "../BlueprintHelper";
import { Collection } from "../Collection";
import type { ConnectionHelperByType } from "../ConnectionHelper";
import { ConnectionHelper } from "../ConnectionHelper";
import type { It } from "../Iterable";
export declare abstract class ConnectionCollectionBase extends Collection<Connection, ConnectionHelper, ConnectionId> {
protected readonly _blueprint: BlueprintHelper;
private readonly _connections;
constructor(cache: WeakMap<Connection, ConnectionHelper>, _blueprint: BlueprintHelper, _connections: () => Iterable<Connection>);
[Symbol.iterator](): Generator<ConnectionHelper, void, unknown>;
get({ from, to }: ConnectionId): Maybe<ConnectionHelper>;
ofType<TType extends ConnectionKindType>(...type: [TType, ...TType[]]): It<ConnectionHelperByType<TType>>;
assertType<TType extends ConnectionKindType>(...validTypes: [TType, ...TType[]]): It<ConnectionHelperByType<TType>>;
}
export declare function ofConnectionType<TType extends ConnectionKindType>(...type: [TType, ...TType[]]): (src: Iterable<ConnectionHelper>) => It<ConnectionHelperByType<TType>>;
export declare function assertConnectionType<TType extends ConnectionKindType>(...validTypes: TType[]): (src: Iterable<ConnectionHelper>) => It<ConnectionHelperByType<TType>>;