UNPKG

fixturio

Version:
60 lines (57 loc) 2.44 kB
// 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 {};