New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

react-to-text

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-to-text

Convert react components to plain text without any HTML markup

latest
npmnpm
Version
2.0.1
Version published
Weekly downloads
91K
-0.65%
Maintainers
1
Weekly downloads
 
Created
Source

react-to-text

npm CI

Convert react components to plain text without any HTML markup. Written in Typscript with zero dependencies.

Installation

yarn add react-to-text
npm install --save react-to-text

Usage

Out of the box

react-to-text takes in any React component and will return the text content (without any HTML). It will accept any value React can render (strings, arrays, Fragments, etc.), and can handle deeply nested components.

import reactToText from 'react-to-text';

const text = reactToText(
  <div>
    We sell <a href="/apples">apples</a> and <a href="/oranges"> oranges</a>.
  </div>
)

console.log(text);
> "We sell apples and oranges."

Custom logic

The default logic won't always work, for example when you have a custom component which simply renders one of it's props. In this case you can define custom stringification behavior using a second argument.

import reactToText, { ResolverMap } from 'react-to-text';

const CustomComponent: React.FC<{ title: string }> = (props) => <p>{props.title}</p>;

// since this component does not have any direct children
// it will not output anything by default
console.log(reactToText(<CustomComponent title="foo" />));
> ""

// using a custom resolver map using the custom component as it's key
// and the stringification logic as it's value, we can adjust this behavior
const resolvers: ResolverMap = new Map([
  [CustomComponent, (props: { title: string }) => props.title],
]);
console.log(reactToText(<CustomComponent title="foo" />, resolvers));
> "foo"

Deploying

Deploys to NPM are automatically run when a release is created in Github (see .github/workflows/npm-publish.yml).

License

Licensed under MIT.

Keywords

react

FAQs

Package last updated on 18 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts