{"version":3,"file":"middlewares.mjs","sources":["../../src/loaders/middlewares.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse from 'fs-extra';\nimport { importDefault } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { middlewares as internalMiddlewares } from '../middlewares';\n\n// TODO:: allow folders with index.js inside for bigger policies\nexport default async function loadMiddlewares(strapi: Core.Strapi) {\n  const localMiddlewares = await loadLocalMiddlewares(strapi);\n\n  strapi.get('middlewares').add(`global::`, localMiddlewares);\n  strapi.get('middlewares').add(`strapi::`, internalMiddlewares);\n}\n\nconst loadLocalMiddlewares = async (strapi: Core.Strapi) => {\n  const dir = strapi.dirs.dist.middlewares;\n\n  if (!(await fse.pathExists(dir))) {\n    return {};\n  }\n\n  const middlewares: Record<string, Core.MiddlewareFactory> = {};\n  const paths = await fse.readdir(dir, { withFileTypes: true });\n\n  for (const fd of paths) {\n    const { name } = fd;\n    const fullPath = join(dir, name);\n\n    if (fd.isFile() && extname(name) === '.js') {\n      const key = basename(name, '.js');\n      middlewares[key] = importDefault(fullPath);\n    }\n  }\n\n  return middlewares;\n};\n"],"names":["loadMiddlewares","strapi","localMiddlewares","loadLocalMiddlewares","get","add","internalMiddlewares","dir","dirs","dist","middlewares","fse","pathExists","paths","readdir","withFileTypes","fd","name","fullPath","join","isFile","extname","key","basename","importDefault"],"mappings":";;;;;AAMA;AACe,eAAeA,gBAAgBC,MAAmB,EAAA;IAC/D,MAAMC,gBAAAA,GAAmB,MAAMC,oBAAAA,CAAqBF,MAAAA,CAAAA;IAEpDA,MAAAA,CAAOG,GAAG,CAAC,aAAA,CAAA,CAAeC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAEH,gBAAAA,CAAAA;IAC1CD,MAAAA,CAAOG,GAAG,CAAC,aAAA,CAAA,CAAeC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAEC,WAAAA,CAAAA;AAC5C;AAEA,MAAMH,uBAAuB,OAAOF,MAAAA,GAAAA;AAClC,IAAA,MAAMM,MAAMN,MAAAA,CAAOO,IAAI,CAACC,IAAI,CAACC,WAAW;AAExC,IAAA,IAAI,CAAE,MAAMC,GAAAA,CAAIC,UAAU,CAACL,GAAAA,CAAAA,EAAO;AAChC,QAAA,OAAO,EAAC;AACV,IAAA;AAEA,IAAA,MAAMG,cAAsD,EAAC;AAC7D,IAAA,MAAMG,KAAAA,GAAQ,MAAMF,GAAAA,CAAIG,OAAO,CAACP,GAAAA,EAAK;QAAEQ,aAAAA,EAAe;AAAK,KAAA,CAAA;IAE3D,KAAK,MAAMC,MAAMH,KAAAA,CAAO;QACtB,MAAM,EAAEI,IAAI,EAAE,GAAGD,EAAAA;QACjB,MAAME,QAAAA,GAAWC,KAAKZ,GAAAA,EAAKU,IAAAA,CAAAA;AAE3B,QAAA,IAAID,EAAAA,CAAGI,MAAM,EAAA,IAAMC,OAAAA,CAAQJ,UAAU,KAAA,EAAO;YAC1C,MAAMK,GAAAA,GAAMC,SAASN,IAAAA,EAAM,KAAA,CAAA;YAC3BP,WAAW,CAACY,GAAAA,CAAI,GAAGE,aAAAA,CAAcN,QAAAA,CAAAA;AACnC,QAAA;AACF,IAAA;IAEA,OAAOR,WAAAA;AACT,CAAA;;;;"}