UNPKG

@prismicio/mock

Version:

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

1 lines 1.73 kB
{"version":3,"file":"ref.cjs","names":["createFaker","capitalCase","timestamp"],"sources":["../../src/api/ref.ts"],"sourcesContent":["import type * as prismic from \"@prismicio/client\"\n\nimport { capitalCase } from \"../lib/changeCase\"\nimport { createFaker } from \"../lib/createFaker\"\nimport type { 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 ? { scheduledAt: string } : { 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 ? \"Master\" : 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"],"mappings":";;;;AAkBA,MAAa,OACZ,WACsC;CACtC,MAAM,QAAQ,OAAO,SAASA,oBAAAA,YAAY,OAAO,KAAK;CAEtD,MAAM,QAAqB;EAC1B,IAAI,MAAM,KAAK,GAAG;EAClB,KAAK,MAAM,KAAK,GAAG;EACnB,aAAa,OAAO,eAAe;EACnC,OAAO,OAAO,cAAc,WAAWC,mBAAAA,YAAY,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;EAClF;AAED,KAAI,OAAO,YAEV,OAAM,cAAcC,kBAAAA,UAAU,EAAE,OAAO,CAAC;AAGzC,QAAO"}