npm install react-is

Brand checking of React Elements.

About react-is

The npm package react-is is an incredibly useful tool for developers working with React elements, offering brand checking functionality. This node module enables developers to validate the type of a React child, which is crucial in ensuring that the child component is of the expected type. The key purpose of react-is is to improve the reliability and stability of React applications, by providing developers with a way to validate their components, and thus prevent runtime errors.

To incorporate react-is into your development process, you simply need to run the command npm install react-is. This will download and install the package into your project, giving you access to its brand checking capabilities. Once installed, you can use it to verify whether a React child is, for example, a specific element type, a fragment, or a portal. This can be especially beneficial when working with larger applications, where keeping track of component types can become challenging.

In conclusion, react-is is a vital tool for any developer seeking to enhance their React application's robustness and reliability. By allowing developers to validate their React components, react-is effectively minimizes the risk of runtime errors and streamlines the debugging process. Therefore, the benefit of using react-is is not only the prevention of potential errors but also the significant reduction in debugging time, resulting in a more efficient and effective development process.

More from facebook

facebook npm packages

Find the best node modules for your project.

Search npm

react-is

Brand checking of React Elements...

Read more
,

react

React is a JavaScript library for building user interfaces...

Read more
,

react-dom

React package for working with the DOM...

Read more
,

fb-watchman

Bindings for the Watchman file watching...

Read more
,

eslint-plugin-react-hooks

ESLint rules for React...

Read more
,

facebook-nodejs-business-sdk

SDK for the Facebook Marketing API in Javascript and Node...

Read more
,

react-facebook-auth

A Component React for Facebook...

Read more
,

facebook-locales

Maps locales to Facebook...

Read more

Dependencies

Core dependencies of this npm package and its dev dependencies.

@babel/cli, @babel/code-frame, @babel/core, @babel/helper-module-imports, @babel/parser, @babel/plugin-external-helpers, @babel/plugin-proposal-class-properties, @babel/plugin-proposal-object-rest-spread, @babel/plugin-syntax-dynamic-import, @babel/plugin-syntax-import-meta, @babel/plugin-syntax-jsx, @babel/plugin-syntax-typescript, @babel/plugin-transform-arrow-functions, @babel/plugin-transform-block-scoped-functions, @babel/plugin-transform-block-scoping, @babel/plugin-transform-classes, @babel/plugin-transform-computed-properties, @babel/plugin-transform-destructuring, @babel/plugin-transform-for-of, @babel/plugin-transform-literals, @babel/plugin-transform-modules-commonjs, @babel/plugin-transform-object-super, @babel/plugin-transform-parameters, @babel/plugin-transform-react-jsx, @babel/plugin-transform-react-jsx-development, @babel/plugin-transform-react-jsx-source, @babel/plugin-transform-shorthand-properties, @babel/plugin-transform-spread, @babel/plugin-transform-template-literals, @babel/preset-flow, @babel/preset-react, @babel/traverse, @rollup/plugin-babel, @rollup/plugin-commonjs, @rollup/plugin-node-resolve, @rollup/plugin-replace, abortcontroller-polyfill, art, babel-plugin-syntax-trailing-function-commas, chalk, cli-table, coffee-script, confusing-browser-globals, core-js, create-react-class, danger, error-stack-parser, eslint, eslint-config-prettier, eslint-plugin-babel, eslint-plugin-eslint-plugin, eslint-plugin-ft-flow, eslint-plugin-jest, eslint-plugin-no-for-of-loops, eslint-plugin-no-function-declare-after-return, eslint-plugin-react, eslint-plugin-react-internal, fbjs-scripts, filesize, flow-bin, flow-remove-types, glob, glob-stream, google-closure-compiler, gzip-size, hermes-eslint, hermes-parser, jest, jest-cli, jest-diff, jest-environment-jsdom, jest-snapshot-serializer-raw, minimatch, minimist, mkdirp, ncp, prettier, prettier-2, pretty-format, prop-types, random-seed, react-lifecycles-compat, rimraf, rollup, rollup-plugin-prettier, rollup-plugin-strip-banner, semver, shelljs, signedsource, targz, through2, tmp, typescript, undici, web-streams-polyfill, yargs

Documentation

A README file for the react-is code repository. View Code

react-is

This package allows you to test arbitrary values and see if they're a particular React element type.

Installation

# Yarn
yarn add react-is

# NPM
npm install react-is

Usage

Determining if a Component is Valid

import React from "react";
import * as ReactIs from "react-is";

class ClassComponent extends React.Component {
  render() {
    return React.createElement("div");
  }
}

const FunctionComponent = () => React.createElement("div");

const ForwardRefComponent = React.forwardRef((props, ref) =>
  React.createElement(Component, { forwardedRef: ref, ...props })
);

const Context = React.createContext(false);

ReactIs.isValidElementType("div"); // true
ReactIs.isValidElementType(ClassComponent); // true
ReactIs.isValidElementType(FunctionComponent); // true
ReactIs.isValidElementType(ForwardRefComponent); // true
ReactIs.isValidElementType(Context.Provider); // true
ReactIs.isValidElementType(Context.Consumer); // true

Determining an Element's Type

Context

import React from "react";
import * as ReactIs from 'react-is';

const ThemeContext = React.createContext("blue");

ReactIs.isContextConsumer(<ThemeContext.Consumer />); // true
ReactIs.isContextProvider(<ThemeContext.Provider />); // true
ReactIs.typeOf(<ThemeContext.Provider />) === ReactIs.ContextProvider; // true
ReactIs.typeOf(<ThemeContext.Consumer />) === ReactIs.ContextConsumer; // true

Element

import React from "react";
import * as ReactIs from 'react-is';

ReactIs.isElement(<div />); // true
ReactIs.typeOf(<div />) === ReactIs.Element; // true

Fragment

import React from "react";
import * as ReactIs from 'react-is';

ReactIs.isFragment(<></>); // true
ReactIs.typeOf(<></>) === ReactIs.Fragment; // true

Portal

import React from "react";
import ReactDOM from "react-dom";
import * as ReactIs from 'react-is';

const div = document.createElement("div");
const portal = ReactDOM.createPortal(<div />, div);

ReactIs.isPortal(portal); // true
ReactIs.typeOf(portal) === ReactIs.Portal; // true

StrictMode

import React from "react";
import * as ReactIs from 'react-is';

ReactIs.isStrictMode(<React.StrictMode />); // true
ReactIs.typeOf(<React.StrictMode />) === ReactIs.StrictMode; // true