@web3r/flowerkit
Version:
Tree-shakable JavaScript and TypeScript utility library for frontend/browser apps: DOM, events, arrays, objects, strings, date, JSON, and network helpers (ESM/CJS, SSR-friendly).
1 lines • 1.14 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","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":";;;;;;;;;;AAcO,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"}