@suites/unit
Version:
21 lines (20 loc) • 808 B
TypeScript
/**
* Shared package resolver with IoC composition.
* Module-specific strategies are injected via constructor.
* @module
*/
import type { DependencyInjectionAdapter } from '@suites/types.di';
import type { DoublesAdapter } from '@suites/types.doubles';
/**
* Strategy function for checking if a package is available
*/
export type PackageResolverStrategy = (path: string) => boolean;
/**
* Package resolver that uses an injected strategy to check package availability
*/
export declare class PackageResolver<TAdapter extends DependencyInjectionAdapter | DoublesAdapter> {
private readonly adapters;
private readonly resolverStrategy;
constructor(adapters: Record<string, string>, resolverStrategy: PackageResolverStrategy);
resolveCorrespondingAdapter(): Promise<TAdapter | never>;
}