Object oriented ServiceLocator for use with TypeScript or JS
npm install advanced-service-locatorMore about ServiceLocator pattern
text
npm i advanced-service-locator
`$3
`TypeScript
//es5
const {ServiceLocator, ILocatable, ILocator} = require("advanced-service-locator");
//es6+ and ts
import {ServiceLocator, ILocatable, ILocator} from "advanced-service-locator";
`$3
`TypeScript
class TestClass implements ILocatable { init(locator: ILocator): void {
//will be called after instantiation
}
getMessage(): string {
return "Hello from ServiceLocator!";
}
}
class TestClassCustom extends TestClass {
getMessage(): string {
return "This is custom message!";
}
}
`$3
`TypeScript
const locator = new ServiceLocator();
const a = locator.locate(TestClass);
`$3
`TypeScript
const locator = new ServiceLocator();
locator.mapClass(TestClass).to(TestClassCustom);const a = locator.locate(TestClass);
console.log(a.getMessage()); //will output "This is custom message!"
`$3
`TypeScript
const locator = new ServiceLocator();
locator.mapClass(TestClass).asSingleton();const a = locator.locate(TestClass);
const b = locator.locate(TestClass);
console.log(a === b); //will output "true"
`$3
`TypeScript
class Locator {
static readonly instance = new ServiceLocator();
}const a = Locator.instance.locate(TestClass);
``