{"version":3,"file":"populate.mjs","sources":["../../../../src/services/document-service/transform/populate.ts"],"sourcesContent":["import { traverse } from '@strapi/utils';\nimport type { UID } from '@strapi/types';\n\nimport { type Data } from './types';\nimport { transformFields } from './fields';\n\nexport const transformPopulate = async (data: Data, opts: { uid: UID.Schema }) => {\n  return traverse.traverseQueryPopulate(\n    async ({ attribute, key, value }, { set }) => {\n      if (!value || typeof value !== 'object' || attribute?.type !== 'relation') {\n        return;\n      }\n\n      /*\n        If the attribute is a relation\n        Look for fields in the value\n        and apply the relevant transformation to these objects\n      */\n      if ('fields' in value && Array.isArray(value.fields)) {\n        value.fields = transformFields(value.fields);\n      }\n\n      set(key, value);\n    },\n    { schema: strapi.getModel(opts.uid), getModel: strapi.getModel.bind(strapi) },\n    data\n  );\n};\n"],"names":["transformPopulate","data","opts","traverse","traverseQueryPopulate","attribute","key","value","set","type","Array","isArray","fields","transformFields","schema","strapi","getModel","uid","bind"],"mappings":";;;AAMO,MAAMA,iBAAAA,GAAoB,OAAOC,IAAAA,EAAYC,IAAAA,GAAAA;AAClD,IAAA,OAAOC,QAAAA,CAASC,qBAAqB,CACnC,OAAO,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,EAAE,EAAE,EAAEC,GAAG,EAAE,GAAA;AACvC,QAAA,IAAI,CAACD,KAAAA,IAAS,OAAOA,UAAU,QAAA,IAAYF,SAAAA,EAAWI,SAAS,UAAA,EAAY;AACzE,YAAA;AACF,QAAA;AAEA;;;;SAKA,IAAI,YAAYF,KAAAA,IAASG,KAAAA,CAAMC,OAAO,CAACJ,KAAAA,CAAMK,MAAM,CAAA,EAAG;AACpDL,YAAAA,KAAAA,CAAMK,MAAM,GAAGC,eAAAA,CAAgBN,KAAAA,CAAMK,MAAM,CAAA;AAC7C,QAAA;AAEAJ,QAAAA,GAAAA,CAAIF,GAAAA,EAAKC,KAAAA,CAAAA;IACX,CAAA,EACA;AAAEO,QAAAA,MAAAA,EAAQC,MAAAA,CAAOC,QAAQ,CAACd,IAAAA,CAAKe,GAAG,CAAA;AAAGD,QAAAA,QAAAA,EAAUD,MAAAA,CAAOC,QAAQ,CAACE,IAAI,CAACH,MAAAA;KAAQ,EAC5Ed,IAAAA,CAAAA;AAEJ;;;;"}