{"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,iBAAoB,GAAA,OAAOC,IAAYC,EAAAA,IAAAA,GAAAA;AAClD,IAAA,OAAOC,QAASC,CAAAA,qBAAqB,CACnC,OAAO,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,EAAE,EAAE,EAAEC,GAAG,EAAE,GAAA;AACvC,QAAA,IAAI,CAACD,KAAS,IAAA,OAAOA,UAAU,QAAYF,IAAAA,SAAAA,EAAWI,SAAS,UAAY,EAAA;AACzE,YAAA;AACF;AAEA;;;;SAKA,IAAI,YAAYF,KAASG,IAAAA,KAAAA,CAAMC,OAAO,CAACJ,KAAAA,CAAMK,MAAM,CAAG,EAAA;AACpDL,YAAAA,KAAAA,CAAMK,MAAM,GAAGC,eAAgBN,CAAAA,KAAAA,CAAMK,MAAM,CAAA;AAC7C;AAEAJ,QAAAA,GAAAA,CAAIF,GAAKC,EAAAA,KAAAA,CAAAA;KAEX,EAAA;AAAEO,QAAAA,MAAAA,EAAQC,MAAOC,CAAAA,QAAQ,CAACd,IAAAA,CAAKe,GAAG,CAAA;AAAGD,QAAAA,QAAAA,EAAUD,MAAOC,CAAAA,QAAQ,CAACE,IAAI,CAACH,MAAAA;KACpEd,EAAAA,IAAAA,CAAAA;AAEJ;;;;"}