Socket
Socket
Sign inDemoInstall

boxed-injector-react

Package Overview
Dependencies
0
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    boxed-injector-react

Dependency Injection Tools for React


Version published
Weekly downloads
3
decreased by-50%
Maintainers
2
Install size
17.2 kB
Created
Weekly downloads
 

Readme

Source

boxed-injector-react

NPM version NPM Downloads dependencies Status Build Status Coverage Status

Dependency Injection Tools for React Applications

Installation

$ npm install --save boxed-injector-react

Overview

This is a set of helper components for leveraging the boxed-injector within a React application.

The use case for this is to pull business logic out of your components into separate testable services, and inject them into your components as props so that you can use them in multiple places. Leveraging a DI container enables automatic dependency resolution greatly simplifying application bootstrapping while making your code more declarative.

There are 2 main components.

  1. Inject (Higher Order Component for resolving dependencies declaratively into React containers) - See detailed readme
  2. Injectable (Wrapper around React Components for directly injecting resolved props) - See detailed readme

Installation

$ npm install --save boxed-injector-react

Getting Started

Somewhere in app bootstrapping land, leverage the commonjs module cache to gain access to a singleton of inject and register your stuff.

// injector.config.js

const React = require('React');
const Injector = require('boxed-injector').Injector;
const Inject = require('boxed-injector-react')(React).Inject;

const types = {
  FOO: 'FOO'
};

let inject;

function injectorConfig () {
  const injector = new Injector();
  injector.register(types.FOO, 'foo');
	inject = new Inject(injector);
	return injector;
};

injectorConfig.inject = inject;
injectorConfig.types = types;

module.exports = injectorConfig;

Then, in your components, reference the singleton to gain access to the injector.

// MyComponent.js
const React = require('React');
const inject = require('./injector.config').inject;

@inject({ 'baz': 'foo' })
class MyComponent extends React.Component {
  render(){
    console.log(this.props);
    return <div/>;
  }
}

Contributing

We look forward to seeing your contributions!

License

MIT © Ben Lugavere

Keywords

FAQs

Last updated on 01 May 2018

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc