locustjs-locator
Version:
A locustjs library implementing Service Locator pattern to provide loose coupling through IoC (Inversion of Control).
34 lines (30 loc) • 987 B
JavaScript
import { DefaultLocator, Resolve } from '../index.esm.js';
import {
FooServiceAbstract,
FooServiceConcreteIndependent,
FooServiceConcrete,
BarServiceAbstract,
BarServiceConcrete,
BazServiceAbstract1,
BazServiceConcrete1,
BazServiceAbstract2,
BazServiceConcrete2,
BazServiceAbstract3,
BazServiceConcrete3,
BazServiceAbstract4,
BazServiceConcrete4,
BazServiceAbstract5,
BazServiceConcrete5,
BazServiceAbstract6,
BazServiceConcrete6
} from './SampleServices';
const locator = new DefaultLocator();
locator.register(FooServiceAbstract, FooServiceConcrete, Resolve.PerRequest, 2);
locator.register(BarServiceAbstract, BarServiceConcrete, Resolve.PerRequest);
locator.register(BazServiceAbstract5, BazServiceConcrete5);
const x = locator.resolve(BazServiceAbstract5, {
args: ['baz-title'],
[]: [20, 30],
[]: ['bar-name']
});
console.log(x);