@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 10 kB
Source Map (JSON)
{"version":3,"file":"createModelMockFactory.cjs","sources":["../../../src/model/createModelMockFactory.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker, Faker } from \"../lib/createFaker\";\n\nimport {\n\tGroupFieldModelMap,\n\tNestedGroupFieldModelMap,\n\tSeed,\n\tSlicePrimaryFieldModelMap,\n\tWithoutFakerConfig,\n} from \"../types\";\n\nimport { boolean, MockBooleanModelConfig } from \"./boolean\";\nimport {\n\tbuildMockGroupFieldMap,\n\tBuildMockGroupFieldMapConfig,\n} from \"./buildMockGroupFieldMap\";\nimport { color, MockColorModelConfig } from \"./color\";\nimport {\n\tcontentRelationship,\n\tMockContentRelationshipModelConfig,\n} from \"./contentRelationship\";\nimport { customType, MockCustomTypeModelConfig } from \"./customType\";\nimport { date, MockDateModelConfig } from \"./date\";\nimport { embed, MockEmbedModelConfig } from \"./embed\";\nimport { geoPoint, MockGeoPointModelConfig } from \"./geoPoint\";\nimport { group, MockGroupModelConfig } from \"./group\";\nimport { image, MockImageModelConfig } from \"./image\";\nimport { integration, MockIntegrationFieldModelConfig } from \"./integration\";\nimport { keyText, MockKeyTextModelConfig } from \"./keyText\";\nimport { link, MockLinkModelConfig } from \"./link\";\nimport { linkToMedia, MockLinkToMediaModelConfig } from \"./linkToMedia\";\nimport { number, MockNumberModelConfig } from \"./number\";\nimport { richText, MockRichTextModelConfig } from \"./richText\";\nimport { select, MockSelectModelConfig } from \"./select\";\nimport { sharedSlice, MockSharedSliceModelConfig } from \"./sharedSlice\";\nimport { sharedSliceChoice } from \"./sharedSliceChoice\";\nimport {\n\tsharedSliceVariation,\n\tMockSharedSliceVariationModelConfig,\n} from \"./sharedSliceVariation\";\nimport { slice, MockSliceModelConfig } from \"./slice\";\nimport { sliceZone, MockSliceZoneModelConfig } from \"./sliceZone\";\nimport { timestamp, MockTimestampModelConfig } from \"./timestamp\";\nimport { title, MockTitleModelConfig } from \"./title\";\nimport { uid, MockUIDModelConfig } from \"./uid\";\nimport { MockTableModelConfig, table } from \"./table\";\n\nexport const createModelMockFactory = (\n\t...args: ConstructorParameters<typeof ModelMockFactory>\n): ModelMockFactory => {\n\treturn new ModelMockFactory(...args);\n};\n\ntype ModelMockFactoryConfig =\n\t| {\n\t\t\tseed: Seed;\n\t }\n\t| {\n\t\t\tfaker: Faker;\n\t };\n\nexport class ModelMockFactory {\n\tprivate faker: Faker;\n\n\tconstructor(config: ModelMockFactoryConfig) {\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\tbuildMockGroupFieldMap(\n\t\tconfig?: WithoutFakerConfig<BuildMockGroupFieldMapConfig>,\n\t) {\n\t\treturn buildMockGroupFieldMap({ ...config, faker: this.faker });\n\t}\n\n\tboolean(config?: WithoutFakerConfig<MockBooleanModelConfig>) {\n\t\treturn boolean({ ...config, faker: this.faker });\n\t}\n\n\tcolor(config?: WithoutFakerConfig<MockColorModelConfig>) {\n\t\treturn color({ ...config, faker: this.faker });\n\t}\n\n\tcontentRelationship<CustomTypeIDs extends string, Tags extends string>(\n\t\tconfig?: WithoutFakerConfig<\n\t\t\tMockContentRelationshipModelConfig<CustomTypeIDs, Tags>\n\t\t>,\n\t) {\n\t\treturn contentRelationship({ ...config, faker: this.faker });\n\t}\n\n\tcustomType<\n\t\tDefinition extends\n\t\t\t| prismic.CustomTypeModelTab\n\t\t\t| prismic.CustomTypeModelDefinition,\n\t>(config?: WithoutFakerConfig<MockCustomTypeModelConfig<Definition>>) {\n\t\treturn customType({ ...config, faker: this.faker });\n\t}\n\n\tdate(config?: WithoutFakerConfig<MockDateModelConfig>) {\n\t\treturn date({ ...config, faker: this.faker });\n\t}\n\n\tembed(config?: WithoutFakerConfig<MockEmbedModelConfig>) {\n\t\treturn embed({ ...config, faker: this.faker });\n\t}\n\n\tgeoPoint(config?: WithoutFakerConfig<MockGeoPointModelConfig>) {\n\t\treturn geoPoint({ ...config, faker: this.faker });\n\t}\n\n\tgroup<Fields extends GroupFieldModelMap>(\n\t\tconfig?: WithoutFakerConfig<MockGroupModelConfig<Fields>>,\n\t) {\n\t\treturn group({ ...config, faker: this.faker });\n\t}\n\n\timage<ThumbnailNames extends string = string>(\n\t\tconfig?: WithoutFakerConfig<MockImageModelConfig<ThumbnailNames>>,\n\t) {\n\t\treturn image({ ...config, faker: this.faker });\n\t}\n\n\tintegration(config?: WithoutFakerConfig<MockIntegrationFieldModelConfig>) {\n\t\treturn integration({ ...config, faker: this.faker });\n\t}\n\n\tkeyText(config?: WithoutFakerConfig<MockKeyTextModelConfig>) {\n\t\treturn keyText({ ...config, faker: this.faker });\n\t}\n\n\tlink<AllowTargetBlank extends boolean = boolean>(\n\t\tconfig?: WithoutFakerConfig<MockLinkModelConfig<AllowTargetBlank>>,\n\t) {\n\t\treturn link({ ...config, faker: this.faker });\n\t}\n\n\tlinkToMedia(config?: WithoutFakerConfig<MockLinkToMediaModelConfig>) {\n\t\treturn linkToMedia({ ...config, faker: this.faker });\n\t}\n\n\tnumber(config?: WithoutFakerConfig<MockNumberModelConfig>) {\n\t\treturn number({ ...config, faker: this.faker });\n\t}\n\n\trichText<WithMultipleBlocks extends boolean = boolean>(\n\t\tconfig?: WithoutFakerConfig<MockRichTextModelConfig<WithMultipleBlocks>>,\n\t) {\n\t\treturn richText({ ...config, faker: this.faker });\n\t}\n\n\tselect<Option extends string, DefaultOption extends Option>(\n\t\tconfig?: WithoutFakerConfig<MockSelectModelConfig<Option, DefaultOption>>,\n\t) {\n\t\treturn select({ ...config, faker: this.faker });\n\t}\n\n\tsharedSlice<Variation extends prismic.SharedSliceModelVariation>(\n\t\tconfig?: WithoutFakerConfig<MockSharedSliceModelConfig<Variation>>,\n\t) {\n\t\treturn sharedSlice({ ...config, faker: this.faker });\n\t}\n\n\tsharedSliceChoice() {\n\t\treturn sharedSliceChoice();\n\t}\n\n\tsharedSliceVariation<\n\t\tID extends string,\n\t\tPrimaryFields extends SlicePrimaryFieldModelMap,\n\t\tItemsFields extends NestedGroupFieldModelMap,\n\t>(\n\t\tconfig?: WithoutFakerConfig<\n\t\t\tMockSharedSliceVariationModelConfig<ID, PrimaryFields, ItemsFields>\n\t\t>,\n\t) {\n\t\treturn sharedSliceVariation({ ...config, faker: this.faker });\n\t}\n\n\tslice<\n\t\tNonRepeatFields extends NestedGroupFieldModelMap,\n\t\tRepeatFields extends NestedGroupFieldModelMap,\n\t>(\n\t\tconfig?: WithoutFakerConfig<\n\t\t\tMockSliceModelConfig<NonRepeatFields, RepeatFields>\n\t\t>,\n\t) {\n\t\treturn slice({ ...config, faker: this.faker });\n\t}\n\n\tsliceZone<\n\t\tSlices extends Record<\n\t\t\tstring,\n\t\t\tprismic.CustomTypeModelSlice | prismic.CustomTypeModelSharedSlice\n\t\t>,\n\t>(config?: WithoutFakerConfig<MockSliceZoneModelConfig<Slices>>) {\n\t\treturn sliceZone({ ...config, faker: this.faker });\n\t}\n\n\ttable(config?: WithoutFakerConfig<MockTableModelConfig>) {\n\t\treturn table({ ...config, faker: this.faker });\n\t}\n\n\ttimestamp(config?: WithoutFakerConfig<MockTimestampModelConfig>) {\n\t\treturn timestamp({ ...config, faker: this.faker });\n\t}\n\n\ttitle(config?: WithoutFakerConfig<MockTitleModelConfig>) {\n\t\treturn title({ ...config, faker: this.faker });\n\t}\n\n\tuid(config?: WithoutFakerConfig<MockUIDModelConfig>) {\n\t\treturn uid({ ...config, faker: this.faker });\n\t}\n}\n"],"names":["createFaker","buildMockGroupFieldMap","boolean","color","contentRelationship","customType","date","embed","geoPoint","group","image","integration","keyText","link","linkToMedia","number","richText","select","sharedSlice","sharedSliceChoice","sharedSliceVariation","slice","sliceZone","table","timestamp","title","uid"],"mappings":"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"}