{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/execution/hooks.ts"],"names":[],"mappings":"AAQA,SAAS,aAAa,CAAQ,IAA2B,EAAE,IAAW;IACpE,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,wBAAwB,CACtC,sBAA8C,EAC9C,sBAA8C,EAC9C,qBAA4D;IAE5D,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACxC,aAAa,CAAC,qBAAqB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IACD,qBAAqB;SAClB,IAAI,CAAC,GAAG,EAAE;QACT,aAAa,CAAC,qBAAqB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["/** @category Execution */\n\nimport type { SharedExecutionContext } from './createSharedExecutionContext.ts';\nimport type {\n  AsyncWorkFinishedInfo,\n  ValidatedExecutionArgs,\n} from './ExecutionArgs.ts';\n\nfunction runHookSafely<TInfo>(hook: (info: TInfo) => void, info: TInfo): void {\n  try {\n    hook?.(info);\n  } catch {\n    // ignore hook errors\n  }\n}\n\n/** @internal */\nexport function runAsyncWorkFinishedHook(\n  validatedExecutionArgs: ValidatedExecutionArgs,\n  sharedExecutionContext: SharedExecutionContext,\n  asyncWorkFinishedHook: (info: AsyncWorkFinishedInfo) => void,\n): void {\n  const maybeWaitForAsyncWork = sharedExecutionContext.asyncWorkTracker.wait();\n  if (maybeWaitForAsyncWork === undefined) {\n    runHookSafely(asyncWorkFinishedHook, { validatedExecutionArgs });\n    return;\n  }\n  maybeWaitForAsyncWork\n    .then(() => {\n      runHookSafely(asyncWorkFinishedHook, { validatedExecutionArgs });\n    })\n    .catch(() => undefined);\n}\n"]}