@dbs-portal/tool-mock
Version:
API mocking toolkit using MSW for DBS Portal development workflows
67 lines • 2.63 kB
TypeScript
/**
* Base factory functions for creating mock data
*/
import type { MockDataFactory, MockListFactory, DataGeneratorOptions } from './types';
/**
* Create a data factory function
*/
export declare function createDataFactory<T>(template: (overrides?: Partial<T>) => T, options?: DataGeneratorOptions): MockDataFactory<T>;
/**
* Create a list factory function
*/
export declare function createListFactory<T>(itemFactory: MockDataFactory<T>, defaultCount?: number): MockListFactory<T>;
/**
* Create a typed factory with TypeScript support
*/
export declare function createTypedFactory<T>(template: (overrides?: Partial<T>) => T): MockDataFactory<T>;
/**
* Combine multiple factories into one
*/
export declare function combineFactories<T>(...factories: MockDataFactory<Partial<T>>[]): MockDataFactory<T>;
/**
* Create a factory that extends another factory
*/
export declare function extendFactory<T, U extends T>(baseFactory: MockDataFactory<T>, extension: (base: T, overrides?: Partial<U>) => U): MockDataFactory<U>;
/**
* Create a conditional factory
*/
export declare function conditionalFactory<T>(condition: () => boolean, trueFactory: MockDataFactory<T>, falseFactory: MockDataFactory<T>): MockDataFactory<T>;
/**
* Create a weighted factory (randomly selects from multiple factories)
*/
export declare function weightedFactory<T>(factories: Array<{
factory: MockDataFactory<T>;
weight: number;
}>): MockDataFactory<T>;
/**
* Create a sequence factory (cycles through values)
*/
export declare function sequenceFactory<T>(values: T[], startIndex?: number): () => T;
/**
* Create a unique factory (ensures unique values)
*/
export declare function uniqueFactory<T>(factory: MockDataFactory<T>, keyExtractor?: (item: T) => string | number, maxAttempts?: number): MockDataFactory<T>;
/**
* Create a cached factory (caches results)
*/
export declare function cachedFactory<T>(factory: MockDataFactory<T>, cacheSize?: number): MockDataFactory<T>;
/**
* Create a factory with validation
*/
export declare function validatedFactory<T>(factory: MockDataFactory<T>, validator: (item: T) => boolean, maxAttempts?: number): MockDataFactory<T>;
/**
* Create a factory that tracks generation statistics
*/
export declare function instrumentedFactory<T>(factory: MockDataFactory<T>, onGenerate?: (item: T, stats: {
count: number;
totalTime: number;
}) => void): MockDataFactory<T>;
/**
* Get seeded random number (if seed was set)
*/
export declare function getRandom(): number;
/**
* Reset random seed
*/
export declare function resetRandomSeed(): void;
//# sourceMappingURL=base.d.ts.map