{"version":3,"sources":["../../src/uploads/generateFilePathOrURL.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\n\nimport { formatAdminURL } from '../utilities/formatAdminURL.js'\n\n/**\n * Generates a file path or URL based on the provided parameters.\n *\n * If urlOrPath is an external URL, it returns it as is.\n * If a filename is provided, it constructs a URL using the collection slug and API route.\n * If neither condition is met, it returns null.\n *\n * If you set relative to true, the returned URL will be relative to the serverURL (unless external).\n */\nexport function generateFilePathOrURL({\n collectionSlug,\n config,\n filename,\n relative,\n serverURL,\n urlOrPath,\n}: {\n collectionSlug: string\n config: Config\n filename?: string\n relative: boolean\n serverURL?: string\n urlOrPath: string | undefined\n}): null | string {\n if (urlOrPath) {\n if (!urlOrPath.startsWith('/') && !urlOrPath.startsWith(serverURL || '')) {\n // external url\n return urlOrPath\n }\n }\n\n if (filename) {\n // local file url\n return formatAdminURL({\n apiRoute: config.routes?.api || '',\n path: `/${collectionSlug}/file/${encodeURIComponent(filename)}`,\n relative,\n serverURL: config.serverURL,\n })\n }\n\n return null\n}\n"],"names":["formatAdminURL","generateFilePathOrURL","collectionSlug","config","filename","relative","serverURL","urlOrPath","startsWith","apiRoute","routes","api","path","encodeURIComponent"],"mappings":"AAEA,SAASA,cAAc,QAAQ,iCAAgC;AAE/D;;;;;;;;CAQC,GACD,OAAO,SAASC,sBAAsB,EACpCC,cAAc,EACdC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,SAAS,EAQV;IACC,IAAIA,WAAW;QACb,IAAI,CAACA,UAAUC,UAAU,CAAC,QAAQ,CAACD,UAAUC,UAAU,CAACF,aAAa,KAAK;YACxE,eAAe;YACf,OAAOC;QACT;IACF;IAEA,IAAIH,UAAU;QACZ,iBAAiB;QACjB,OAAOJ,eAAe;YACpBS,UAAUN,OAAOO,MAAM,EAAEC,OAAO;YAChCC,MAAM,CAAC,CAAC,EAAEV,eAAe,MAAM,EAAEW,mBAAmBT,WAAW;YAC/DC;YACAC,WAAWH,OAAOG,SAAS;QAC7B;IACF;IAEA,OAAO;AACT"}