{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["export type TIsFnAsyncArgs = Parameters<typeof isFnAsync>;\r\n\r\nexport type TIsFnAsyncReturn = ReturnType<typeof isFnAsync>;\r\n\r\n/**\r\n * Checks if a function is async\r\n * @param {*} fn source function\r\n * @returns {boolean}\r\n * @example\r\n * // How to check if function is async?\r\n * const fn = async () => {};\r\n * const isAsync = isFnAsync(fn);\r\n * console.log(isAsync); // => true\r\n */\r\nexport const isFnAsync = (fn: unknown): boolean => {\r\n  if (typeof fn === \"function\") {\r\n    const string = (fn as Function).toString().trim();\r\n    return (\r\n      /^async\\s+/.test(string) ||\r\n      /return _ref[^.]*\\.apply/.test(string) ||\r\n      (fn as { constructor?: { name?: string; }; })?.constructor?.name === \"AsyncFunction\"\r\n    );\r\n  }\r\n  return false;\r\n};\r\n"],"names":["isFnAsync","fn","string","toString","trim","test","constructor","name"],"mappings":";;;;;;;;;;GAcO,MAAMA,UAAaC,KACxB,UAAWA,KAAO,WAAY,CAC5B,MAAMC,OAAUD,GAAgBE,WAAWC,OAC3C,MACE,YAAYC,KAAKH,SACjB,0BAA0BG,KAAKH,SAC9BD,IAA8CK,aAAaC,OAAS,eAEzE,CACA,OAAO"}