UNPKG

@jems/di

Version:

An implementation of IoC pattern based on dependency injection that allows you to granulate and decouple your libraries or applications. Wrote using SOLID principles and a variety OOP patterns implementations.

34 lines (33 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var deliveryError_1 = require("../errors/deliveryError"); /** * Represenst an strategy to deliver a new instance targets with an specific strategy. */ var PerCallDeliveryStrategy = /** @class */ (function () { function PerCallDeliveryStrategy() { } /** * Deliver the transformed reference in the provided dependency metadata. * @param resolutionContext Represents the context in which the request was made. * @param dependencyMetadata Represents the dependency metadata that will be delivered. * @return The transformed reference. */ PerCallDeliveryStrategy.prototype.deliver = function (resolutionContext, dependencyMetadata) { if (!resolutionContext) { throw new deliveryError_1.DeliveryError('Must provide a valid resolution context.'); } if (!dependencyMetadata) { throw new deliveryError_1.DeliveryError('Must provide the depencency metadata to deliver from.'); } if (!dependencyMetadata.activationReference) { throw new deliveryError_1.DeliveryError('The provided dependency metadata must have a valid reference.'); } if (!dependencyMetadata.servicingStrategy) { throw new deliveryError_1.DeliveryError('The provided dependency metadata must have a valid servicing strategy.'); } return dependencyMetadata.servicingStrategy.serve(resolutionContext, dependencyMetadata); }; return PerCallDeliveryStrategy; }()); exports.PerCallDeliveryStrategy = PerCallDeliveryStrategy;