@jable/inject
    TypeScript icon, indicating that this package has built-in type declarations

    2.2.0 • Public • Published

    @jable/inject

    Inject dependencies into injectable classes

    Example

    @Injectable()
    export class Bar {
        constructor(public barProp: string = "Bar") {}
    }
     
    @Injectable()
    export class Foo {
        constructor(public myString: string, public bar: Bar) {}
    }
     
    var myFoo = Injector.inject(Foo, "myString"); // Injector syntax
    console.log(myFoo.myString == "myString"); // True
    console.log(myFoo.bar.barProp == "Bar"); // True
    myFoo.bar.barProp = "FooBar"
     
    var myFoo2: Foo = new (<any>Foo)("mySecondString"); // TS syntax
    console.log(myFoo2.myString == "mySecondString"); // True
    console.log(myFoo2.bar.barProp == "FooBar"); // True

    Options

    /**
     * Injectable options
     * 
     * @export
     * @interface IInjectableOptions
     * @property {string} namespace Namespace of the Injectable
     * @property {{[type: string]: boolean}} exclude Excluded namespaced types, true to exclude
     * @property {boolean} inject Whether or not the class should have injectables injected into it
     */
    export interface IInjectableOptions {
        namespace?: string;
        exclude?: {[type: string]: boolean};
        inject?: boolean;
    }
     
    const defaultOptions: IInjectableOptions = {
        namespace: '',
        exclude: {
            String: true,
            Number: true,
            Object: true,
            Array: true,
            Boolean: true
        },
        inject: true
    }

    Install

    npm i @jable/inject

    DownloadsWeekly Downloads

    1

    Version

    2.2.0

    License

    MIT

    Unpacked Size

    39.9 kB

    Total Files

    44

    Last publish

    Collaborators

    • cpamperin
    • jable