mana-syringe
Version:
IoC library for mana, easily to use.
27 lines • 838 B
JavaScript
import { Syringe } from '../core';
import * as Contribution from './contribution-protocol';
import { DefaultContributionProvider } from './contribution-provider';
export function contributionInjectOption(token, option) {
return {
token: {
token: Contribution.Provider,
named: token
},
useDynamic: function useDynamic(ctx) {
return new DefaultContributionProvider(token, ctx.container, option);
},
lifecycle: Syringe.Lifecycle.singleton
};
}
export function contributionRegister(registerMethod, identifier, option) {
registerMethod({
token: {
token: Contribution.Provider,
named: identifier
},
useDynamic: function useDynamic(ctx) {
return new DefaultContributionProvider(identifier, ctx.container, option);
},
lifecycle: Syringe.Lifecycle.singleton
});
}