{"version":3,"sources":["../../../../src/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.ts"],"names":[],"mappings":";;;;;;;;;;;AAYO,MAAM,8BAA8B,WAAA,CAAY;AAAA,EAYnD,MAAM,GAAA,CACkB,MAAA,EACC,OAAA,EACC,UACI,MAAA,EACd;AACZ,IAAA,MAAM,UAAA,GAAa,OAAO,GAAA,CAAI,uBAAuB,KAAK,aAAA,CAAc,qBAAA,IAAyB,QAAQ,GAAA,EAAI;AAC7G,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,UAAA,EAAY,cAAc,CAAA;AAEpD,IAAA,IAAI,WAAA;AAEJ,IAAA,IAAI;AACA,MAAA,WAAA,GAAc,KAAK,KAAA,CAAM,EAAA,CAAG,YAAA,CAAa,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,IAC9D,CAAA,CAAA,MAAQ;AACJ,MAAA,MAAM,IAAI,iBAAA,CAAkB;AAAA,QACxB,MAAA,EAAQ,GAAA;AAAA,QACR,WAAA,EAAa,mCAAmC,OAAO,CAAA,CAAA;AAAA,OAC1D,CAAA;AAAA,IACL;AAEA,IAAA,MAAM,oBAAmC,MAAA,CAAO,GAAA,CAAI,oBAAoB,CAAA,EAAG,KAAA,CAAM,GAAG,CAAA,IAAK;AAAA,MACrF,MAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACJ;AAEA,IAAA,iBAAA,CAAkB,OAAA,CAAQ,UAAQ,QAAA,CAAS,GAAA,CAAI,MAAM,WAAA,CAAY,IAAI,CAAC,CAAC,CAAA;AAAA,EAC3E;AACJ;AA5BU,eAAA,CAAA;AAAA,EALL,eAAe,GAAA,CAAI;AAAA,IAChB,IAAA,EAAM,GAAA;AAAA,IACN,MAAA,EAAQ,QAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACZ,CAAA;AAAA,EAEI,4BAAS,QAAQ,CAAA,CAAA;AAAA,EACjB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAClB,4BAAS,UAAU,CAAA,CAAA;AAAA,EACnB,4BAAS,cAAc,CAAA;AAAA,CAAA,EAhBnB,qBAAA,CAYH,SAAA,EAAA,KAAA,EAAA,CAAA,CAAA","file":"A-ServerHealthMonitor.component.mjs","sourcesContent":["import { A_Component, A_CONCEPT_ENV, A_Inject } from \"@adaas/a-concept\";\nimport { A_ServerRouter } from \"@adaas/a-server/router/A-ServerRouter.component\";\nimport { A_Request } from \"@adaas/a-server/request/A-Request.entity\";\nimport { A_Response } from \"@adaas/a-server/response/A-Response.entity\";\nimport { A_Config } from \"@adaas/a-utils/a-config\";\nimport { A_ServerLogger } from \"@adaas/a-server/logger/A-ServerLogger.component\";\nimport { A_HttpServerError } from \"../../lib/A-Server/A-HttpServer.error\";\nimport fs from \"fs\";\nimport path from \"path\";\n\n\n\nexport class A_ServerHealthMonitor extends A_Component {\n\n\n    // =======================================================\n    // ================ Method Definition=====================\n    // =======================================================\n\n    @A_ServerRouter.Get({\n        path: '/',\n        prefix: 'health',\n        version: 'v1',\n    })\n    async get(\n        @A_Inject(A_Config) config: A_Config<['VERSION_PATH', 'EXPOSED_PROPERTIES']>,\n        @A_Inject(A_Request) request: A_Request,\n        @A_Inject(A_Response) response: A_Response,\n        @A_Inject(A_ServerLogger) logger: A_ServerLogger\n    ): Promise<any> {\n        const rootFolder = config.get('A_CONCEPT_ROOT_FOLDER') || A_CONCEPT_ENV.A_CONCEPT_ROOT_FOLDER || process.cwd();\n        const pkgPath = path.join(rootFolder, 'package.json');\n\n        let packageJSON: Record<string, unknown>;\n\n        try {\n            packageJSON = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));\n        } catch {\n            throw new A_HttpServerError({\n                status: 500,\n                description: `Could not read package.json at \"${pkgPath}\"`,\n            });\n        }\n\n        const exposedProperties: Array<string> = config.get('EXPOSED_PROPERTIES')?.split(',') || [\n            'name',\n            'version',\n            'description',\n        ];\n\n        exposedProperties.forEach(prop => response.add(prop, packageJSON[prop]));\n    }\n}"]}