@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
53 lines (43 loc) • 1.08 kB
text/typescript
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;
}
}