{"version":3,"file":"api.mjs","sources":["../../../src/services/server/api.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core } from '@strapi/types';\n\nimport { createRouteManager } from './routing';\n\ninterface Options {\n  prefix?: string;\n  type?: string;\n}\n\nconst createAPI = (strapi: Core.Strapi, opts: Options = {}) => {\n  const { prefix, type } = opts;\n\n  const api = new Router({ prefix });\n\n  const routeManager = createRouteManager(strapi, { type });\n\n  return {\n    listRoutes() {\n      return [...api.stack];\n    },\n\n    use(fn: Router.Middleware) {\n      api.use(fn);\n      return this;\n    },\n\n    routes(routes: Core.Router | Core.Route[]) {\n      routeManager.addRoutes(routes, api);\n      return this;\n    },\n\n    mount(router: Router) {\n      router.use(api.routes(), api.allowedMethods());\n      return this;\n    },\n  };\n};\n\nexport { createAPI };\n"],"names":["createAPI","strapi","opts","prefix","type","api","Router","routeManager","createRouteManager","listRoutes","stack","use","fn","routes","addRoutes","mount","router","allowedMethods"],"mappings":";;;AAUA,MAAMA,SAAAA,GAAY,CAACC,MAAAA,EAAqBC,IAAAA,GAAgB,EAAE,GAAA;AACxD,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAAA;IAEzB,MAAMG,GAAAA,GAAM,IAAIC,MAAAA,CAAO;AAAEH,QAAAA;AAAO,KAAA,CAAA;IAEhC,MAAMI,YAAAA,GAAeC,mBAAmBP,MAAAA,EAAQ;AAAEG,QAAAA;AAAK,KAAA,CAAA;IAEvD,OAAO;AACLK,QAAAA,UAAAA,CAAAA,GAAAA;YACE,OAAO;AAAIJ,gBAAAA,GAAAA,GAAAA,CAAIK;AAAM,aAAA;AACvB,QAAA,CAAA;AAEAC,QAAAA,GAAAA,CAAAA,CAAIC,EAAqB,EAAA;AACvBP,YAAAA,GAAAA,CAAIM,GAAG,CAACC,EAAAA,CAAAA;AACR,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAC,QAAAA,MAAAA,CAAAA,CAAOA,MAAkC,EAAA;YACvCN,YAAAA,CAAaO,SAAS,CAACD,MAAAA,EAAQR,GAAAA,CAAAA;AAC/B,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAU,QAAAA,KAAAA,CAAAA,CAAMC,MAAc,EAAA;AAClBA,YAAAA,MAAAA,CAAOL,GAAG,CAACN,GAAAA,CAAIQ,MAAM,EAAA,EAAIR,IAAIY,cAAc,EAAA,CAAA;AAC3C,YAAA,OAAO,IAAI;AACb,QAAA;AACF,KAAA;AACF;;;;"}