@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
30 lines (24 loc) • 1.14 kB
text/typescript
import type * as prismic from "@prismicio/client"
import type { MockValueStateConfig, MockValueConfig } from "../types"
export type MockIntegrationFieldValueConfig<
Model extends prismic.CustomTypeModelIntegrationField = prismic.CustomTypeModelIntegrationField,
Data extends Record<string, unknown> = Record<string, unknown>,
State extends prismic.FieldState = prismic.FieldState,
> = {
data?: Data
} & MockValueConfig<Model> &
MockValueStateConfig<State>
export type MockIntegrationFieldValue<
Data extends Record<string, unknown> = Record<string, unknown>,
State extends prismic.FieldState = prismic.FieldState,
> = prismic.IntegrationField<Data, State>
export const integration = <
Model extends prismic.CustomTypeModelIntegrationField = prismic.CustomTypeModelIntegrationField,
Data extends Record<string, unknown> = Record<string, unknown>,
State extends prismic.FieldState = "filled",
>(
config: MockIntegrationFieldValueConfig<Model, Data, State>,
): MockIntegrationFieldValue<Data, State> => {
const data = config.data ?? {}
return (config.state === "empty" ? null : data) as MockIntegrationFieldValue<Data, State>
}