@tsdi/unit
Version:
unit testing framework, base on AOP, Ioc container
56 lines (54 loc) • 1.89 kB
JavaScript
import { __decorate, __metadata, __param } from "tslib";
import { ContainerToken } from '@tsdi/core';
import { Suite } from './decorators';
import { Inject, IocExt, RegSingletionAction, InjectReference, DesignRegisterer, RuntimeRegisterer, DecoratorProvider } from '@tsdi/ioc';
import { BootContext, AnnoationAction } from '@tsdi/boot';
/**
* Bootstrap ext for ioc. auto run setup after registered.
* with @IocExt('setup') decorator.
* @export
* @class BootModule
*/
let UnitSetup = class UnitSetup {
constructor() {
}
/**
* register aop for container.
*
* @memberof AopModule
*/
setup(container) {
let actInjector = container.getActionInjector();
actInjector.getInstance(DesignRegisterer)
.register(Suite, 'Class', AnnoationAction);
actInjector.getInstance(RuntimeRegisterer)
.register(Suite, 'Class', RegSingletionAction);
actInjector.getInstance(DecoratorProvider)
.bindProviders(Suite, {
provide: BootContext,
deps: [ContainerToken],
useFactory: (container, ...providers) => {
let ref = new InjectReference(BootContext, Suite.toString());
if (container.has(ref)) {
return container.get(ref, ...providers);
}
return null;
}
});
}
static ρAnn() {
return { "name": "UnitSetup", "params": { "setup": ["container"] } };
}
};
__decorate([
__param(0, Inject(ContainerToken)),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], UnitSetup.prototype, "setup", null);
UnitSetup = __decorate([
IocExt(),
__metadata("design:paramtypes", [])
], UnitSetup);
export { UnitSetup };
//# sourceMappingURL=sourcemaps/UnitSetup.js.map