UNPKG

dbl-utils

Version:

Utilities for dbl, adba and others projects

1 lines 3.27 kB
{"version":3,"names":["react_1","cov_104va63jgc","s","__importDefault","require","extractNodeString","obj","f","b","Array","isArray","map","e","exports","filter","Boolean","flat","join","default","isValidElement","node","props","children","toString"],"sources":["/home/diablo/dev/dbl-utils/src/extract-react-node-text.ts"],"sourcesContent":["import React from \"react\";\n\n/**\n * Extracts all text nodes from a React element tree.\n *\n * @param obj - React node or primitive value to extract text from.\n * @returns A string containing all text from the node tree.\n *\n * @example\n * ```tsx\n * const element = <div>Hello <span>World</span></div>;\n * const text = extractNodeString(element);\n * console.log(text); // \"Hello World\"\n * ```\n */\nexport const extractNodeString = (obj: any): string => {\n if (typeof obj === \"string\") return obj;\n if (Array.isArray(obj)) {\n return obj.map(e => extractNodeString(e)).filter(Boolean).flat().join(\" \");\n }\n if (React.isValidElement(obj)) {\n const node = obj as React.ReactNode;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - props may not exist for some nodes\n return extractNodeString(node.props.children);\n }\n if (!obj) return \"\";\n return obj.toString();\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAAA,OAAA;AAAA;AAAA,CAAAC,cAAA,GAAAC,CAAA,OAAAC,eAAA,CAAAC,OAAA;AAEA;;;;;;;;;;;;;AAAA;AAAAH,cAAA,GAAAC,CAAA;AAaO,MAAMG,iBAAiB,GAAIC,GAAQ,IAAY;EAAA;EAAAL,cAAA,GAAAM,CAAA;EAAAN,cAAA,GAAAC,CAAA;EACpD,IAAI,OAAOI,GAAG,KAAK,QAAQ,EAAE;IAAA;IAAAL,cAAA,GAAAO,CAAA;IAAAP,cAAA,GAAAC,CAAA;IAAA,OAAOI,GAAG;EAAA,CAAC;EAAA;EAAA;IAAAL,cAAA,GAAAO,CAAA;EAAA;EAAAP,cAAA,GAAAC,CAAA;EACxC,IAAIO,KAAK,CAACC,OAAO,CAACJ,GAAG,CAAC,EAAE;IAAA;IAAAL,cAAA,GAAAO,CAAA;IAAAP,cAAA,GAAAC,CAAA;IACtB,OAAOI,GAAG,CAACK,GAAG,CAACC,CAAC,IAAI;MAAA;MAAAX,cAAA,GAAAM,CAAA;MAAAN,cAAA,GAAAC,CAAA;MAAA,WAAAW,OAAA,CAAAR,iBAAiB,EAACO,CAAC,CAAC;IAAD,CAAC,CAAC,CAACE,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,EAAE,CAACC,IAAI,CAAC,GAAG,CAAC;EAC5E,CAAC;EAAA;EAAA;IAAAhB,cAAA,GAAAO,CAAA;EAAA;EAAAP,cAAA,GAAAC,CAAA;EACD,IAAIF,OAAA,CAAAkB,OAAK,CAACC,cAAc,CAACb,GAAG,CAAC,EAAE;IAAA;IAAAL,cAAA,GAAAO,CAAA;IAC7B,MAAMY,IAAI;IAAA;IAAA,CAAAnB,cAAA,GAAAC,CAAA,QAAGI,GAAsB;IACnC;IACA;IAAA;IAAAL,cAAA,GAAAC,CAAA;IACA,OAAO,IAAAW,OAAA,CAAAR,iBAAiB,EAACe,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC;EAC/C,CAAC;EAAA;EAAA;IAAArB,cAAA,GAAAO,CAAA;EAAA;EAAAP,cAAA,GAAAC,CAAA;EACD,IAAI,CAACI,GAAG,EAAE;IAAA;IAAAL,cAAA,GAAAO,CAAA;IAAAP,cAAA,GAAAC,CAAA;IAAA,OAAO,EAAE;EAAA,CAAC;EAAA;EAAA;IAAAD,cAAA,GAAAO,CAAA;EAAA;EAAAP,cAAA,GAAAC,CAAA;EACpB,OAAOI,GAAG,CAACiB,QAAQ,EAAE;AACvB,CAAC;AAAC;AAAAtB,cAAA,GAAAC,CAAA;AAbWW,OAAA,CAAAR,iBAAiB,GAAAA,iBAAA","ignoreList":[]}