@robotlegsjs/core
Version:
An architecture-based IoC framework for JavaScript/TypeScript
62 lines • 2.29 kB
JavaScript
;
// ------------------------------------------------------------------------------
// Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
//
// NOTICE: You are permitted to use, modify, and distribute this file
// in accordance with the terms of the license agreement accompanying it.
// ------------------------------------------------------------------------------
Object.defineProperty(exports, "__esModule", { value: true });
exports.InjectableLoggerExtension = void 0;
var ILogger_1 = require("../../framework/api/ILogger");
/**
* Allows you to @inject unique loggers into your objects.
*
* There are two ways to inject the logger on the constructor of your class:
*
* * Using the literal string "ILogger":
*
* <code>
* constructor( @inject("ILogger") logger: ILogger ) { ... }
* </code>
*
* * Using the ILogger Symbol:
*
* <code>
* constructor( @inject(ILogger) logger: ILogger ) { ... }
* </code>
*/
var InjectableLoggerExtension = /** @class */ (function () {
function InjectableLoggerExtension() {
}
/*============================================================================*/
/* Public Functions */
/*============================================================================*/
/**
* @inheritDoc
*/
InjectableLoggerExtension.prototype.extend = function (context) {
// Map the literal string "ILogger"
context.injector
.bind("ILogger")
.toDynamicValue(function () {
return context.getLogger(null);
})
.onActivation(function (ctx, logger) {
logger.source = ctx.plan.rootRequest.serviceIdentifier;
return logger;
});
// Map the Symbol ILogger
context.injector
.bind(ILogger_1.ILogger)
.toDynamicValue(function () {
return context.getLogger(null);
})
.onActivation(function (ctx, logger) {
logger.source = ctx.plan.rootRequest.serviceIdentifier;
return logger;
});
};
return InjectableLoggerExtension;
}());
exports.InjectableLoggerExtension = InjectableLoggerExtension;
//# sourceMappingURL=InjectableLoggerExtension.js.map