{"version":3,"file":"paths.cjs","sources":["../../../src/generators/paths.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types'\nimport type { Context } from '../context.js'\nimport { loadType } from '../loaders/type.js'\nimport { generateOperation } from './operation.js'\nimport { ExcludeMetadataStorage } from '../metadata/exclude.js'\nimport { ExtraModelsMetadataStorage } from '../metadata/extra_models.js'\nimport { OperationMetadataStorage } from '../metadata/operation.js'\n\nexport async function generatePaths(\n  context: Context,\n  controllers: Function[]\n): Promise<OpenAPIV3.PathsObject> {\n  const paths: OpenAPIV3.PathsObject = {}\n\n  for (const controller of controllers) {\n    const target = controller.prototype\n    const keys = Object.getOwnPropertyNames(target)\n\n    // Loads extra models defined on this controller\n    const extraModels = ExtraModelsMetadataStorage.getMetadata(target)\n    await Promise.all(extraModels.map((m) => loadType(context, { type: m })))\n\n    for (const key of keys) {\n      const metadata = OperationMetadataStorage.getMetadata(target, key, true)\n      if (!metadata) {\n        continue\n      }\n\n      if (!metadata.path || !metadata.methods) {\n        continue\n      }\n\n      const excludeController = ExcludeMetadataStorage.getMetadata(target)\n      if (excludeController === true) {\n        continue\n      }\n\n      for (const method of metadata.methods) {\n        const excludeOperation = ExcludeMetadataStorage.getMetadata(target, key)\n\n        if (excludeOperation === true) {\n          continue\n        }\n\n        paths[metadata.path] = {\n          ...paths[metadata.path],\n          [method]: await generateOperation(context, controller, key, metadata),\n        }\n      }\n    }\n  }\n\n  return paths\n}\n"],"names":["ExtraModelsMetadataStorage","loadType","OperationMetadataStorage","ExcludeMetadataStorage","generateOperation"],"mappings":";;;;;;;;AAQA,eAAsB,aAAA,CACpB,SACA,WAAA,EACgC;AAChC,EAAA,MAAM,QAA+B,EAAC;AAEtC,EAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACpC,IAAA,MAAM,SAAS,UAAA,CAAW,SAAA;AAC1B,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,mBAAA,CAAoB,MAAM,CAAA;AAG9C,IAAA,MAAM,WAAA,GAAcA,uCAAA,CAA2B,WAAA,CAAY,MAAM,CAAA;AACjE,IAAA,MAAM,OAAA,CAAQ,GAAA,CAAI,WAAA,CAAY,GAAA,CAAI,CAAC,CAAA,KAAMC,aAAA,CAAS,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AAExE,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,MAAM,QAAA,GAAWC,kCAAA,CAAyB,WAAA,CAAY,MAAA,EAAQ,KAAK,IAAI,CAAA;AACvE,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,CAAC,QAAA,CAAS,IAAA,IAAQ,CAAC,SAAS,OAAA,EAAS;AACvC,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,iBAAA,GAAoBC,8BAAA,CAAuB,WAAA,CAAY,MAAM,CAAA;AACnE,MAAA,IAAI,sBAAsB,IAAA,EAAM;AAC9B,QAAA;AAAA,MACF;AAEA,MAAA,KAAA,MAAW,MAAA,IAAU,SAAS,OAAA,EAAS;AACrC,QAAA,MAAM,gBAAA,GAAmBA,8BAAA,CAAuB,WAAA,CAAY,MAAA,EAAQ,GAAG,CAAA;AAEvE,QAAA,IAAI,qBAAqB,IAAA,EAAM;AAC7B,UAAA;AAAA,QACF;AAEA,QAAA,KAAA,CAAM,QAAA,CAAS,IAAI,CAAA,GAAI;AAAA,UACrB,GAAG,KAAA,CAAM,QAAA,CAAS,IAAI,CAAA;AAAA,UACtB,CAAC,MAAM,GAAG,MAAMC,8BAAkB,OAAA,EAAS,UAAA,EAAY,KAAK,QAAQ;AAAA,SACtE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT;;;;"}