{"version":3,"file":"preview.mjs","sources":["../../../../server/src/preview/services/preview.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\n\nimport { getService } from '../utils';\nimport type { HandlerParams } from './preview-config';\n\n/**\n * Responsible of routing an entry to a preview URL.\n */\nconst createPreviewService = ({ strapi }: { strapi: Core.Strapi }) => {\n  const config = getService(strapi, 'preview-config');\n\n  return {\n    async getPreviewUrl(uid: UID.ContentType, params: HandlerParams) {\n      const isConfigured = config.isConfigured();\n\n      if (!isConfigured) {\n        throw new errors.NotFoundError('Preview config not found');\n      }\n\n      const handler = config.getPreviewHandler();\n\n      try {\n        // Try to get the preview URL from the user-defined handler\n        const url = await handler(uid, params);\n        return url;\n      } catch (error) {\n        // Log the error and throw a generic error\n        strapi.log.error(`Failed to get preview URL: ${error}`);\n        throw new errors.ApplicationError('Failed to get preview URL');\n      }\n    },\n  };\n};\n\nexport { createPreviewService };\n"],"names":["createPreviewService","strapi","config","getService","getPreviewUrl","uid","params","isConfigured","errors","NotFoundError","handler","getPreviewHandler","url","error","log","ApplicationError"],"mappings":";;;AAMA;;AAEC,IACD,MAAMA,oBAAAA,GAAuB,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC/D,MAAMC,MAAAA,GAASC,WAAWF,MAAAA,EAAQ,gBAAA,CAAA;IAElC,OAAO;QACL,MAAMG,aAAAA,CAAAA,CAAcC,GAAoB,EAAEC,MAAqB,EAAA;YAC7D,MAAMC,YAAAA,GAAeL,OAAOK,YAAY,EAAA;AAExC,YAAA,IAAI,CAACA,YAAAA,EAAc;gBACjB,MAAM,IAAIC,MAAAA,CAAOC,aAAa,CAAC,0BAAA,CAAA;AACjC,YAAA;YAEA,MAAMC,OAAAA,GAAUR,OAAOS,iBAAiB,EAAA;YAExC,IAAI;;gBAEF,MAAMC,GAAAA,GAAM,MAAMF,OAAAA,CAAQL,GAAAA,EAAKC,MAAAA,CAAAA;gBAC/B,OAAOM,GAAAA;AACT,YAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;;AAEdZ,gBAAAA,MAAAA,CAAOa,GAAG,CAACD,KAAK,CAAC,CAAC,2BAA2B,EAAEA,KAAAA,CAAAA,CAAO,CAAA;gBACtD,MAAM,IAAIL,MAAAA,CAAOO,gBAAgB,CAAC,2BAAA,CAAA;AACpC,YAAA;AACF,QAAA;AACF,KAAA;AACF;;;;"}