dinoloop-es8
Version:
A lightweight REST API Library for building scalable Node.js server-side applications powered by Typescript
22 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utility_1 = require("../utility");
class DIContainer {
constructor(injector, cb) {
this.injector = injector;
this.cb = cb;
}
// resolve the component from the di container
// If no resolve callback is registered, that means no DI framework is configured.
// for such cases just instantiate the component with 'new operator'.
// this flexibility is added to make it work without DI framework
resolve(type) {
return (!utility_1.DataUtility.isUndefinedOrNull(this.cb)) ?
this.cb(this.injector, type) : new type();
}
static create(injector, cb) {
return new DIContainer(injector, cb);
}
}
exports.DIContainer = DIContainer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kdWxlcy9jb3JlL2RpY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBR3pDO0lBQ0ksWUFBb0IsUUFBYSxFQUFVLEVBQU87UUFBOUIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUFVLE9BQUUsR0FBRixFQUFFLENBQUs7SUFBSSxDQUFDO0lBRXZELDhDQUE4QztJQUM5QyxrRkFBa0Y7SUFDbEYscUVBQXFFO0lBQ3JFLGlFQUFpRTtJQUNqRSxPQUFPLENBQUksSUFBUztRQUNoQixPQUFPLENBQUMsQ0FBQyxxQkFBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQWEsRUFBRSxFQUFPO1FBQ2hDLE9BQU8sSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDSjtBQWZELGtDQWVDIn0=