{"version":3,"file":"favicon.mjs","sources":["../../src/middlewares/favicon.ts"],"sourcesContent":["import { existsSync } from 'fs';\nimport { resolve } from 'path';\nimport koaFavicon from 'koa-favicon';\nimport type { Core } from '@strapi/types';\n\nexport type Config = NonNullable<Parameters<typeof koaFavicon>[1]>;\n\nconst defaults = {\n  path: 'favicon.png',\n  maxAge: 86400000,\n};\n\nexport const favicon: Core.MiddlewareFactory<Config> = (config, { strapi }) => {\n  const { maxAge, path: faviconPathConfig } = { ...defaults, ...config };\n  const { root: appRoot } = strapi.dirs.app;\n  let faviconPath = faviconPathConfig;\n\n  if (!existsSync(resolve(appRoot, faviconPathConfig))) {\n    if (existsSync(resolve(appRoot, defaults.path))) {\n      faviconPath = defaults.path;\n    } else if (existsSync(resolve(appRoot, 'favicon.ico'))) {\n      faviconPath = 'favicon.ico';\n    }\n  }\n\n  return koaFavicon(resolve(appRoot, faviconPath), { maxAge });\n};\n"],"names":["defaults","path","maxAge","favicon","config","strapi","faviconPathConfig","root","appRoot","dirs","app","faviconPath","existsSync","resolve","koaFavicon"],"mappings":";;;;AAOA,MAAMA,QAAAA,GAAW;IACfC,IAAAA,EAAM,aAAA;IACNC,MAAAA,EAAQ;AACV,CAAA;MAEaC,OAAAA,GAA0C,CAACC,MAAAA,EAAQ,EAAEC,MAAM,EAAE,GAAA;AACxE,IAAA,MAAM,EAAEH,MAAM,EAAED,IAAAA,EAAMK,iBAAiB,EAAE,GAAG;AAAE,QAAA,GAAGN,QAAQ;AAAE,QAAA,GAAGI;AAAO,KAAA;IACrE,MAAM,EAAEG,MAAMC,OAAO,EAAE,GAAGH,MAAAA,CAAOI,IAAI,CAACC,GAAG;AACzC,IAAA,IAAIC,WAAAA,GAAcL,iBAAAA;AAElB,IAAA,IAAI,CAACM,UAAAA,CAAWC,OAAAA,CAAQL,OAAAA,EAASF,iBAAAA,CAAAA,CAAAA,EAAqB;AACpD,QAAA,IAAIM,UAAAA,CAAWC,OAAAA,CAAQL,OAAAA,EAASR,QAAAA,CAASC,IAAI,CAAA,CAAA,EAAI;AAC/CU,YAAAA,WAAAA,GAAcX,SAASC,IAAI;AAC7B,QAAA,CAAA,MAAO,IAAIW,UAAAA,CAAWC,OAAAA,CAAQL,OAAAA,EAAS,aAAA,CAAA,CAAA,EAAiB;YACtDG,WAAAA,GAAc,aAAA;AAChB,QAAA;AACF,IAAA;IAEA,OAAOG,UAAAA,CAAWD,OAAAA,CAAQL,OAAAA,EAASG,WAAAA,CAAAA,EAAc;AAAET,QAAAA;AAAO,KAAA,CAAA;AAC5D;;;;"}