UNPKG

metaf-resolvable

Version:

Abstract resolvable mixin and injection root for adding DI/IoC to any framework

41 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setResolverFn = exports.resolveRequirements = exports.resolveFor = void 0; var Resolver_1 = require("./Resolver"); var resolver = new Resolver_1.Resolver(); var application = { isResolverChanged: false, resolveFor: resolver.resolveFor.bind(resolver), resolveRequirements: resolver.resolveRequirements.bind(resolver), }; /** * @internal */ function resolveFor(classImpl, injections, instance, args) { if (injections === void 0) { injections = {}; } return application.resolveFor(classImpl, injections, instance, args); } exports.resolveFor = resolveFor; /** * @internal */ function resolveRequirements(requirements, classImpl) { return application.resolveRequirements(requirements, classImpl); } exports.resolveRequirements = resolveRequirements; /** * This function should be used **only** once and **only** for setting another resolution mechanism * provided by some particular `Resolver` implementation for specific environment (e.g. for `react` app) * @description Sets function that will be used by `Resolvable` as `resolveFor` and `resolveRequirements` global helpers * @param resolveForImpl actual implementation of `resolveFor` function to replace default one * @param requirementsResolveImpl actual implementation of `resolveRequirements` function to replace default one */ function setResolverFn(resolveForImpl, requirementsResolveImpl) { if (application.isResolverChanged) throw new Error('Your application is trying to setup resolver more than once!'); application.resolveFor = resolveForImpl; application.resolveRequirements = requirementsResolveImpl; application.isResolverChanged = true; } exports.setResolverFn = setResolverFn; //# sourceMappingURL=Application.js.map