{"version":3,"file":"data.mjs","sources":["../../../../src/services/document-service/transform/data.ts"],"sourcesContent":["import { createIdMap } from './id-map';\nimport { extractDataIds as extractDataRelationIds } from './relations/extract/data-ids';\nimport { transformDataIdsVisitor as transformRelationDataIds } from './relations/transform/data-ids';\nimport { setDefaultLocaleToRelations } from './relations/transform/default-locale';\n\ntype TransformDataOptions = {\n  useRequestCache?: boolean;\n};\n\nconst getRequestState = () =>\n  strapi.requestContext?.get?.()?.state as\n    | { __documentServiceIdMap?: ReturnType<typeof createIdMap> }\n    | undefined;\n\nconst clearTransformDataRequestCache = () => {\n  getRequestState()?.__documentServiceIdMap?.clear();\n};\n\n/**\n * Transforms input data, containing relation document ids, to entity ids.\n */\nexport const transformData = async (data: any, opts: any) => {\n  const shouldUseRequestCache = (opts as TransformDataOptions).useRequestCache !== false;\n\n  // Store cache on request state so repeated calls in one request can reuse it\n  const requestState = shouldUseRequestCache ? getRequestState() : undefined;\n\n  if (requestState && !requestState.__documentServiceIdMap) {\n    requestState.__documentServiceIdMap = createIdMap({ strapi });\n  }\n\n  const idMap = requestState?.__documentServiceIdMap ?? createIdMap({ strapi });\n\n  // Assign default locales\n  const transformedData = await setDefaultLocaleToRelations(data, opts.uid);\n\n  // Extract any relation ids from the input\n  await extractDataRelationIds(idMap, transformedData, opts);\n\n  // Load any relation the extract methods found\n  await idMap.load();\n\n  // Transform any relation ids to entity ids\n  return transformRelationDataIds(idMap, transformedData, opts);\n};\n\nexport { clearTransformDataRequestCache };\n"],"names":["getRequestState","strapi","requestContext","get","state","clearTransformDataRequestCache","__documentServiceIdMap","clear","transformData","data","opts","shouldUseRequestCache","useRequestCache","requestState","undefined","createIdMap","idMap","transformedData","setDefaultLocaleToRelations","uid","extractDataRelationIds","load","transformRelationDataIds"],"mappings":";;;;;AASA,MAAMA,eAAAA,GAAkB,IACtBC,MAAAA,CAAOC,cAAc,EAAEC,GAAAA,IAAAA,EAASC,KAAAA;AAIlC,MAAMC,8BAAAA,GAAiC,IAAA;AACrCL,IAAAA,eAAAA,EAAAA,EAAmBM,sBAAAA,EAAwBC,KAAAA,EAAAA;AAC7C;AAEA;;AAEC,IACM,MAAMC,aAAAA,GAAgB,OAAOC,IAAAA,EAAWC,IAAAA,GAAAA;AAC7C,IAAA,MAAMC,qBAAAA,GAAyBD,IAAAA,CAA8BE,eAAe,KAAK,KAAA;;IAGjF,MAAMC,YAAAA,GAAeF,wBAAwBX,eAAAA,EAAAA,GAAoBc,SAAAA;AAEjE,IAAA,IAAID,YAAAA,IAAgB,CAACA,YAAAA,CAAaP,sBAAsB,EAAE;QACxDO,YAAAA,CAAaP,sBAAsB,GAAGS,WAAAA,CAAY;AAAEd,YAAAA;AAAO,SAAA,CAAA;AAC7D,IAAA;IAEA,MAAMe,KAAAA,GAAQH,YAAAA,EAAcP,sBAAAA,IAA0BS,WAAAA,CAAY;AAAEd,QAAAA;AAAO,KAAA,CAAA;;AAG3E,IAAA,MAAMgB,eAAAA,GAAkB,MAAMC,2BAAAA,CAA4BT,IAAAA,EAAMC,KAAKS,GAAG,CAAA;;IAGxE,MAAMC,cAAAA,CAAuBJ,OAAOC,eAAAA,EAAiBP,IAAAA,CAAAA;;AAGrD,IAAA,MAAMM,MAAMK,IAAI,EAAA;;IAGhB,OAAOC,uBAAAA,CAAyBN,OAAOC,eAAAA,EAAiBP,IAAAA,CAAAA;AAC1D;;;;"}