Have ideas to improve npm?Join in the discussion! »

    injectd
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.2 • Public • Published

    injectd 0.1 Build status

    This library is the leanest dependency injection implementation you can possibly have for JavaScript (ES2016) and TypeScript. Just ~1kb filesize (uncompressed)

    The API consists in three methods: inject, register and resolve.

    • register<T>(idOrInstance: string | any, instance?: any): void: Register instance with given identifier. The instance registered will be available for inject and resolve methods.
    • inject(id: any): A decorator to inject a previously registered instance into target class property. (see usage below)
    • resolve<T>(id: any): T: Get previously registered instance by given name or type. (used under the hood by inject method)

    Configuration

    Your compiler/transpiler need to understand the decorator syntax in order to be able to use injectd. Here's how you enable it using:

    Usage

    // application.ts
    import { register } from "injectd"
     
    export class Application {
      constructor () {
        register(this);
      }
    }
     
    // screen.ts
    import { Application } from "./application"
    import { inject } from "injectd"
     
    export class Screen {
      @inject(Application)
      app: Application;
    }
     
    // main.ts
    let myApp = new Application();
     
    // anywhere.ts
    import { Screen } from "./screen"
     
    let screen = new Screen();
    screen.app // your "Application" instance is here!

    License

    MIT

    Install

    npm i injectd

    DownloadsWeekly Downloads

    91

    Version

    0.1.2

    License

    MIT

    Last publish

    Collaborators

    • avatar