Nighttime Peanut Migrations

    @silverstripe/react-injector

    0.2.1 • Public • Published

    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.

    Keywords

    none

    Install

    npm i @silverstripe/react-injector

    DownloadsWeekly Downloads

    14

    Version

    0.2.1

    License

    BSD-3-Clause

    Unpacked Size

    553 kB

    Total Files

    39

    Last publish

    Collaborators

    • emteknetnz
    • maxime.rainville
    • robbieaverill
    • silverstripe-admin
    • tractorcow
    • flamerohr
    • sminnee
    • unclecheese
    • chillu
    • cheddam
    • scopey