@autofleet/nitur 2.2.0-0 → 2.2.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../logger.cjs`),n=require(`./manager.cjs`);let r=require(`@godaddy/terminus`);r=e.__toESM(r);let i=require(`http-terminator`);i=e.__toESM(i);function a(e){let a=e.logger??t.logger,o=e.endpoints?.liveness||`/health/live`,s=e.endpoints?.readiness||`/health/ready`,c=new n.HealthCheckManager(e.liveness,e.readiness),l=(0,i.createHttpTerminator)({server:e.server}),u=e.gracefulShutdown?.shutdownHooks||[],d={signals:e.gracefulShutdown?.signals??[`SIGTERM`,`SIGINT`],timeout:e.gracefulShutdown?.timeout
|
|
1
|
+
const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../logger.cjs`),n=require(`./manager.cjs`);let r=require(`@godaddy/terminus`);r=e.__toESM(r);let i=require(`http-terminator`);i=e.__toESM(i);function a(e){let a=e.logger??t.logger,o=e.endpoints?.liveness||`/health/live`,s=e.endpoints?.readiness||`/health/ready`,c=new n.HealthCheckManager(e.liveness,e.readiness),l=(0,i.createHttpTerminator)({server:e.server}),u=e.gracefulShutdown?.shutdownHooks||[],d={signals:e.gracefulShutdown?.signals??[`SIGTERM`,`SIGINT`],timeout:e.gracefulShutdown?.timeout??5e4,useExit0:e.gracefulShutdown?.useExit0??!0,healthChecks:{[o]:async()=>{let e=await c.checkLiveness();if(e.status===`fail`)throw Error(e.checks.filter(e=>e.status===`fail`).map(e=>e.error).join(`, `))},[s]:async()=>{let e=await c.checkReadiness();if(e.status===`fail`)throw Error(e.checks.filter(e=>e.status===`fail`).map(e=>e.error).join(`, `))}},beforeShutdown:async()=>{a.info(`Received shutdown signal`),await new Promise(e=>setTimeout(e,5e3))},onSignal:async()=>{a.info(`Executing shutdown hooks`),await Promise.all(u.map(async({name:e,hook:t})=>{try{a.info(`Running shutdown hook: ${e}`),await t()}catch(t){throw a.error(`Shutdown hook '${e}' failed`,{error:t}),t}}))},onShutdown:async()=>{a.info(`Graceful shutdown completed`)},logger:(e,t)=>{t?a.error(e,{error:t}):a.info(e)}};return(0,r.createTerminus)(e.server,d),a.info(`Health checks and graceful shutdown initialized`,{livenessPath:o,readinessPath:s}),{healthCheckManager:c,httpTerminator:l,addShutdownHook:(e,t)=>{u.push({name:e,hook:t})},checkLiveness:()=>c.checkLiveness(),checkReadiness:()=>c.checkReadiness(),shutdown:async()=>{a.info(`Manual shutdown initiated`),await l.terminate()}}}exports.setupHealthCheck=a;
|
|
2
2
|
//# sourceMappingURL=setup.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.cjs","names":["logger","defaultLogger","HealthCheckManager","shutdownHooks: NamedShutdownHook[]","terminusOptions: TerminusOptions"],"sources":["../../src/health-check/setup.ts"],"sourcesContent":["import type { Server } from 'http';\nimport type { LoggerInstanceManager } from '@autofleet/logger';\nimport { createTerminus, type TerminusOptions } from '@godaddy/terminus';\nimport { createHttpTerminator, type HttpTerminator } from 'http-terminator';\nimport { logger as defaultLogger } from '../logger';\nimport { HealthCheckManager } from './manager';\nimport type {\n LivenessConfig,\n ReadinessConfig,\n GracefulShutdownConfig,\n NamedShutdownHook,\n} from './types';\n\n/**\n * Generic app interface - works for both Express and Fastify\n */\ninterface App {\n get(path: string, handler: (req: any, res: any) => void | Promise<any>): any;\n}\n\n/**\n * Configuration for health check setup\n */\nexport interface HealthCheckSetupConfig {\n /**\n * Application instance (Express or Fastify)\n */\n app: App;\n\n /**\n * HTTP server instance\n */\n server: Server;\n\n /**\n * Logger instance\n */\n logger?: LoggerInstanceManager;\n\n /**\n * Liveness probe configuration\n */\n liveness?: LivenessConfig;\n\n /**\n * Readiness probe configuration\n */\n readiness?: ReadinessConfig;\n\n /**\n * Graceful shutdown configuration\n */\n gracefulShutdown?: GracefulShutdownConfig;\n\n /**\n * Custom endpoint paths\n */\n endpoints?: {\n liveness?: string;\n readiness?: string;\n };\n}\n\n/**\n * Health Check Setup Result\n */\nexport interface HealthCheckSetup {\n healthCheckManager: HealthCheckManager;\n httpTerminator: HttpTerminator;\n addShutdownHook: (name: string, hook: () => Promise<void>) => void;\n checkLiveness: () => Promise<any>;\n checkReadiness: () => Promise<any>;\n shutdown: () => Promise<void>;\n}\n\n/**\n * Setup health checks and graceful shutdown\n * Works with both Express and Fastify\n */\nexport function setupHealthCheck(config: HealthCheckSetupConfig): HealthCheckSetup {\n const logger = config.logger ?? defaultLogger;\n const livenessPath = config.endpoints?.liveness || '/health/live';\n const readinessPath = config.endpoints?.readiness || '/health/ready';\n\n // Create health check manager\n const healthCheckManager = new HealthCheckManager(config.liveness, config.readiness);\n\n // Create http terminator\n const httpTerminator = createHttpTerminator({ server: config.server });\n\n // Shutdown hooks\n const shutdownHooks: NamedShutdownHook[] = config.gracefulShutdown?.shutdownHooks || [];\n\n // Setup terminus\n const terminusOptions: TerminusOptions = {\n signals: config.gracefulShutdown?.signals ?? ['SIGTERM', 'SIGINT'],\n timeout: config.gracefulShutdown?.timeout
|
|
1
|
+
{"version":3,"file":"setup.cjs","names":["logger","defaultLogger","HealthCheckManager","shutdownHooks: NamedShutdownHook[]","terminusOptions: TerminusOptions"],"sources":["../../src/health-check/setup.ts"],"sourcesContent":["import type { Server } from 'http';\nimport type { LoggerInstanceManager } from '@autofleet/logger';\nimport { createTerminus, type TerminusOptions } from '@godaddy/terminus';\nimport { createHttpTerminator, type HttpTerminator } from 'http-terminator';\nimport { logger as defaultLogger } from '../logger';\nimport { HealthCheckManager } from './manager';\nimport type {\n LivenessConfig,\n ReadinessConfig,\n GracefulShutdownConfig,\n NamedShutdownHook,\n} from './types';\n\n/**\n * Generic app interface - works for both Express and Fastify\n */\ninterface App {\n get(path: string, handler: (req: any, res: any) => void | Promise<any>): any;\n}\n\n/**\n * Configuration for health check setup\n */\nexport interface HealthCheckSetupConfig {\n /**\n * Application instance (Express or Fastify)\n */\n app: App;\n\n /**\n * HTTP server instance\n */\n server: Server;\n\n /**\n * Logger instance\n */\n logger?: LoggerInstanceManager;\n\n /**\n * Liveness probe configuration\n */\n liveness?: LivenessConfig;\n\n /**\n * Readiness probe configuration\n */\n readiness?: ReadinessConfig;\n\n /**\n * Graceful shutdown configuration\n */\n gracefulShutdown?: GracefulShutdownConfig;\n\n /**\n * Custom endpoint paths\n */\n endpoints?: {\n liveness?: string;\n readiness?: string;\n };\n}\n\n/**\n * Health Check Setup Result\n */\nexport interface HealthCheckSetup {\n healthCheckManager: HealthCheckManager;\n httpTerminator: HttpTerminator;\n addShutdownHook: (name: string, hook: () => Promise<void>) => void;\n checkLiveness: () => Promise<any>;\n checkReadiness: () => Promise<any>;\n shutdown: () => Promise<void>;\n}\n\n/**\n * Setup health checks and graceful shutdown\n * Works with both Express and Fastify\n */\nexport function setupHealthCheck(config: HealthCheckSetupConfig): HealthCheckSetup {\n const logger = config.logger ?? defaultLogger;\n const livenessPath = config.endpoints?.liveness || '/health/live';\n const readinessPath = config.endpoints?.readiness || '/health/ready';\n\n // Create health check manager\n const healthCheckManager = new HealthCheckManager(config.liveness, config.readiness);\n\n // Create http terminator\n const httpTerminator = createHttpTerminator({ server: config.server });\n\n // Shutdown hooks\n const shutdownHooks: NamedShutdownHook[] = config.gracefulShutdown?.shutdownHooks || [];\n\n // Setup terminus\n const terminusOptions: TerminusOptions = {\n signals: config.gracefulShutdown?.signals ?? ['SIGTERM', 'SIGINT'],\n timeout: config.gracefulShutdown?.timeout ?? 50_000,\n useExit0: config.gracefulShutdown?.useExit0 ?? true,\n healthChecks: {\n [livenessPath]: async () => {\n const status = await healthCheckManager.checkLiveness();\n if (status.status === 'fail') {\n throw new Error(status.checks.filter(c => c.status === 'fail').map(c => c.error).join(', '));\n }\n },\n [readinessPath]: async () => {\n const status = await healthCheckManager.checkReadiness();\n if (status.status === 'fail') {\n throw new Error(status.checks.filter(c => c.status === 'fail').map(c => c.error).join(', '));\n }\n },\n },\n\n beforeShutdown: async () => {\n logger.info('Received shutdown signal');\n // Give load balancers time to remove instance\n await new Promise(resolve => setTimeout(resolve, 5000));\n },\n\n onSignal: async () => {\n logger.info('Executing shutdown hooks');\n await Promise.all(shutdownHooks.map(async ({ name, hook }) => {\n try {\n logger.info(`Running shutdown hook: ${name}`);\n await hook();\n } catch (error) {\n logger.error(`Shutdown hook '${name}' failed`, { error });\n throw error;\n }\n }));\n },\n\n onShutdown: async () => {\n logger.info('Graceful shutdown completed');\n },\n\n logger: (msg, error) => {\n if (error) {\n logger.error(msg, { error });\n } else {\n logger.info(msg);\n }\n },\n };\n\n createTerminus(config.server, terminusOptions);\n\n logger.info('Health checks and graceful shutdown initialized', {\n livenessPath,\n readinessPath,\n });\n\n return {\n healthCheckManager,\n httpTerminator,\n addShutdownHook: (name: string, hook: () => Promise<void>) => {\n shutdownHooks.push({ name, hook });\n },\n checkLiveness: () => healthCheckManager.checkLiveness(),\n checkReadiness: () => healthCheckManager.checkReadiness(),\n shutdown: async () => {\n logger.info('Manual shutdown initiated');\n await httpTerminator.terminate();\n },\n };\n}\n"],"mappings":"4MA+EA,SAAgB,EAAiB,EAAkD,CACjF,IAAMA,EAAS,EAAO,QAAUC,EAAAA,OAC1B,EAAe,EAAO,WAAW,UAAY,eAC7C,EAAgB,EAAO,WAAW,WAAa,gBAG/C,EAAqB,IAAIC,EAAAA,mBAAmB,EAAO,SAAU,EAAO,UAAU,CAG9E,GAAA,EAAA,EAAA,sBAAsC,CAAE,OAAQ,EAAO,OAAQ,CAAC,CAGhEC,EAAqC,EAAO,kBAAkB,eAAiB,EAAE,CAGjFC,EAAmC,CACvC,QAAS,EAAO,kBAAkB,SAAW,CAAC,UAAW,SAAS,CAClE,QAAS,EAAO,kBAAkB,SAAW,IAC7C,SAAU,EAAO,kBAAkB,UAAY,GAC/C,aAAc,EACX,GAAe,SAAY,CAC1B,IAAM,EAAS,MAAM,EAAmB,eAAe,CACvD,GAAI,EAAO,SAAW,OACpB,MAAU,MAAM,EAAO,OAAO,OAAO,GAAK,EAAE,SAAW,OAAO,CAAC,IAAI,GAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,GAG/F,GAAgB,SAAY,CAC3B,IAAM,EAAS,MAAM,EAAmB,gBAAgB,CACxD,GAAI,EAAO,SAAW,OACpB,MAAU,MAAM,EAAO,OAAO,OAAO,GAAK,EAAE,SAAW,OAAO,CAAC,IAAI,GAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,EAGjG,CAED,eAAgB,SAAY,CAC1B,EAAO,KAAK,2BAA2B,CAEvC,MAAM,IAAI,QAAQ,GAAW,WAAW,EAAS,IAAK,CAAC,EAGzD,SAAU,SAAY,CACpB,EAAO,KAAK,2BAA2B,CACvC,MAAM,QAAQ,IAAI,EAAc,IAAI,MAAO,CAAE,OAAM,UAAW,CAC5D,GAAI,CACF,EAAO,KAAK,0BAA0B,IAAO,CAC7C,MAAM,GAAM,OACL,EAAO,CAEd,MADA,EAAO,MAAM,kBAAkB,EAAK,UAAW,CAAE,QAAO,CAAC,CACnD,IAER,CAAC,EAGL,WAAY,SAAY,CACtB,EAAO,KAAK,8BAA8B,EAG5C,QAAS,EAAK,IAAU,CAClB,EACF,EAAO,MAAM,EAAK,CAAE,QAAO,CAAC,CAE5B,EAAO,KAAK,EAAI,EAGrB,CASD,OAPA,EAAA,EAAA,gBAAe,EAAO,OAAQ,EAAgB,CAE9C,EAAO,KAAK,kDAAmD,CAC7D,eACA,gBACD,CAAC,CAEK,CACL,qBACA,iBACA,iBAAkB,EAAc,IAA8B,CAC5D,EAAc,KAAK,CAAE,OAAM,OAAM,CAAC,EAEpC,kBAAqB,EAAmB,eAAe,CACvD,mBAAsB,EAAmB,gBAAgB,CACzD,SAAU,SAAY,CACpB,EAAO,KAAK,4BAA4B,CACxC,MAAM,EAAe,WAAW,EAEnC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{logger as e}from"../logger.js";import{HealthCheckManager as t}from"./manager.js";import{createTerminus as n}from"@godaddy/terminus";import{createHttpTerminator as r}from"http-terminator";function i(i){let a=i.logger??e,o=i.endpoints?.liveness||`/health/live`,s=i.endpoints?.readiness||`/health/ready`,c=new t(i.liveness,i.readiness),l=r({server:i.server}),u=i.gracefulShutdown?.shutdownHooks||[],d={signals:i.gracefulShutdown?.signals??[`SIGTERM`,`SIGINT`],timeout:i.gracefulShutdown?.timeout
|
|
1
|
+
import{logger as e}from"../logger.js";import{HealthCheckManager as t}from"./manager.js";import{createTerminus as n}from"@godaddy/terminus";import{createHttpTerminator as r}from"http-terminator";function i(i){let a=i.logger??e,o=i.endpoints?.liveness||`/health/live`,s=i.endpoints?.readiness||`/health/ready`,c=new t(i.liveness,i.readiness),l=r({server:i.server}),u=i.gracefulShutdown?.shutdownHooks||[],d={signals:i.gracefulShutdown?.signals??[`SIGTERM`,`SIGINT`],timeout:i.gracefulShutdown?.timeout??5e4,useExit0:i.gracefulShutdown?.useExit0??!0,healthChecks:{[o]:async()=>{let e=await c.checkLiveness();if(e.status===`fail`)throw Error(e.checks.filter(e=>e.status===`fail`).map(e=>e.error).join(`, `))},[s]:async()=>{let e=await c.checkReadiness();if(e.status===`fail`)throw Error(e.checks.filter(e=>e.status===`fail`).map(e=>e.error).join(`, `))}},beforeShutdown:async()=>{a.info(`Received shutdown signal`),await new Promise(e=>setTimeout(e,5e3))},onSignal:async()=>{a.info(`Executing shutdown hooks`),await Promise.all(u.map(async({name:e,hook:t})=>{try{a.info(`Running shutdown hook: ${e}`),await t()}catch(t){throw a.error(`Shutdown hook '${e}' failed`,{error:t}),t}}))},onShutdown:async()=>{a.info(`Graceful shutdown completed`)},logger:(e,t)=>{t?a.error(e,{error:t}):a.info(e)}};return n(i.server,d),a.info(`Health checks and graceful shutdown initialized`,{livenessPath:o,readinessPath:s}),{healthCheckManager:c,httpTerminator:l,addShutdownHook:(e,t)=>{u.push({name:e,hook:t})},checkLiveness:()=>c.checkLiveness(),checkReadiness:()=>c.checkReadiness(),shutdown:async()=>{a.info(`Manual shutdown initiated`),await l.terminate()}}}export{i as setupHealthCheck};
|
|
2
2
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","names":["logger","defaultLogger","shutdownHooks: NamedShutdownHook[]","terminusOptions: TerminusOptions"],"sources":["../../src/health-check/setup.ts"],"sourcesContent":["import type { Server } from 'http';\nimport type { LoggerInstanceManager } from '@autofleet/logger';\nimport { createTerminus, type TerminusOptions } from '@godaddy/terminus';\nimport { createHttpTerminator, type HttpTerminator } from 'http-terminator';\nimport { logger as defaultLogger } from '../logger';\nimport { HealthCheckManager } from './manager';\nimport type {\n LivenessConfig,\n ReadinessConfig,\n GracefulShutdownConfig,\n NamedShutdownHook,\n} from './types';\n\n/**\n * Generic app interface - works for both Express and Fastify\n */\ninterface App {\n get(path: string, handler: (req: any, res: any) => void | Promise<any>): any;\n}\n\n/**\n * Configuration for health check setup\n */\nexport interface HealthCheckSetupConfig {\n /**\n * Application instance (Express or Fastify)\n */\n app: App;\n\n /**\n * HTTP server instance\n */\n server: Server;\n\n /**\n * Logger instance\n */\n logger?: LoggerInstanceManager;\n\n /**\n * Liveness probe configuration\n */\n liveness?: LivenessConfig;\n\n /**\n * Readiness probe configuration\n */\n readiness?: ReadinessConfig;\n\n /**\n * Graceful shutdown configuration\n */\n gracefulShutdown?: GracefulShutdownConfig;\n\n /**\n * Custom endpoint paths\n */\n endpoints?: {\n liveness?: string;\n readiness?: string;\n };\n}\n\n/**\n * Health Check Setup Result\n */\nexport interface HealthCheckSetup {\n healthCheckManager: HealthCheckManager;\n httpTerminator: HttpTerminator;\n addShutdownHook: (name: string, hook: () => Promise<void>) => void;\n checkLiveness: () => Promise<any>;\n checkReadiness: () => Promise<any>;\n shutdown: () => Promise<void>;\n}\n\n/**\n * Setup health checks and graceful shutdown\n * Works with both Express and Fastify\n */\nexport function setupHealthCheck(config: HealthCheckSetupConfig): HealthCheckSetup {\n const logger = config.logger ?? defaultLogger;\n const livenessPath = config.endpoints?.liveness || '/health/live';\n const readinessPath = config.endpoints?.readiness || '/health/ready';\n\n // Create health check manager\n const healthCheckManager = new HealthCheckManager(config.liveness, config.readiness);\n\n // Create http terminator\n const httpTerminator = createHttpTerminator({ server: config.server });\n\n // Shutdown hooks\n const shutdownHooks: NamedShutdownHook[] = config.gracefulShutdown?.shutdownHooks || [];\n\n // Setup terminus\n const terminusOptions: TerminusOptions = {\n signals: config.gracefulShutdown?.signals ?? ['SIGTERM', 'SIGINT'],\n timeout: config.gracefulShutdown?.timeout
|
|
1
|
+
{"version":3,"file":"setup.js","names":["logger","defaultLogger","shutdownHooks: NamedShutdownHook[]","terminusOptions: TerminusOptions"],"sources":["../../src/health-check/setup.ts"],"sourcesContent":["import type { Server } from 'http';\nimport type { LoggerInstanceManager } from '@autofleet/logger';\nimport { createTerminus, type TerminusOptions } from '@godaddy/terminus';\nimport { createHttpTerminator, type HttpTerminator } from 'http-terminator';\nimport { logger as defaultLogger } from '../logger';\nimport { HealthCheckManager } from './manager';\nimport type {\n LivenessConfig,\n ReadinessConfig,\n GracefulShutdownConfig,\n NamedShutdownHook,\n} from './types';\n\n/**\n * Generic app interface - works for both Express and Fastify\n */\ninterface App {\n get(path: string, handler: (req: any, res: any) => void | Promise<any>): any;\n}\n\n/**\n * Configuration for health check setup\n */\nexport interface HealthCheckSetupConfig {\n /**\n * Application instance (Express or Fastify)\n */\n app: App;\n\n /**\n * HTTP server instance\n */\n server: Server;\n\n /**\n * Logger instance\n */\n logger?: LoggerInstanceManager;\n\n /**\n * Liveness probe configuration\n */\n liveness?: LivenessConfig;\n\n /**\n * Readiness probe configuration\n */\n readiness?: ReadinessConfig;\n\n /**\n * Graceful shutdown configuration\n */\n gracefulShutdown?: GracefulShutdownConfig;\n\n /**\n * Custom endpoint paths\n */\n endpoints?: {\n liveness?: string;\n readiness?: string;\n };\n}\n\n/**\n * Health Check Setup Result\n */\nexport interface HealthCheckSetup {\n healthCheckManager: HealthCheckManager;\n httpTerminator: HttpTerminator;\n addShutdownHook: (name: string, hook: () => Promise<void>) => void;\n checkLiveness: () => Promise<any>;\n checkReadiness: () => Promise<any>;\n shutdown: () => Promise<void>;\n}\n\n/**\n * Setup health checks and graceful shutdown\n * Works with both Express and Fastify\n */\nexport function setupHealthCheck(config: HealthCheckSetupConfig): HealthCheckSetup {\n const logger = config.logger ?? defaultLogger;\n const livenessPath = config.endpoints?.liveness || '/health/live';\n const readinessPath = config.endpoints?.readiness || '/health/ready';\n\n // Create health check manager\n const healthCheckManager = new HealthCheckManager(config.liveness, config.readiness);\n\n // Create http terminator\n const httpTerminator = createHttpTerminator({ server: config.server });\n\n // Shutdown hooks\n const shutdownHooks: NamedShutdownHook[] = config.gracefulShutdown?.shutdownHooks || [];\n\n // Setup terminus\n const terminusOptions: TerminusOptions = {\n signals: config.gracefulShutdown?.signals ?? ['SIGTERM', 'SIGINT'],\n timeout: config.gracefulShutdown?.timeout ?? 50_000,\n useExit0: config.gracefulShutdown?.useExit0 ?? true,\n healthChecks: {\n [livenessPath]: async () => {\n const status = await healthCheckManager.checkLiveness();\n if (status.status === 'fail') {\n throw new Error(status.checks.filter(c => c.status === 'fail').map(c => c.error).join(', '));\n }\n },\n [readinessPath]: async () => {\n const status = await healthCheckManager.checkReadiness();\n if (status.status === 'fail') {\n throw new Error(status.checks.filter(c => c.status === 'fail').map(c => c.error).join(', '));\n }\n },\n },\n\n beforeShutdown: async () => {\n logger.info('Received shutdown signal');\n // Give load balancers time to remove instance\n await new Promise(resolve => setTimeout(resolve, 5000));\n },\n\n onSignal: async () => {\n logger.info('Executing shutdown hooks');\n await Promise.all(shutdownHooks.map(async ({ name, hook }) => {\n try {\n logger.info(`Running shutdown hook: ${name}`);\n await hook();\n } catch (error) {\n logger.error(`Shutdown hook '${name}' failed`, { error });\n throw error;\n }\n }));\n },\n\n onShutdown: async () => {\n logger.info('Graceful shutdown completed');\n },\n\n logger: (msg, error) => {\n if (error) {\n logger.error(msg, { error });\n } else {\n logger.info(msg);\n }\n },\n };\n\n createTerminus(config.server, terminusOptions);\n\n logger.info('Health checks and graceful shutdown initialized', {\n livenessPath,\n readinessPath,\n });\n\n return {\n healthCheckManager,\n httpTerminator,\n addShutdownHook: (name: string, hook: () => Promise<void>) => {\n shutdownHooks.push({ name, hook });\n },\n checkLiveness: () => healthCheckManager.checkLiveness(),\n checkReadiness: () => healthCheckManager.checkReadiness(),\n shutdown: async () => {\n logger.info('Manual shutdown initiated');\n await httpTerminator.terminate();\n },\n };\n}\n"],"mappings":"kMA+EA,SAAgB,EAAiB,EAAkD,CACjF,IAAMA,EAAS,EAAO,QAAUC,EAC1B,EAAe,EAAO,WAAW,UAAY,eAC7C,EAAgB,EAAO,WAAW,WAAa,gBAG/C,EAAqB,IAAI,EAAmB,EAAO,SAAU,EAAO,UAAU,CAG9E,EAAiB,EAAqB,CAAE,OAAQ,EAAO,OAAQ,CAAC,CAGhEC,EAAqC,EAAO,kBAAkB,eAAiB,EAAE,CAGjFC,EAAmC,CACvC,QAAS,EAAO,kBAAkB,SAAW,CAAC,UAAW,SAAS,CAClE,QAAS,EAAO,kBAAkB,SAAW,IAC7C,SAAU,EAAO,kBAAkB,UAAY,GAC/C,aAAc,EACX,GAAe,SAAY,CAC1B,IAAM,EAAS,MAAM,EAAmB,eAAe,CACvD,GAAI,EAAO,SAAW,OACpB,MAAU,MAAM,EAAO,OAAO,OAAO,GAAK,EAAE,SAAW,OAAO,CAAC,IAAI,GAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,GAG/F,GAAgB,SAAY,CAC3B,IAAM,EAAS,MAAM,EAAmB,gBAAgB,CACxD,GAAI,EAAO,SAAW,OACpB,MAAU,MAAM,EAAO,OAAO,OAAO,GAAK,EAAE,SAAW,OAAO,CAAC,IAAI,GAAK,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,EAGjG,CAED,eAAgB,SAAY,CAC1B,EAAO,KAAK,2BAA2B,CAEvC,MAAM,IAAI,QAAQ,GAAW,WAAW,EAAS,IAAK,CAAC,EAGzD,SAAU,SAAY,CACpB,EAAO,KAAK,2BAA2B,CACvC,MAAM,QAAQ,IAAI,EAAc,IAAI,MAAO,CAAE,OAAM,UAAW,CAC5D,GAAI,CACF,EAAO,KAAK,0BAA0B,IAAO,CAC7C,MAAM,GAAM,OACL,EAAO,CAEd,MADA,EAAO,MAAM,kBAAkB,EAAK,UAAW,CAAE,QAAO,CAAC,CACnD,IAER,CAAC,EAGL,WAAY,SAAY,CACtB,EAAO,KAAK,8BAA8B,EAG5C,QAAS,EAAK,IAAU,CAClB,EACF,EAAO,MAAM,EAAK,CAAE,QAAO,CAAC,CAE5B,EAAO,KAAK,EAAI,EAGrB,CASD,OAPA,EAAe,EAAO,OAAQ,EAAgB,CAE9C,EAAO,KAAK,kDAAmD,CAC7D,eACA,gBACD,CAAC,CAEK,CACL,qBACA,iBACA,iBAAkB,EAAc,IAA8B,CAC5D,EAAc,KAAK,CAAE,OAAM,OAAM,CAAC,EAEpC,kBAAqB,EAAmB,eAAe,CACvD,mBAAsB,EAAmB,gBAAgB,CACzD,SAAU,SAAY,CACpB,EAAO,KAAK,4BAA4B,CACxC,MAAM,EAAe,WAAW,EAEnC"}
|
|
@@ -150,6 +150,7 @@ interface GracefulShutdownConfig {
|
|
|
150
150
|
* @default true
|
|
151
151
|
*/
|
|
152
152
|
sendFailuresDuringShutdown?: boolean;
|
|
153
|
+
useExit0?: boolean;
|
|
153
154
|
}
|
|
154
155
|
//#endregion
|
|
155
156
|
export { ElasticsearchClient, GracefulShutdownConfig, HealthCheck, HealthCheckResult, HealthStatus, LivenessConfig, NamedHealthCheck, NamedShutdownHook, RabbitMQClient, ReadinessConfig, RedisClient, ResourceCheckConfig, SequelizeClient, ShutdownHook };
|
|
@@ -150,6 +150,7 @@ interface GracefulShutdownConfig {
|
|
|
150
150
|
* @default true
|
|
151
151
|
*/
|
|
152
152
|
sendFailuresDuringShutdown?: boolean;
|
|
153
|
+
useExit0?: boolean;
|
|
153
154
|
}
|
|
154
155
|
//#endregion
|
|
155
156
|
export { ElasticsearchClient, GracefulShutdownConfig, HealthCheck, HealthCheckResult, HealthStatus, LivenessConfig, NamedHealthCheck, NamedShutdownHook, RabbitMQClient, ReadinessConfig, RedisClient, ResourceCheckConfig, SequelizeClient, ShutdownHook };
|