UNPKG

@prismicio/mock

Version:

Generate mock Prismic documents, fields, Slices, and models for development and testing environments

53 lines (43 loc) 1.08 kB
import { createFaker, Faker } from "./lib/createFaker"; import { Seed } from "./types"; import { createModelMockFactory, ModelMockFactory, } from "./model/createModelMockFactory"; import { createValueMockFactory, ValueMockFactory, } from "./value/createValueMockFactory"; import { createAPIMockFactory, APIMockFactory, } from "./api/createAPIMockFactory"; export const createMockFactory = ( ...args: ConstructorParameters<typeof MockFactory> ): MockFactory => { return new MockFactory(...args); }; type PrismicMockConfig = | { seed: Seed; faker?: never; } | { faker: Faker; seed?: never; }; export class MockFactory { private faker: Faker; api: APIMockFactory; model: ModelMockFactory; value: ValueMockFactory; constructor(config: PrismicMockConfig) { this.faker = config.faker || createFaker(config.seed); this.api = createAPIMockFactory({ faker: this.faker }); this.model = createModelMockFactory({ faker: this.faker }); this.value = createValueMockFactory({ faker: this.faker }); } get seed() { return this.faker.seed; } }