21 lines
830 B
TypeScript
21 lines
830 B
TypeScript
import { InvestigationRecords } from "./investigation/InvestigationRecords.js";
|
|
import type { AnalysisProvider } from "./AnalysisProvider.js";
|
|
import { AnalysisProviderRegistry } from "./AnalysisProviderRegistry.js";
|
|
import { BinarySession } from "./BinarySession.js";
|
|
import { SessionProviderRouter } from "./SessionProviderRouter.js";
|
|
|
|
/**
|
|
* Compose one provider-neutral session from deep-provider selection and
|
|
* disjoint auxiliary operation families.
|
|
*/
|
|
export const composeBinarySession = (
|
|
registry: AnalysisProviderRegistry | SessionProviderRouter,
|
|
auxiliaryProviders: readonly AnalysisProvider[] = [],
|
|
): BinarySession =>
|
|
new BinarySession(
|
|
registry instanceof SessionProviderRouter
|
|
? registry
|
|
: SessionProviderRouter.selectable(registry, auxiliaryProviders),
|
|
new InvestigationRecords(),
|
|
);
|