{"version":3,"file":"interceptor.mjs","sources":["../../../../../packages/utils/interceptor.ts"],"sourcesContent":["import { isPromise } from './'\n\nimport type { Interceptor } from './'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\nexport function callInterceptor(\n  interceptor: Interceptor | undefined,\n  {\n    args = [],\n    done,\n    canceled,\n    error,\n  }: {\n    args?: unknown[]\n    done: () => void\n    canceled?: () => void\n    error?: () => void\n  }\n) {\n  if (interceptor) {\n    // eslint-disable-next-line prefer-spread\n    const returnVal = interceptor.apply(null, args)\n\n    if (isPromise(returnVal)) {\n      returnVal\n        .then((value) => {\n          if (value) {\n            done()\n          } else if (canceled) {\n            canceled()\n          }\n        })\n        .catch(error || noop)\n    } else if (returnVal) {\n      done()\n    } else if (canceled) {\n      canceled()\n    }\n  } else {\n    done()\n  }\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,IAAO,GAAA;AAAC,CAAA;AAEjB,SAAS,gBACd,WACA,EAAA;AAAA,EACE,OAAO,EAAC;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AACF,CAMA,EAAA;AACA,EAAA,IAAI,WAAa,EAAA;AAEf,IAAA,MAAM,SAAY,GAAA,WAAA,CAAY,KAAM,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAE9C,IAAI,IAAA,SAAA,CAAU,SAAS,CAAG,EAAA;AACxB,MACG,SAAA,CAAA,IAAA,CAAK,CAAC,KAAU,KAAA;AACf,QAAA,IAAI,KAAO,EAAA;AACT,UAAK,IAAA,EAAA,CAAA;AAAA,mBACI,QAAU,EAAA;AACnB,UAAS,QAAA,EAAA,CAAA;AAAA,SACX;AAAA,OACD,CAAA,CACA,KAAM,CAAA,KAAA,IAAS,IAAI,CAAA,CAAA;AAAA,eACb,SAAW,EAAA;AACpB,MAAK,IAAA,EAAA,CAAA;AAAA,eACI,QAAU,EAAA;AACnB,MAAS,QAAA,EAAA,CAAA;AAAA,KACX;AAAA,GACK,MAAA;AACL,IAAK,IAAA,EAAA,CAAA;AAAA,GACP;AACF;;;;"}