react-component-composer
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

React Component Composer

npm (scoped) devDependencies Status npm bundle size (scoped) npm Dependent repos (via libraries.io), scoped npm package FOSSA Status

A utility that help compose a bunch of components into a single one to avoid cases like provider hell.

Install with npm

npm i react-component-composer --save

Install with yarn

yarn add react-component-composer

Table of Contents

Usage

import composeComponents from 'react-component-composer';

const Providers = composeComponents(
  SomeProvider
  [SomeProvider1, {someProps: 'SomeThing'}]
  [SomeProvider2]
  SomeProvider3
  SomeProvider4
  ['div', {className: 'main'}]
)

function App() {
  return (
    <Providers>
      <Main />
    </Providers>
  )
}

Is a replacement for

function App() {
  return (
    <SomeProvider>
      <SomeProvider1 someProps="someThing">
        <SomeProvider2>
          <SomeProvider3>
            <SomeProvider4>
              <div className="main">
                <Main />
              </div>
            </SomeProvider4>
          </SomeProvider3>
        </SomeProvider2>
      </SomeProvider1>
    </SomeProvider>
  )
}

API

This package has only one default export

Params

  • ...args[] {React.ElementType | [React.ElementType, Record<string, unknown>]}: List of components and props to compose

Return: {JSX.Element}: The composed component

Development

Install dependencies

yarn

Watch mode

yarn

Running tests

yarn test

Build

yarn build

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue

Readme

Keywords

none

Package Sidebar

Install

npm i react-component-composer

Weekly Downloads

128

Version

1.0.0

License

MIT

Unpacked Size

11.1 kB

Total Files

12

Last publish

Collaborators

  • huynhducduy