{"version":3,"file":"signals.mjs","sources":["../../src/utils/signals.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const destroyOnSignal = (strapi: Core.Strapi) => {\n  let signalReceived = false;\n\n  // For unknown reasons, we receive signals 2 times.\n  // As a temporary fix, we ignore the signals received after the first one.\n\n  const terminateStrapi = async () => {\n    if (!signalReceived) {\n      signalReceived = true;\n      await strapi.destroy();\n      process.exit();\n    }\n  };\n\n  ['SIGTERM', 'SIGINT'].forEach((signal) => {\n    process.on(signal, terminateStrapi);\n  });\n};\n"],"names":["destroyOnSignal","strapi","signalReceived","terminateStrapi","destroy","process","exit","forEach","signal","on"],"mappings":"AAEO,MAAMA,kBAAkB,CAACC,MAAAA,GAAAA;AAC9B,IAAA,IAAIC,cAAAA,GAAiB,KAAA;;;AAKrB,IAAA,MAAMC,eAAAA,GAAkB,UAAA;AACtB,QAAA,IAAI,CAACD,cAAAA,EAAgB;YACnBA,cAAAA,GAAiB,IAAA;AACjB,YAAA,MAAMD,OAAOG,OAAO,EAAA;AACpBC,YAAAA,OAAAA,CAAQC,IAAI,EAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEA,IAAA;AAAC,QAAA,SAAA;AAAW,QAAA;KAAS,CAACC,OAAO,CAAC,CAACC,MAAAA,GAAAA;QAC7BH,OAAAA,CAAQI,EAAE,CAACD,MAAAA,EAAQL,eAAAA,CAAAA;AACrB,IAAA,CAAA,CAAA;AACF;;;;"}