@prismicio/mock
Version:
Generate mock Prismic documents, fields, Slices, and models for development and testing environments
1 lines • 2.36 kB
Source Map (JSON)
{"version":3,"file":"createAPIMockFactory.cjs","sources":["../../../src/api/createAPIMockFactory.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { createFaker, Faker } from \"../lib/createFaker\";\n\nimport { Seed, WithoutFakerConfig } from \"../types\";\n\nimport { query, MockRestApiQueryConfig } from \"./query\";\nimport { ref, MockRestApiRefConfig } from \"./ref\";\nimport { repository, MockRestApiRepositoryConfig } from \"./repository\";\nimport { tags, 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() {\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) {\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) {\n\t\treturn ref({ ...config, faker: this.faker });\n\t}\n\n\trepository(config?: WithoutFakerConfig<MockRestApiRepositoryConfig>) {\n\t\treturn repository({ ...config, faker: this.faker });\n\t}\n\n\ttags(config?: WithoutFakerConfig<MockRestApiTagsConfig>) {\n\t\treturn tags({ ...config, faker: this.faker });\n\t}\n}\n"],"names":["createFaker","query","ref","repository","tags"],"mappings":";;;;;;;;;;;;;AAWa,MAAA,uBAAuB,IAChC,SACgB;AACZ,SAAA,IAAI,eAAe,GAAG,IAAI;AAClC;MAUa,eAAc;AAAA,EAG1B,YAAY,QAA4B;AAFhC;AAGP,SAAK,QAAQ,WAAW,SAAS,OAAO,QAAQA,YAAA,YAAY,OAAO,IAAI;AAAA,EACxE;AAAA,EAEA,IAAI,OAAI;AACP,WAAO,KAAK,MAAM;AAAA,EACnB;AAAA,EAEA,MACC,QAA6D;AAE7D,WAAOC,MAAAA,MAAM,EAAE,GAAG,QAAQ,OAAO,KAAK,OAAO;AAAA,EAC9C;AAAA,EAEA,IACC,QAA8D;AAE9D,WAAOC,IAAAA,IAAI,EAAE,GAAG,QAAQ,OAAO,KAAK,OAAO;AAAA,EAC5C;AAAA,EAEA,WAAW,QAAwD;AAClE,WAAOC,WAAAA,WAAW,EAAE,GAAG,QAAQ,OAAO,KAAK,OAAO;AAAA,EACnD;AAAA,EAEA,KAAK,QAAkD;AACtD,WAAOC,KAAAA,KAAK,EAAE,GAAG,QAAQ,OAAO,KAAK,OAAO;AAAA,EAC7C;AACA;;;"}