fixturio
Version:
Fixtures
60 lines (57 loc) • 2.44 kB
TypeScript
// Generated by dts-bundle-generator v9.5.1
declare class FixtureSetupBucket {
private readonly fixtureResultCache;
fixtureResultOf<T extends FixtureInterface<unknown>>(type: Type<T>): FixtureResult<T>;
onFixtureResult<T extends FixtureInterface<unknown>>(type: Type<T>, value: unknown): void;
}
export type Type<T> = new (...args: any[]) => T;
export type UnPromisify<T> = T extends Promise<infer U> ? U : T;
export type FixtureResult<FixtureType extends FixtureInterface<unknown>> = UnPromisify<ReturnType<FixtureType["install"]>>;
export declare class FixtureBucket {
private readonly fixtureSetupBucket;
constructor(fixtureSetupBucket: FixtureSetupBucket);
fixtureResultOf<T extends FixtureInterface<unknown>>(type: Type<T>): FixtureResult<T>;
}
export type LoadAllResult = {
readonly fixtureBucket: FixtureBucket;
readonly loadedResults: readonly unknown[];
};
export type FixtureLoadFilters = {
readonly rootDir: string;
readonly filePatterns: readonly string[];
readonly tags?: readonly string[] | undefined;
};
export declare class FixtureContainer {
private readonly importer;
private readonly manager;
constructor(serviceContainer?: ServiceContainerInterface | undefined, importer?: FixtureImporterInterface | undefined);
installFixtures(options: FixtureLoadFilters): Promise<LoadAllResult>;
}
export interface FixtureImporterInterface {
import(rootDir: string | undefined, filePatterns: readonly string[]): Promise<readonly unknown[]>;
}
export interface InjectDependency<T = unknown> extends Function {
new (...args: readonly any[]): T;
}
export interface DependencyInjectable {
getInjectDependencies(): readonly InjectDependency[];
}
export interface ServiceContainerInterface {
getService<TInput = unknown, TResult = TInput>(typeOrToken: InjectDependency<TInput> | string): TResult;
}
export type FixtureDependency = FixtureConstructor;
export interface DependentFixtureInterface {
getFixtureDependencies(): readonly FixtureConstructor[];
}
export type SaveOnTagsMathFn = () => Promise<unknown>;
export type FixtureConstructor = new (...args: any[]) => FixtureInterface<unknown>;
export type FixtureInstallOptions = {
readonly saveOnTagMath: (fn: SaveOnTagsMathFn) => void;
};
export interface FixtureInterface<ResultType> {
install(fixtureBucket: FixtureBucket, options: FixtureInstallOptions): Promise<ResultType>;
}
export interface TaggableInterface {
getTags(): readonly string[];
}
export {};