@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 2.4 kB
Source Map (JSON)
{"version":3,"file":"createAPIMockFactory.cjs","names":["createFaker","query","ref","repository","tags"],"sources":["../../src/api/createAPIMockFactory.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\"\n\nimport { createFaker, type Faker } from \"../lib/createFaker\"\nimport type { Seed, WithoutFakerConfig } from \"../types\"\nimport { query, type MockRestApiQueryConfig } from \"./query\"\nimport { ref, type MockRestApiRefConfig } from \"./ref\"\nimport { repository, type MockRestApiRepositoryConfig } from \"./repository\"\nimport { tags, type MockRestApiTagsConfig } from \"./tags\"\n\nexport const createAPIMockFactory = (\n\t...args: ConstructorParameters<typeof APIMockFactory>\n): APIMockFactory => {\n\treturn new APIMockFactory(...args)\n}\n\ntype APIMockFactoryConfig =\n\t| {\n\t\t\tseed: Seed\n\t }\n\t| {\n\t\t\tfaker: Faker\n\t }\n\nexport class APIMockFactory {\n\tprivate faker: Faker\n\n\tconstructor(config: APIMockFactoryConfig) {\n\t\tthis.faker = \"faker\" in config ? config.faker : createFaker(config.seed)\n\t}\n\n\tget seed(): Seed {\n\t\treturn this.faker.seed\n\t}\n\n\tquery<Document extends prismic.PrismicDocument = prismic.PrismicDocument>(\n\t\tconfig?: WithoutFakerConfig<MockRestApiQueryConfig<Document>>,\n\t): prismic.Query<Document> {\n\t\treturn query({ ...config, faker: this.faker })\n\t}\n\n\tref<IsScheduled extends boolean = false>(\n\t\tconfig?: WithoutFakerConfig<MockRestApiRefConfig<IsScheduled>>,\n\t): ReturnType<typeof ref<IsScheduled>> {\n\t\treturn ref({ ...config, faker: this.faker })\n\t}\n\n\trepository(config?: WithoutFakerConfig<MockRestApiRepositoryConfig>): prismic.Repository {\n\t\treturn repository({ ...config, faker: this.faker })\n\t}\n\n\ttags(config?: WithoutFakerConfig<MockRestApiTagsConfig>): prismic.Tags {\n\t\treturn tags({ ...config, faker: this.faker })\n\t}\n}\n"],"mappings":";;;;;;AASA,MAAa,wBACZ,GAAG,SACiB;AACpB,QAAO,IAAI,eAAe,GAAG,KAAK;;AAWnC,IAAa,iBAAb,MAA4B;CAC3B;CAEA,YAAY,QAA8B;AACzC,OAAK,QAAQ,WAAW,SAAS,OAAO,QAAQA,oBAAAA,YAAY,OAAO,KAAK;;CAGzE,IAAI,OAAa;AAChB,SAAO,KAAK,MAAM;;CAGnB,MACC,QAC0B;AAC1B,SAAOC,cAAAA,MAAM;GAAE,GAAG;GAAQ,OAAO,KAAK;GAAO,CAAC;;CAG/C,IACC,QACsC;AACtC,SAAOC,YAAAA,IAAI;GAAE,GAAG;GAAQ,OAAO,KAAK;GAAO,CAAC;;CAG7C,WAAW,QAA8E;AACxF,SAAOC,mBAAAA,WAAW;GAAE,GAAG;GAAQ,OAAO,KAAK;GAAO,CAAC;;CAGpD,KAAK,QAAkE;AACtE,SAAOC,aAAAA,KAAK;GAAE,GAAG;GAAQ,OAAO,KAAK;GAAO,CAAC"}