Library that core of Botorjs include IoC, Loader and Alias
Installation
npm install @botorjs/boot --save
Setup and Example
Example
import { Boot, Injectable, ServiceProvider } from '@botorjs/boot';
var app = new Boot();
class Service {
public i: number = 1;
}
@Injectable()
class TestClass {
constructor(private _service: Service) {}
public get service(): Service {
return this._service;
}
}
class ProviderTest extends ServiceProvider{
register(app: Boot) {
app.ioc.singleton(Service.name, Service);
app.ioc.bind(TestClass.name, TestClass);
}
boot(app: Boot) {
const service = app.get<Service>(Service);
service.i++;
}
}
// using ServicerProvider provider resource to app
app.loader.add(ProviderTest);
app.preload();
var test = app.get<TestClass>(TestClass);
expect(test.service.i).to.eql(2);
// resolve class with inject
var test2: TestClass = app.resolve(TestClass);
expect(test2.service.i).to.eql(2);
// using alias
app.alias.add("test", "test1");
app.ioc.bind("test1", "test_2");
var val = app.get<string>("test");
expect(val).to.eql("test_2");
//
app = new Boot();
app.hook.on("app:preload:end", () => {
console.log("work");
})
app.preload();
API
Boot
Property
Description
Return
hook
Hook event in Boot
Hook
alias
centered
Alias
ioc
as ioc
IoC
loader
as ioc fake
IoC
resolve(target)
resolve a class target have inject
object
get(target)
Get target in ioc
any
preload()
preload of Boot
void
Hook
Hook event of Boot
Property
Description
on(name, callback)
listen event
emit(name, data)
emit event
Alias
Alias name or fuction in Ioc
Property
Description
get(target)
get target was alias
add(tagert, alias)
add new alias or overwrite aslias exits with same target name or function
has(tagert)
check alias have exist
IoC
IoC manager container and inject the dependencies, now manager