npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@silverstripe/react-injector

v0.2.1

Published

A dependency injection layer for sharing components between React applications

Downloads

49

Readme

React Injector

A library for sharing and extending components between multiple compiled JS bundles.

CAUTION: This is an extremely early alpha release. Functionality is not guaranteed, and APIs may change at any time.

Requirements

Introduction

Say you build an Open Source CMS using React to render the UI. You might want developers building projects with this CMS to be able to change the behaviour of some UIs, or to be able to provide new components that can be consumed by the CMS. Those components can't easily be included in the JS bundle for the CMS, as it would require recompiling the shipped code with outside references.

Enter React Injector. Using this package, you can register React components in one JS bundle that can be fetched and utilised by another, dynamically inject component dependencies, or even wrap / replace a component from one bundle with a component from another. This is achieved by sharing a single instance of the Injector library across any bundle that is loaded in the browser, which can maintain a registry of components and transformations to apply at runtime.

The foremost example of this package in practice is SilverStripe 4, which uses Injector to allow customisation of its Asset Admin UI, along with other areas of the CMS. The SilverStripe-embedded version of this package also supports mutation of Redux stores and GraphQL queries, but in this initial preview we are keeping the scope limited to React components.

Usage

Take a look at this demo repository for an example of how to boot and use Injector. You can also consult the SilverStripe documentation, though only a subset of it will apply to this version.

Expanded documentation will follow in a future release.