{"version":3,"file":"customType.cjs","names":["createFaker","prismic","buildAlternativeLanguage","snakeCase","generateTags","timestamp","valueForModelMap"],"sources":["../../src/value/customType.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\"\n\nimport { buildAlternativeLanguage } from \"../lib/buildAlternativeLanguage\"\nimport { snakeCase } from \"../lib/changeCase\"\nimport { createFaker } from \"../lib/createFaker\"\nimport { generateTags } from \"../lib/generateTags\"\nimport { valueForModelMap, type ValueForModelMapConfigs } from \"../lib/valueForModelMap\"\nimport * as modelGen from \"../model\"\nimport type { MockValueConfig, ModelValue } from \"../types\"\nimport { timestamp } from \"./timestamp\"\n\nexport type MockCustomTypeValueConfig<\n\tModel extends prismic.CustomTypeModel = prismic.CustomTypeModel,\n> = {\n\twithURL?: boolean\n\talternateLanguages?: prismic.PrismicDocument[]\n\tconfigs?: ValueForModelMapConfigs\n} & MockValueConfig<Model>\n\nexport const customType = <Model extends prismic.CustomTypeModel = prismic.CustomTypeModel>(\n\tconfig: MockCustomTypeValueConfig<Model>,\n): ModelValue<Model> => {\n\tconst faker = config.faker || createFaker(config.seed)\n\n\tconst model = config.model || modelGen.customType({ faker })\n\n\tconst fieldModelsMap = Object.assign(\n\t\t{},\n\t\t...Object.values(model.json),\n\t) as prismic.CustomTypeModelTab\n\n\tconst dataFieldModelsMap: prismic.CustomTypeModelTab = {}\n\tfor (const key in fieldModelsMap) {\n\t\tconst fieldModel = fieldModelsMap[key]\n\n\t\t// UID fields must be filtered out since they are not represented in\n\t\t// the document's `data` field.\n\t\tif (fieldModel.type !== prismic.CustomTypeModelFieldType.UID) {\n\t\t\tdataFieldModelsMap[key] = fieldModel\n\t\t}\n\t}\n\n\tconst hasUID = Object.values(fieldModelsMap).some(\n\t\t(fieldModel) => fieldModel.type === prismic.CustomTypeModelFieldType.UID,\n\t)\n\n\tconst withURL = config.withURL ?? true\n\n\tconst alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) =>\n\t\tbuildAlternativeLanguage({\n\t\t\tdocument: alternateLanguageDocument,\n\t\t}),\n\t)\n\n\treturn {\n\t\ttype: model.id,\n\t\tid: faker.hash(7),\n\t\tuid: hasUID ? snakeCase(faker.words(faker.range(1, 3))) : null,\n\t\turl: withURL ? faker.url() : null,\n\t\thref: faker.url(),\n\t\tlang: faker.word(),\n\t\ttags: generateTags({ faker }),\n\t\tslugs: [] as prismic.PrismicDocument[\"slugs\"],\n\t\tlinked_documents: [] as prismic.PrismicDocument[\"linked_documents\"],\n\t\talternate_languages: alternateLanguages,\n\t\tfirst_publication_date: timestamp({ faker }),\n\t\tlast_publication_date: timestamp({ faker }),\n\t\tdata: valueForModelMap({\n\t\t\tfaker,\n\t\t\tmap: dataFieldModelsMap,\n\t\t\tconfigs: config.configs,\n\t\t}),\n\t} as ModelValue<Model>\n}\n"],"mappings":";;;;;;;;;;;AAmBA,MAAa,cACZ,WACuB;CACvB,MAAM,QAAQ,OAAO,SAASA,oBAAAA,YAAY,OAAO,KAAK;CAEtD,MAAM,QAAQ,OAAO,SAAA,mBAAA,WAA6B,EAAE,OAAO,CAAC;CAE5D,MAAM,iBAAiB,OAAO,OAC7B,EAAE,EACF,GAAG,OAAO,OAAO,MAAM,KAAK,CAC5B;CAED,MAAM,qBAAiD,EAAE;AACzD,MAAK,MAAM,OAAO,gBAAgB;EACjC,MAAM,aAAa,eAAe;AAIlC,MAAI,WAAW,SAASC,kBAAQ,yBAAyB,IACxD,oBAAmB,OAAO;;CAI5B,MAAM,SAAS,OAAO,OAAO,eAAe,CAAC,MAC3C,eAAe,WAAW,SAASA,kBAAQ,yBAAyB,IACrE;CAED,MAAM,UAAU,OAAO,WAAW;CAElC,MAAM,sBAAsB,OAAO,sBAAsB,EAAE,EAAE,KAAK,8BACjEC,iCAAAA,yBAAyB,EACxB,UAAU,2BACV,CAAC,CACF;AAED,QAAO;EACN,MAAM,MAAM;EACZ,IAAI,MAAM,KAAK,EAAE;EACjB,KAAK,SAASC,mBAAAA,UAAU,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG;EAC1D,KAAK,UAAU,MAAM,KAAK,GAAG;EAC7B,MAAM,MAAM,KAAK;EACjB,MAAM,MAAM,MAAM;EAClB,MAAMC,qBAAAA,aAAa,EAAE,OAAO,CAAC;EAC7B,OAAO,EAAE;EACT,kBAAkB,EAAE;EACpB,qBAAqB;EACrB,wBAAwBC,kBAAAA,UAAU,EAAE,OAAO,CAAC;EAC5C,uBAAuBA,kBAAAA,UAAU,EAAE,OAAO,CAAC;EAC3C,MAAMC,yBAAAA,iBAAiB;GACtB;GACA,KAAK;GACL,SAAS,OAAO;GAChB,CAAC;EACF"}