UNPKG

@prismicio/mock

Version:

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

1 lines 1.81 kB
{"version":3,"file":"ref.cjs","sources":["../../../src/api/ref.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { capitalCase } from \"../lib/changeCase\";\nimport { createFaker } from \"../lib/createFaker\";\nimport { MockRestApiConfig } from \"../types\";\nimport { timestamp } from \"../value\";\n\nexport type MockRestApiRefConfig<IsScheduled extends boolean = false> = {\n\tisMasterRef?: boolean;\n\tisScheduled?: IsScheduled;\n} & MockRestApiConfig;\n\nexport type MockRestApiRefValue<IsScheduled extends boolean = false> = Omit<\n\tprismic.Ref,\n\t\"scheduledAt\"\n> &\n\t(IsScheduled extends true\n\t\t? { scheduledAt: string }\n\t\t: { scheduledAt?: never });\n\nexport const ref = <IsScheduled extends boolean = false>(\n\tconfig: MockRestApiRefConfig<IsScheduled>,\n): MockRestApiRefValue<IsScheduled> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\tconst value: prismic.Ref = {\n\t\tid: faker.hash(16),\n\t\tref: faker.hash(16),\n\t\tisMasterRef: config.isMasterRef ?? false,\n\t\tlabel: config.isMasterRef\n\t\t\t? \"Master\"\n\t\t\t: capitalCase(faker.words(faker.range(1, 3))),\n\t};\n\n\tif (config.isScheduled) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tvalue.scheduledAt = timestamp({ faker })!;\n\t}\n\n\treturn value as MockRestApiRefValue<IsScheduled>;\n};\n"],"names":["createFaker","capitalCase","timestamp"],"mappings":";;;;;AAoBa,MAAA,MAAM,CAClB,WACqC;AACrC,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,QAAM,QAAqB;AAAA,IAC1B,IAAI,MAAM,KAAK,EAAE;AAAA,IACjB,KAAK,MAAM,KAAK,EAAE;AAAA,IAClB,aAAa,OAAO,eAAe;AAAA,IACnC,OAAO,OAAO,cACX,WACAC,WAAAA,YAAY,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;AAAA,EAAA;AAG9C,MAAI,OAAO,aAAa;AAEvB,UAAM,cAAcC,UAAAA,UAAU,EAAE,MAAO,CAAA;AAAA,EACxC;AAEO,SAAA;AACR;;"}