UNPKG

@prismicio/mock

Version:

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

1 lines 12.5 kB
{"version":3,"file":"createValueMockFactory.cjs","sources":["../../../src/value/createValueMockFactory.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker, Faker } from \"../lib/createFaker\";\n\nimport { Seed, WithoutFakerConfig } from \"../types\";\n\nimport { boolean, MockBooleanValueConfig } from \"./boolean\";\nimport { color, MockColorValueConfig } from \"./color\";\nimport {\n\tcontentRelationship,\n\tMockContentRelationshipValueConfig,\n} from \"./contentRelationship\";\nimport { customType, MockCustomTypeValueConfig } from \"./customType\";\nimport { date, MockDateValueConfig } from \"./date\";\nimport { document, MockDocumentValueConfig } from \"./document\";\nimport { embed, MockEmbedValueConfig } from \"./embed\";\nimport { geoPoint, MockGeoPointValueConfig } from \"./geoPoint\";\nimport { group, MockGroupValueConfig } from \"./group\";\nimport { image, MockImageValue, MockImageValueConfig } from \"./image\";\nimport { integration, MockIntegrationFieldValueConfig } from \"./integration\";\nimport { keyText, MockKeyTextValueConfig } from \"./keyText\";\nimport { link, MockLinkValueConfig } from \"./link\";\nimport { linkToMedia, MockLinkToMediaValueConfig } from \"./linkToMedia\";\nimport { number, MockNumberValueConfig } from \"./number\";\nimport { richText, MockRichTextValueConfig } from \"./richText\";\nimport { select, MockSelectValueConfig } from \"./select\";\nimport { sharedSlice, MockSharedSliceValueConfig } from \"./sharedSlice\";\nimport {\n\tsharedSliceVariation,\n\tMockSharedSliceVariationValueConfig,\n} from \"./sharedSliceVariation\";\nimport { slice, MockSliceValueConfig } from \"./slice\";\nimport { sliceZone, MockSliceZoneValueConfig } from \"./sliceZone\";\nimport { timestamp, MockTimestampValueConfig } from \"./timestamp\";\nimport { title, MockTitleValueConfig } from \"./title\";\nimport { uid, MockUIDValueConfig } from \"./uid\";\nimport { MockTableValueConfig, table } from \"./table\";\n\nexport const createValueMockFactory = (\n\t...args: ConstructorParameters<typeof ValueMockFactory>\n): ValueMockFactory => {\n\treturn new ValueMockFactory(...args);\n};\n\ntype ValueMockFactoryConfig =\n\t| {\n\t\t\tseed: Seed;\n\t }\n\t| {\n\t\t\tfaker: Faker;\n\t };\n\nexport class ValueMockFactory {\n\tprivate faker: Faker;\n\n\tconstructor(config: ValueMockFactoryConfig) {\n\t\tthis.faker = \"faker\" in config ? config.faker : createFaker(config.seed);\n\t}\n\n\tget seed() {\n\t\treturn this.faker.seed;\n\t}\n\n\tboolean<Model extends prismic.CustomTypeModelBooleanField>(\n\t\tconfig?: WithoutFakerConfig<MockBooleanValueConfig<Model>>,\n\t) {\n\t\treturn boolean({ ...config, faker: this.faker });\n\t}\n\n\tcolor<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelColorField = prismic.CustomTypeModelColorField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockColorValueConfig<Model, State>>) {\n\t\treturn color({ ...config, faker: this.faker });\n\t}\n\n\tcontentRelationship<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(\n\t\tconfig?: WithoutFakerConfig<\n\t\t\tMockContentRelationshipValueConfig<Model, State>\n\t\t>,\n\t) {\n\t\treturn contentRelationship({ ...config, faker: this.faker });\n\t}\n\n\tcustomType<Model extends prismic.CustomTypeModel = prismic.CustomTypeModel>(\n\t\tconfig?: WithoutFakerConfig<MockCustomTypeValueConfig<Model>>,\n\t) {\n\t\treturn customType({ ...config, faker: this.faker });\n\t}\n\n\tdate<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelDateField = prismic.CustomTypeModelDateField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockDateValueConfig<Model, State>>) {\n\t\treturn date({ ...config, faker: this.faker });\n\t}\n\n\tdocument<Model extends prismic.CustomTypeModel = prismic.CustomTypeModel>(\n\t\tconfig?: WithoutFakerConfig<MockDocumentValueConfig<Model>>,\n\t) {\n\t\treturn document({ ...config, faker: this.faker });\n\t}\n\n\tembed<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelEmbedField = prismic.CustomTypeModelEmbedField,\n\t\tData extends prismic.AnyOEmbed = prismic.AnyOEmbed,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockEmbedValueConfig<Model, Data, State>>) {\n\t\treturn embed({ ...config, faker: this.faker });\n\t}\n\n\tgeoPoint<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelGeoPointField = prismic.CustomTypeModelGeoPointField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockGeoPointValueConfig<Model, State>>) {\n\t\treturn geoPoint({ ...config, faker: this.faker });\n\t}\n\n\tgroup<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelGroupField = prismic.CustomTypeModelGroupField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockGroupValueConfig<Model, State>>) {\n\t\treturn group({ ...config, faker: this.faker });\n\t}\n\n\timage<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelImageField = prismic.CustomTypeModelImageField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(\n\t\tconfig?: WithoutFakerConfig<MockImageValueConfig<Model, State>>,\n\t): MockImageValue<Model, State> {\n\t\treturn image({ ...config, faker: this.faker });\n\t}\n\n\tintegration<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelIntegrationField = prismic.CustomTypeModelIntegrationField,\n\t\tData extends Record<string, unknown> = Record<string, unknown>,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(\n\t\tconfig?: WithoutFakerConfig<\n\t\t\tMockIntegrationFieldValueConfig<Model, Data, State>\n\t\t>,\n\t) {\n\t\treturn integration({ ...config, faker: this.faker });\n\t}\n\n\tkeyText<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelKeyTextField = prismic.CustomTypeModelKeyTextField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockKeyTextValueConfig<Model, State>>) {\n\t\treturn keyText({ ...config, faker: this.faker });\n\t}\n\n\tlink<\n\t\tLinkType extends\n\t\t\t(typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType],\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockLinkValueConfig<LinkType, Model, State>>) {\n\t\treturn link({ ...config, faker: this.faker });\n\t}\n\n\tlinkToMedia<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockLinkToMediaValueConfig<Model, State>>) {\n\t\treturn linkToMedia({ ...config, faker: this.faker });\n\t}\n\n\tnumber<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelNumberField = prismic.CustomTypeModelNumberField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockNumberValueConfig<Model, State>>) {\n\t\treturn number({ ...config, faker: this.faker });\n\t}\n\n\trichText<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelRichTextField = prismic.CustomTypeModelRichTextField,\n\t>(config?: WithoutFakerConfig<MockRichTextValueConfig<Model>>) {\n\t\treturn richText({ ...config, faker: this.faker });\n\t}\n\n\tselect<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelSelectField = prismic.CustomTypeModelSelectField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockSelectValueConfig<Model, State>>) {\n\t\treturn select({ ...config, faker: this.faker });\n\t}\n\n\tsharedSlice<\n\t\tModel extends prismic.SharedSliceModel = prismic.SharedSliceModel,\n\t>(config?: WithoutFakerConfig<MockSharedSliceValueConfig<Model>>) {\n\t\treturn sharedSlice({ ...config, faker: this.faker });\n\t}\n\n\tsharedSliceVariation<\n\t\tModel extends\n\t\t\tprismic.SharedSliceModelVariation = prismic.SharedSliceModelVariation,\n\t>(config?: WithoutFakerConfig<MockSharedSliceVariationValueConfig<Model>>) {\n\t\treturn sharedSliceVariation({ ...config, faker: this.faker });\n\t}\n\n\tslice<\n\t\tModel extends prismic.CustomTypeModelSlice = prismic.CustomTypeModelSlice,\n\t>(config?: WithoutFakerConfig<MockSliceValueConfig<Model>>) {\n\t\treturn slice({ ...config, faker: this.faker });\n\t}\n\n\tsliceZone<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelSliceZoneField = prismic.CustomTypeModelSliceZoneField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockSliceZoneValueConfig<Model, State>>) {\n\t\treturn sliceZone({ ...config, faker: this.faker });\n\t}\n\n\ttable<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField,\n\t>(config?: WithoutFakerConfig<MockTableValueConfig<Model>>) {\n\t\treturn table({ ...config, faker: this.faker });\n\t}\n\n\ttimestamp<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelTimestampField = prismic.CustomTypeModelTimestampField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockTimestampValueConfig<Model, State>>) {\n\t\treturn timestamp({ ...config, faker: this.faker });\n\t}\n\n\ttitle<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelTitleField = prismic.CustomTypeModelTitleField,\n\t\tState extends prismic.FieldState = \"filled\",\n\t>(config?: WithoutFakerConfig<MockTitleValueConfig<Model, State>>) {\n\t\treturn title({ ...config, faker: this.faker });\n\t}\n\n\tuid<\n\t\tModel extends\n\t\t\tprismic.CustomTypeModelUIDField = prismic.CustomTypeModelUIDField,\n\t>(config?: WithoutFakerConfig<MockUIDValueConfig<Model>>) {\n\t\treturn uid({ ...config, faker: this.faker });\n\t}\n}\n"],"names":["createFaker","boolean","color","contentRelationship","customType","date","document","embed","geoPoint","group","image","integration","keyText","link","linkToMedia","number","richText","select","sharedSlice","sharedSliceVariation","slice","sliceZone","table","timestamp","title","uid"],"mappings":"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"}