UNPKG

@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.86 kB
{"version":3,"file":"index.cjs","sources":[""],"sourcesContent":["export type TIsFnClassArgs = Parameters<typeof isFnClass>;\r\n\r\nexport type TIsFnClassReturn = ReturnType<typeof isFnClass>;\r\n\r\n/**\r\n * Checks if a function is a class or instance of class\r\n * @param fn{*} source function\r\n * @returns {boolean}\r\n * @example\r\n * // How to check if a function is ES6 Class?\r\n * const fn = new Class();\r\n * const isClass = isFnClass(fn);\r\n * console.log(isClass); // => true\r\n */\r\nexport const isFnClass = (fn: unknown): boolean => {\r\n const type = typeof fn;\r\n if ((type === \"function\") || (type === \"object\" && fn !== null)) {\r\n const hasCtor = !!(fn as any)?.constructor;\r\n const ctorStr = hasCtor ? (fn as any).constructor.toString() : \"\";\r\n const isCtorClass = hasCtor && ctorStr.substring(0, 5) === \"class\";\r\n\r\n const proto = (fn as any)?.prototype;\r\n if (proto === undefined) {\r\n return isCtorClass;\r\n }\r\n\r\n const protoCtorStr = (proto?.constructor && proto.constructor.toString) ? proto.constructor.toString() : \"\";\r\n const isPrototypeCtorClass = protoCtorStr.substring(0, 5) === \"class\";\r\n return isCtorClass || isPrototypeCtorClass;\r\n }\r\n return false;\r\n};\r\n"],"names":["isFnClass","fn","type","hasCtor","constructor","ctorStr","toString","isCtorClass","substring","proto","prototype","undefined","protoCtorStr","isPrototypeCtorClass"],"mappings":";;;;;;;;;;GAcO,MAAMA,UAAaC,KACxB,MAAMC,YAAcD,GACpB,GAAKC,OAAS,YAAgBA,OAAS,UAAYD,KAAO,KAAO,CAC/D,MAAME,UAAaF,IAAYG,YAC/B,MAAMC,QAAUF,QAAWF,GAAWG,YAAYE,WAAa,GAC/D,MAAMC,YAAcJ,SAAWE,QAAQG,UAAU,EAAG,KAAO,QAE3D,MAAMC,MAASR,IAAYS,UAC3B,GAAID,aAAUE,EACZ,OAAOJ,YAGT,MAAMK,aAAgBH,OAAOL,aAAeK,MAAML,YAAYE,SAAYG,MAAML,YAAYE,WAAa,GACzG,MAAMO,qBAAuBD,aAAaJ,UAAU,EAAG,KAAO,QAC9D,OAAOD,aAAeM,oBACxB,CACA,OAAO"}