import type { WidgetKey } from "@prismicio/types-internal/lib/common" import type { SharedSliceContent, WidgetContent, } from "@prismicio/types-internal/lib/content" import type { CustomType } from "@prismicio/types-internal/lib/customtypes" import type { SharedSlice } from "@prismicio/types-internal/lib/customtypes" import { DocumentMock, DocumentMockConfig, SharedSliceMock, SharedSliceMockConfig, } from "./generators" export type DocRenderer = ( customType: CustomType, sharedSlices: Partial>, mocks: Partial>, ) => unknown export type SliceRenderer = ( sliceModel: SharedSlice, mock: SharedSliceContent, ) => unknown export function generateDocumentMock( customType: CustomType, sharedSlices: Partial>, config?: DocumentMockConfig, ) { const genMocks = DocumentMock.generate(customType, sharedSlices, config) return (render?: DocRenderer | undefined) => { if (!render) return genMocks return render(customType, sharedSlices, genMocks) } } export function generateSliceMock( sliceModel: SharedSlice, config?: SharedSliceMockConfig, ) { const genMocks = SharedSliceMock.generate(sliceModel, config) return (render?: SliceRenderer | undefined) => { if (!render) return genMocks return render(sliceModel, genMocks) } } export * from "./errors" export * from "./generators" export * from "./renderers"